Bij de meeste softwareprojecten worden de fasen van analyse, ontwikkeling en implementatie in één project ondergebracht of gecombineerd. Deze fasen verschillen echter aanzienlijk qua aanpak, bemensing en tijdverloop.
Met name de fasen van analyse en implementatie zijn sterk iteratief / evolutionair en zijn complexer, tijdrovender en risicovoller dan doorgaans wordt aangenomen. Het is geen wonder dat veel softwareprojecten hierdoor uit de rails lopen.
Het is dan meestal verstandiger analyse, ontwikkeling en implementatie te ontkoppelen.
Er zijn veel methodieken voor projectmanagement ontwikkeld. De bekendste is PRINCE2. Kenmerkend voor software-ontwikkeling is de parallelle uitvoering van veel activiteiten. Dit in tegenstelling tot bouwprojecten die meer sequentieel verlopen.
Een ander kenmerk is dat software onzichtbaar is. Vandaar het belang van testen. Testen is ook noodzakelijk om de eventuele gevolgen van wijzigingen merkbaar (en beheersbaar) te maken. Testen alleen is nooit voldoende (“the proof of the pudding is in the eating”).
Elke inzet van bedrijfssoftware vereist een combinatie van bedrijfs- en software-bijdragen.
