Leestijd: 5 minuten
In softwareontwikkeling is de premisse van goed, snel, en goedkoop moeilijk te bereiken. Kunnen we ze alle drie krijgen? Is het mogelijk om een evenwicht te bereiken? We zullen het u hier vertellen.
Velen van ons die in de software-industrie werken, hebben, wanneer we aan projectoffertes, -consultaties of -ramingen beginnen, te maken gehad met een bijna onvermijdelijke must van de markt: het ontwikkelen van goede, snelle, en goedkope software. Is het mogelijk om deze drie variabelen tegelijkertijd te hebben? Is dit een utopie?
Om deze vraag te beantwoorden en de haalbaarheid van dit postulaat in te zien, is het van belang dat we eerst twee kernideeën onder de loep nemen.
Welke prijs zet je op een immateriële entiteit?
Software is een immaterieel produkt; we kunnen het niet zien, noch weten hoe goed het is, totdat het af is. Het bepalen van een prijs voor de ontwikkeling van software is een ingewikkelde zaak (tenzij je software in pakketvorm koopt in plaats van ontwikkeling op maat), niet alleen omdat de waarde ervan subjectief is (gebaseerd op vele criteria), maar ook omdat er verschillen bestaan over de vraag of het project gemakkelijker of complexer is om uit te voeren.
Raming, een pijler voor succes
Gezien de ongrijpbaarheid is het maken van een juiste -en zo nauwkeurig mogelijke- schatting, gezien het feit dat het een benadering is, van groot belang om budgetoverschrijdingen en tijdverspilling te voorkomen.
Content gerelateerd: 10 nuttige tips voor het schatten van softwareprojecten
In het achterhoofd houdend dat een goede schatting de basis is voor het succes van een ontwikkelingsproject, kunnen we niet voorbijgaan aan het feit dat elke schatting wordt vertaald in manuren. De professionele kwaliteit van de teamleden en hun ervaring zijn recht evenredig met de kosten van de ontwikkeling.
Kortom, wetende dat de schatting, de planning en de uitvoering van een project door mensen worden uitgevoerd, kunnen we afleiden dat de kwaliteit en de deskundigheid van de professionals van invloed zijn op de kosten van een project.
De goede, de snelle en de goedkope
Nu we hebben begrepen dat software een immateriële entiteit is waarvan de prijs moeilijk te bepalen is, vooral als er geen duidelijke schatting is, gaan we verder met het uitleggen van de attributen van de goede, de snelle en de goedkope en hoe het mogelijk is om ze te combineren maar niet alle drie tegelijk te hebben.
Goed en snel
Het is mogelijk om met snelheid iets goeds te doen. Om dit te bereiken is het essentieel om een goede inschatting te maken en vervolgens een goed uitvoeringsplan van het project te hebben, zodat de snelheid geen afbreuk doet aan de kwaliteit van het resultaat.
De sleutel tot het bereiken van kwaliteit en snelheid ligt in de mensen die aan het project werken, die gekwalificeerd genoeg moeten zijn om het project aan te pakken. Vergeet niet dat de kwaliteit van de vakmensen een bepalende factor is voor de kosten.
Bedenk dat snelheid contraproductief kan zijn voor de productiviteit: In theorie bereikt een team (en zijn leden) zijn productiepiek in een bepaalde tijd en houdt deze vast tot het einde van het project. Hoe hoger de snelheid, hoe korter de tijd dat het team zijn piekproductiviteit bereikt.
Ook de coördinatie zal een factor zijn die moet worden geanalyseerd: Hoe meer mensen parallel werken, hoe meer coördinatie vereist is (misschien moeten er meer mensen als coördinator worden toegevoegd).
Het goede en het snelle geldt vooral voor kritieke of sleutelprojecten, waarbij de kwaliteit van het product koste wat kost moet worden gewaarborgd. In deze gevallen is het noodzakelijk te beschikken over teams met veel ervaring. In dat geval zal de oplossing goed en snel zijn, maar ook duur.
Snel en goedkoop
Dit is de tweede van onze combinaties van de drie variabelen: De eenvoudigste manier om iets snel en goedkoop te doen, is het zonder kwaliteit te doen, of althans zich ervan bewust te zijn dat de kwaliteit inferieur kan zijn aan de gewenste kwaliteit. We zouden de kwaliteit tot op zekere hoogte kunnen opofferen, zolang de software geen kritieke informatie behandelt, of niet afhankelijk is van een of ander gevoelig onderdeel van de organisatie.
Voor snelheidseffecten -want in de toekomst kan de kwaliteit van de toepassing worden verbeterd-, is het mogelijk om in produktie te gaan met de belangrijkste kenmerken om het produkt te laten werken. In deze gevallen kan men het volgende doen:
- Minder de kwaliteit van de code
- Vereenvoudig de bruikbaarheid
- Laat de code-reviews achterwege
- Verminder kwaliteitscontroles en testen.
Door dit te doen, zullen we waarschijnlijk een tool krijgen met een basisfunctionaliteit, maar we zullen geen 100% bevredigend product krijgen. De bruikbaarheid ervan is misschien niet optimaal, evenmin als de kwaliteit van de code, en de uitbreidbaarheid (mogelijkheid tot wijziging of uitbreiding) en herbruikbaarheid kunnen problemen opleveren.
Dit geldt voor demo-applicaties, concepttests, niet-kritische software, of elke toepassing die schaalbaar of uitbreidbaar is in de tijd.
Goed en goedkoop
Ik geef u de laatste van onze vergelijkingen: Als de klant een goede en goedkope oplossing wil, kan hij geen snelle levering verwachten.
Er kan iets goeds en tegen een aanvaardbare kostprijs worden gedaan, maar ten koste van de tijd. In principe, als er tijd is, is het gemakkelijker te plannen -want er zijn niet zo veel taken parallel en er is niet zo veel coördinatie nodig-, en de productiviteitspiek van de betrokkenen zal langer op zijn hoogtepunt zijn.
Het krijgen van iets goeds en goedkoops is geschikt voor projecten waar tijd geen kritische variabele is, evenals voor incrementele projecten of met teams met deeltijden (die interne projecten of initiatieven hebben).
Doe dit niet over het hoofd: Softwarekwaliteit of prijs: Welke doet er echt toe?
Om samen te vatten
In softwareontwikkeling is het postulaat van softwareontwikkeling goed, snel en goedkoop heel moeilijk te realiseren. We zullen er altijd twee van kunnen krijgen, maar van de resterende zullen we moeten afzien. Op deze manier is het mogelijk kwaliteit te bereiken binnen de gestelde termijnen en tegen een redelijke prijs; het is alleen nodig te weten hoe het evenwicht tussen deze drie variabelen te vinden, de implicaties te kennen en te weten hoe zij met elkaar in verband staan om dat evenwicht te bereiken.
Het bereiken van dit evenwicht is mogelijk zolang de ramingen, de coördinatie, de selectie van de teams, de werkmethodologie en het gebruik van hulpmiddelen en technologieën de juiste zijn.
Heb je in een project een evenwicht tussen deze variabelen bereikt? Hoe heb je dat gedaan?