web-dev-qa-db-fra.com

Cycle de vie de développement de logiciels dans l'industrie

Je prends un module appelé "Exigences d'analyse et de conception" dans une université locale. Module commun, je dirais (sur le cycle de vie du développement logiciel (SDLC) et UML). Mais il y a beaucoup de choses que je me demande si elles sont en réalité (strictement) pratiquées dans l'industrie.

Par exemple, un diagramme de classe de domaine, un autre supplément (de la classe de design), sera-t-il strictement la sortie de la phase d'analyse ou de découverte? Je suis sûr que plusieurs fois, vous penserez un peu de la mise en œuvre technique aussi? Sinon, vous pourriez vous retrouver avec un diagramme de classe de design plus tard, qui est très différent du diagramme de classe de domaine d'origine?

J'ai aussi du mal à se souvenir de ce que les diagrammes proviennent d'initiation, de découverte, de design, etc., etc., ainsi que ces phases varient de SDLC à SDLC, je crois? Donc, je vais généralement créer un diagramme quand je pense être utile. Est-ce le mauvais moyen?

5
Jiew Meng

Les pratiques et le SDLC au sein de l'industrie varient follement de la société à la compagnie (voire d'une équipe à l'équipe au sein de la même entreprise). De votre description, il ressemble au SDLC tel que enseigné dans votre université est un processus plus formel, poids lourd, non agile . Il existe de nombreux projets à la suite de tels processus (en utilisant une terminologie différente, des outils et des artefacts, par exemple certains des documents de mots longs comme résultat de l'analyse, contenant du texte pur, d'autres utilisent des diagrammes UML, mais d'autres diagrammes dans un système de notation complètement différent. .). Il y a aussi beaucoup à proximité du niveau zéro de processus formalisés. Et tout ce qui entre ces deux extrêmes.

Donc, l'essentiel est, il n'y a sûrement pas de bonne façon de le faire. Une fois que vous avez commencé à travailler dans une équipe de projet concrète, vous apprendrez à apprendre et à adhérer à leurs conventions et processus locaux de toute façon (ce qui, les chances, seront très différentes de ce que vous avez enseigné à l'université).

Mais si vous avez la chance de choisir votre SDLC, je vous suggère d'être pragmatique. Utilisez ce qui fonctionne pour vous (équipe R), réfléchissez régulièrement aux problèmes/problèmes que vous voyez et adaptez votre processus/vos outils en conséquence. En tant que point de départ, je recommande d'enquêter sur une partie de la cérémonie à faible cérémonie, des méthodes agiles axées sur les développeurs.

Dans ceux-ci, les différentes phases ne sont pas strictement séparées: il est reconnu que l'on ne peut pas créer les exigences/design parfaits à l'avant. Comme vous le mentionnez, vous penserez dans la pratique que vous réfléchirez à la conception possible de votre modèle de domaine, ainsi que de la ou des implémentations possibles de votre conception à l'avance, et vous pouvez même créer un prototype rapide pour vérifier certaines hypothèses tôt. De plus, pendant la conception, vous obtiendrez de nouvelles questions et d'informations sur les exigences et au cours de la mise en œuvre, vous obtiendrez de nouvelles réalisations qui changeront et affineront votre conception.

9
Péter Török

Ce ne sont que mes expériences: je n'ai jamais travaillé pour une entreprise qui suivit strictement un SDLC. J'ai travaillé pour de nombreuses entreprises qui avaient un SDLC, mais jamais une qui l'a suivi, même à distance.

Les groupes informatiques ont tendance à se développer de manière biologique avec l'entreprise, libérant rapidement des logiciels et répondant à la demande des clients. Finalement, il se développe "assez gros" d'avoir plusieurs couches de gestion et une CTO (c'est "important" maintenant).

Ensuite, quelque chose ne va pas - sous la pression des clients, il expédite une version buggy d'une application importante et le résultat net est affecté. La plus grande entreprise réagit: "Comment pourriez-vous permettre que cela se produise?"

Après avoir corrigé la question, il faut être considéré comme répondant à ce qu'il n'y arrive jamais. Ils introduisent donc des politiques et des bureaucraties et les SDLC sont documentés. Le SDLC n'est pas destiné à améliorer sa capacité à fournir des logiciels de qualité à temps, mais à apaiser les CXO à la prochaine réunion du conseil. Donc, il est plein de bluster et de pompe conçue pour impressionner le CFO et l'OCM et tout analystes externes que quiconque décide d'introduire. Toutes les personnes impliquées sait que c'est une perte de temps prétentieuse et ne sera pas suivie, mais ils vont bien avec les tests de Bogans Le vin dans un restaurant ("mm ... c'est rouge!").

Les développeurs deviennent bien sûr de travailler à travailler à des manières agiles, les utilisateurs de la construction de choses demandent et découpent la cassette rouge dans la mesure du possible. Certaines parties du SDLC sont suivies - des signes de libération par exemple - mais la majeure partie de celle-ci est faite simplement parce que c'est la politique et le questionnement est trop sensible politiquement.

Les développeurs ont tendance à dessiner des diagrammes et des modèles d'objets de conception, mais ils se produisent très biologiquement et le cas échéant, pas strictement dans le cadre d'une phase, à moins que ce soit la politique dans laquelle il est généralement précipité pour le faire sortir de la manière dont le travail est réel. commencer.

4
Paul Stovell