đ€ A lâorigine de la mĂ©thode Waterfall et de ses descendants, dont le cĂ©lĂšbre cycle en V, on trouve un homme : Winston Walker Royce. Peu aprĂšs la confĂ©rence de Garmisch-Partenkirchen de 1968, il produisit une mĂ©thode rĂ©volutionnaire afin âdâutiliser au mieux les ressources en programmeursâ. Le vocabulaire annonce la couleur : le dĂ©veloppeur doit se tayloriser.
đ Son idĂ©e repose sur lâajout dâĂ©tapes prĂ©cĂ©dant la boucle analyse/programmation, qui suffit aux petits projets. Il sâagit des phases de spĂ©cification, analyse, architecture et autres analyses plus ou moins dĂ©taillĂ©es. Rendons cependant justice Ă Royce, qui avait bien compris que les Ă©tapes de programmation et de tests allaient lever de nombreux problĂšmes, nĂ©cessitant de remonter de nombreuses Ă©tapes en arriĂšre dans les phases de spĂ©cification. Son erreur a Ă©tĂ© de sous-estimer la frĂ©quence de ces retours : il pensait que la majoritĂ© des problĂšmes seraient dĂ©tectĂ©s dans lâĂ©tape suivant immĂ©diatement celle qui les a causĂ©s.
đŁ La seconde erreur de Royce est de croire en la linĂ©aritĂ© de la relation entre la taille dâun problĂšme et lâimportance des changement quâil occasionnera. Tout son argumentaire repose sur ce mythe : si un problĂšme est petit, il nâoccasionnera que de petits changements et la majoritĂ© du travail rĂ©alisĂ© avant sa dĂ©tection sera conservĂ©. Il est donc rentable de tout spĂ©cifier par raffinements successifs jusquâĂ rendre la tĂąche du programmeur triviale. Avec le recul, nous savons quâun petit problĂšme dâimplĂ©mentation peut invalider des centaines dâheures de conception sur plusieurs Ă©tapes.
đ La troisiĂšme erreur de Royce est de croire que la documentation remplace la collaboration. Il prĂŽne une mĂ©diation universelle des diffĂ©rents mĂ©tiers Ă lâoeuvre sur un logiciel par le document papier. Il y voit deux avantages : trouver les responsables des erreurs et spĂ©cialiser les tĂąches. Si un acteur rĂ©dige une documentation en amont, il est possible de diviser le travail en aval grĂące Ă une photocopieuse. Chacun a son exemplaire de documentation, son silo et ses tĂąches spĂ©cialisĂ©es Ă effectuer. Il illustre en Ă©voquant les tests ârĂ©alisables par des acteurs moins coĂ»teux que les programmeursâ. De plus, vu que chacun est forcĂ© de dĂ©crire son avancement sur une documentation, il est facile de remonter Ă la source, donc de blĂąmer.
đ§ Il est difficile de jeter la pierre Ă Royce, car les Ă©tudes venues invalider ses prĂ©jugĂ©s nâĂ©taient pas sorties. Il aurait cependant pu faire preuve de plus de prudence avant dâappliquer au dĂ©veloppement de logiciels tous les lieux communs de son Ă©poque. Le leçon, pour nous, est justement lĂ . Appliquons-nous benoĂźtement la derniĂšre mĂ©thode dans lâair du temps, ou bien avons-nous des preuves empiriques ?
SOURCE
Royce, Winston. âManaging the development of large software systems: concepts and techniques.â International Conference on Software Engineering (1987).
Enzo Sandré
đ Lien public