Hur kan man klassificera projekt relaterade till mjukvaruutveckling?

Jag sitter för närvarande och arbetar på mitt examensarbete som handlar om agila metoder. Lite närmare så handlar det om hur arbetet ser ut i praktiken och hur metoder måste anpassas till miljön de används i, och tvärt om.

I jakten på svar så har jag intervjuat ett flertal personer i branschen, med olika bakgrunder, från olika företag, i olika roller och med olika erfarenheter samt läst artiklar, böcker och studier.

Det som avgör hur lyckat ett projekt anses vara beror till störst del på två dimensioner[1], fördelar för kund samt uppfyllandet av designmål. Vilka faktorer och variabler som sedan påverkar dessa dimensioner beror på vilken typ av projekt det är. Och här kommer det svåra men ack så intressanta.

Författarna föreslår en modell som klassificerar enligt tre huvudsakliga attribut (med ytterligare några attribut som mindre indikatorer):
· Mjukvaru-/hårdvaruprojekt
· Omfattning/ komplexitet (scope/complexity; low, high)
· Leverabel (output; feasibility study, improvement, new generation, new system)

Detta bygger vidare på en alternativ modell[2] i två dimensioner av samma författare:
· Systemets omfattning (Assebly, System, Array)
· Teknisk osäkerhet (Low-, Medium-, High, Super High-Tech)

Detta påminner om den tvådimensionella modell[3] som Alistair Cockburn använder med följande axlar:
· Hur kritiskt ett misslyckande skulle vara (Loss of comfort, discretionary money, essential money, life)
· Storleken på projektet (People in development staff; 1-6, 7-20, 21-40, 41-100)

Samtidigt säger Ken Schwaber[4] att definierade attributen hos ett mjukvaruprojekt är:
· Tid
· Kvalitet
· Funktionalitet
· Kostnad

Det finns med andra ord flera sätt att klassificera projekt och det råder ingen större enighet om när man kan och ska använda vilket. Kanske har någon läsare ytterligare sätt att se på det?

[1] Dvir et al. (1998) In serch of project classification: a non-universal approach to project success factors
[2] Shenhar and Dvir (1996) Toward a typological theory of project management
[3] http://en.wikipedia.org/wiki/Cockburn_Scale
[4] Schwaber and Beedle (2001) Agile Software Development with Scrum

--Joakim Wangmar