A View of 20th and 21st Century Software Engineering

✒ Enzo SandrĂ© · 📆 02/02/2023

🧠 Si on analysait l’histoire du dĂ©veloppement avec la mĂ©thode hĂ©gelienne ? Barry Boehm a essayĂ© en 2006 et les leçons qu’il en tire sont intĂ©ressantes.

đŸ’œ ThĂ©se des annĂ©es 1950 : l’ingĂ©nierie du logiciel est similaire Ă  l’ingĂ©nieriĂ© hardware. L’humain est bien moins cher Ă  l’heure que les ordinateurs, le dĂ©veloppeur doit agir en ayant ce principe Ă©conomique en tĂȘte : suroptimisation, vĂ©rification pointilleuse des programmes avant leur livraison. Le rapport nĂ©cessaire aux sciences, l’absurditĂ© de la gestion de projet sĂ©quentielle et la rigueur sont les enseignements de cette pĂ©riode.

đŸȘ› AntithĂšse des annĂ©es 1960 : Code and fix (que Boehm appelle, improprement Ă  mon avis “Crafting”). Les dĂ©veloppeurs se sont rendus compte que le logiciel est infiniment plus facile Ă  modifier que le matĂ©riel. De plus le coĂ»t des ordinateurs baisse drastiquement. L’idĂ©e d’un code en Ă©tat de maintenance permanent fait son chemin, prĂ©curseure de l’agilitĂ© moderne. On commence Ă  parler d’itĂ©rations par opposition aux mĂ©thodes linĂ©aires.

đŸ§± SynthĂšse des annĂ©es 70 et antithĂšse : formalisme. Face aux plats de spaghetti souvent hĂ©ritĂ©s de la dĂ©cennie prĂ©cĂ©dente, mais Ă©galement afin de ne pas revenir aux processus guindĂ©s des annĂ©es 50, une vague mĂ©thodologique a dĂ©ferlĂ© dans la gestion de projet, donnant Waterfall et dans le design donnant la programmation structurĂ©e, le concept de couplage et les balbutiements de la qualitĂ© logicielle en gĂ©nĂ©ral. HĂ©las, l’esprit Top-Down et rĂ©ductionniste est venu gĂącher la fĂȘte en considĂ©rant un logiciels comme un ensemble de silos.

♟ SynthĂšse des annĂ©es 80 : scalabilitĂ©. C’est l’époque des tests automatisĂ©s, de l’orientĂ© objet, de l’architecture, des IDE 
 La productivitĂ© des dĂ©veloppeurs s’accroĂźt d’un facteur 10. C’est la fin des obstacles accidentels Ă  la vĂ©locitĂ© des dĂ©veloppeurs. HĂ©las le mouvement est allĂ© trop loin, croyant se passer des dĂ©veloppeurs, menant au ratage du WYSIWYG ou au mirage du Model-Based Software Enginering.

♻ AntithĂšse des annĂ©es 90 : recyclage. Les dĂ©veloppeurs sont incontournables, mais lents, alors pour accĂ©lĂ©rer la livraison, il faut rĂ©utiliser au maximum. Cela est permis par le dĂ©veloppement de l’orientĂ© objet et de l’architecture. Il faut faire gĂ©nĂ©rique, trop parfois, quitte Ă  crĂ©er d’infects frameworks d’entreprise. C’est aussi l’époque de la dĂ©fiance envers la planification, jugĂ©e comme retardant le time-to-market, seule maniĂšre de savoir si le produit colle au besoin. C’est aussi l’ñge d’Internet et de l’Open Source.

📝 Je vous laisse dĂ©couvrir la suite, ainsi que les prĂ©dictions de Boehm dans le papier lui-mĂȘme !

SOURCE

Barry Boehm. 2006. A view of 20th and 21st century software engineering. In Proceedings of the 28th international conference on Software engineering (ICSE ‘06). Association for Computing Machinery, New York, NY, USA, 12–29. DOI:10.1145/1134285.1134288

Enzo Sandré


DOIs: 10.1145/1134285.1134288