Iterative enhancement : A practical technique for software development

✒ Enzo SandrĂ© · 📆 15/02/2022 · đŸ’Ÿ Histoire de l'informatique · 🧼 MĂ©thodes de dĂ©veloppement

🔁 Le dĂ©veloppement itĂ©ratif et incrĂ©mental (IID), souvent rebrandĂ© « AgilitĂ© », n’est certainement pas une technique nouvelle sur laquelle nous n’aurions pas de recul. Avant que l’OTAN ne crĂ©Ă© l’ingĂ©nierie du logiciel en 1968, les dĂ©veloppeurs ont accumulĂ© de beaux succĂšs avec une mĂ©thode que Basili et Turner ont synthĂ©tisĂ©e en 1975.

🩮 Tout commence avec « une implĂ©mentation initiale d’un squelette de sous-problĂšme », autrement dit peu de choses. Les dĂ©veloppeurs viennent ensuite dĂ©piler des tĂąches prĂ©sentes sur une liste, pour bĂątir itĂ©rativement le logiciel.

8ïžâƒŁ A tout moment, 8 rĂšgles doivent ĂȘtre respectĂ©es :

👉 S’il y a une difficultĂ©, le refactoring doit faciliter sa rĂ©solution

👉 Si les modifications ne sont pas circonscrites à un module, il faut redesigner.

👉 MĂȘme chose pour les tables

👉 Plus une itĂ©ration progresse, plus la modification doit ĂȘtre simple Ă  achever. Sinon il faut refacto.

👉 La durĂ©e de vie d’un patch ne doit jamais dĂ©passer 2 itĂ©rations

👉 Le code doit ĂȘtre relu frĂ©quemment Ă  la lumiĂšre des objectifs

👉 Les outils d’aide au dĂ©veloppement doivent ĂȘtre utilisĂ©s le plus frĂ©quemment possible, pas seulement Ă  la fin d’une itĂ©ration

👉 Il faut en permanence collecter les retours utilisateurs et amĂ©liorer l’implĂ©mentation.

đŸ—‘ïž Cette mĂ©thode n’a jamais cessĂ© d’ĂȘtre appliquĂ©e, mĂȘme si les annĂ©es 80 ont prĂ©fĂ©rĂ© recourir massivement aux mĂ©thodes Waterfall, gonflant les taux d’échec et ruinant la rĂ©putation de notre profession.

SOURCES

Basili, Victor R. and Albert J. Turner. “Iterative enhancement: A practical technique for software development.” IEEE Transactions on Software Engineering SE-1 (1975): 390-396. DOI : 10.1109/TSE.1975.6312870

Enzo Sandré


DOIs: 10.1109/TSE.1975.6312870