Quelle est la meilleure façon de concevoir un logiciel ?


Ceci revient à demander : comment un grammairien peut-il écrire une bonne histoire ? Cela nécessite un ensemble de compétences différentes. De plus, à quel type de conception faites-vous référence ?

Donc vous'êtes capable de vous occuper des détails de mise en œuvre. C'est un bon début. Si votre projet est très petit et que vous avez une assez bonne idée de ce que vous voulez réaliser, vous pouvez tenter la méthode du cowboy coder : commencer à écrire le programme le plus simple possible, refactorer, étendre, refactorer. Cette méthode (ou son absence) a le mérite de salir les mains du programmeur. Vous apprendrez quelque chose. Vous allez construire quelque chose. Il se peut que ce soit monstrueux. Au moins, vous'éviterez la paralysie de l'analyse et, éventuellement, la suringénierie.


Traditionnellement, la conception dans l'ingénierie logicielle signifie que vous devriez essayer de cartographier comment vous avez l'intention de faire tout fonctionner ensemble, avant même d'écrire une seule ligne de code. C'est là que la conception orientée objet et d'autres méthodes de ce type entrent en jeu -- voir le post de Keith Ensign'pour quelques liens sur le sujet. Les méthodologies agiles ne sont pas une excuse pour sauter cette étape, mais elles peuvent servir de rappel pour garder votre projet initial simple et éviter de concevoir des extensions futures trop tôt. L'étape de conception de l'ingénierie commence par de bonnes spécifications et une bonne conception tend à naître des idées tirées de l'expérience pratique plus que de l'application de méthodologies connues. Elle n'a pas grand-chose à voir avec la conception de produits, car elle nécessite de savoir ce que vous'allez construire en premier lieu et de répondre adéquatement à ces exigences.


De bonnes spécifications sont également conçues. Décider ce que votre logiciel fera et comment il servira son objectif fait appel à diverses expertises. Les gens de la vieille école (ingénieurs logiciels) appellent cela l'étape de l'analyse. D'autres parleront de conception de services. Cette activité peut varier en fonction du type de logiciel que vous allez créer. L'expertise en matière de connaissance du domaine, la compréhension du comportement de l'utilisateur et la capacité à adapter les processus organisationnels sont de bonnes qualités pour commencer avant de tenter de rédiger des histoires d'utilisateur et des tests d'acceptation. Le stylo et le papier peuvent également faire des merveilles à ce stade car ils peuvent vous aider à explorer des solutions basées sur vos observations avec peu de contraintes.

Une troisième catégorie de conception est la conception des visuels et de l'expérience utilisateur. Une bonne touche finale peut faire une différence considérable dans votre produit final. Encore une fois, leur expertise ne peut être résumée aussi succinctement...

Chacune de ces entreprises de design vient avec son lot de pratiques. Nombre de ces pratiques visent à guider ou à structurer les intuitions du concepteur'teur. Plus vous en savez sur vos utilisateurs, leurs objectifs et les matériaux avec lesquels vous allez travailler, plus vous serez proche de proposer une solution satisfaisante. Votre expérience de la programmation devrait vous guider dans le sens de la conception technique. Elle pourrait vous aider à envisager de nouvelles possibilités en matière de conception de services. Cependant, vous devrez peut-être laisser la technologie de côté et apprendre de différentes perspectives afin d'imaginer un produit qui servira son objectif.