Softwareontwikkeling wordt nu heel vaak in de vorm van een project uitgevoerd. Ik denk dat het vormen van een project meer nadelen heeft dan voordelen. Het belangrijkste argument hiervoor is dat er vaak wel budget is om (nieuwe) software te ontwikkelen, maar geen budget om bestaande software te onderhouden.
Het lijkt erop dat het creëren van een project wordt gezien als een investering. Onderhoud wordt echter door veel bedrijven gezien als een kostenpost. En kosten moeten onder controle worden gehouden. Dit resulteert in een minimale bezetting van het supportteam, met als resultaat dat alleen de meest urgente zaken kunnen worden opgepakt en opgelost. Voor het oplossen van structurele problemen wordt vaak geen tijd vrijgemaakt. Deze structurele problemen worden dan met patch op patch gerepareerd. Onderhoud als kostenpost zien is niet terecht als je mij vraagt. Leg de software 1 dag stil in de huidige online economie en veel geld gaat verloren.
De oplossing voor structureel onderhoud is meestal het opstarten van een project. Binnen dit project wordt (dan een deel van de) bestaande software vervangen door nieuwe programatuur. Vaak wordt niemand uit het huidige supportteam toegevoegd aan het projectteam, omdat niemand binnen het supportteam de tijd heeft om deel te nemen aan een project. Het resultaat hiervan is dat binnen het nieuwe projectteam het domein minder bekend is. De herschreven software wordt overgedragen aan support. Doordat support niet betrokken was bij de ontwikkeling wordt onderhoud weer moeilijker. Na een aantal jaren wordt deze cyclus herhaald.
Als we nu stoppen met het splitsen van onderhoud en nieuwe ontwikkeling ontstaat naar mijn mening een veel gezondere situatie. Een gemengd team is betrokken bij alle bestaande software en kent het domein als geen ander. Nu kun je je natuurlijk afvragen wat is er mis met een project. Het project is niet het probleem, maar de gebruikelijke invulling.