Door 5ec5ec: Hoewel alle stappen erg belangrijk zijn, is Maintenance naar mijn idee het belangrijkst. Zonder periodiek onderhoud kunnen al de andere facetten al snel achterhaald zijn, hoe goed je planning, analyse, design, dev en testing ook mogen zijn.
Daar staat tegenover dat een ontwerpfout die pas ontdekt wordt als het systeem al gebouwd is vreselijk duur kan zijn om op te lossen. In de pre-agile tijd dat het watervalmodel voor systeemontwikkeling voor zo'n beetje alles werd toegepast werd wel geschat dat je de inspanning die het verhelpen van een fout kost per overgang naar een volgende ontwikkelfase met een factor tien omhoog ging. Hoewel agile methoden die dynamiek (hopelijk) verbeteren tijdens een systeemontwikkelingsproject denk ik dat een fundamentele fout in de architectuur van een systeem nog even duur is tijdens de onderhoudsfase als die bij het watevalmode is.
Ik heb in het verleden, vanuit dat watervaldenken, volop meegemaakt dat gedacht werd dat omdat fouten in latere stappen relatief goedkoop op te lossen zijn die fouten er niet zo veel toe doen. Dat werkte slordig werken in de hand en dus werden waar zo gedacht werd
veel fouten gemaakt, en vele kleintjes maken een grote, soms uiteindelijk te groot om nog beheersbaar te zijn.
Dat gaat allemaal niet specifiek over beveiligingsaspecten van een systeem maar elke bug kan een beveiligingslek of onderdeel van een beveiligingslek blijken te zijn, dus ik denk dat de redenatie van toepassing is. Mijn conclusie is dat zorgvuldigheid in elke fase nodig is om robuuste systemen te maken en ze robuust te houden, en ik weet dan ook geen belangrijkste stap aan te wijzen.