đ§ 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