Hoe kan een softwarebouwer vooraf een vaste prijs geven?
De meeste bouwers werken op nacalculatie omdat vooraf niemand precies weet wat er gebouwd wordt. Zo krijg je die zekerheid wel.
Waar de uren gaan lopen
Vraag drie softwarebouwers om een vaste prijs en je krijgt drie keer ongeveer hetzelfde antwoord: dat kan niet, want we weten nog niet precies wat we gaan bouwen. Het eerste deel klopt. Als niemand weet wat er gebouwd wordt, kan niemand er een prijs op zetten. Alleen los je dat op met de volgorde waarin je werkt, en dat heeft met software weinig te maken.
Wie een aanbouw wil, krijgt ook geen prijs op alleen het idee. De prijs komt op een tekening, met daarop hoe groot de aanbouw wordt, waar de deur komt en wat voor kozijnen erin gaan. Die tekening wordt gemaakt voordat de eerste schep de grond in gaat, en daar betaal je voor.
Bij software slaan we die stap meestal over. Er wordt gestart na een gesprek en een globale beschrijving, en de details komen boven terwijl er al gebouwd wordt. Elk detail is dan nieuw werk waar nog geen prijs op stond, en daar gaan de uren lopen. Wie op nacalculatie werkt, heeft daar zelf geen last van, want de klok tikt gewoon door. Bij een verbouwing zou je dat nooit accepteren.
Eerst het plan, dan de prijs
Bij mij heet die tekening het plan. Er staat in welke schermen er komen en wat je op elk scherm ziet en kunt doen. Welke gegevens het systeem bijhoudt en hoe die met elkaar samenhangen. Wie welke rechten heeft, waar de gegevens van je klanten komen te staan, met welke andere systemen het praat en wat er gebeurt als zo'n systeem niet reageert. En minstens zo belangrijk: wat er niet in zit. Daar lezen mensen vaak overheen, terwijl juist dat achteraf de discussie bepaalt.
Je krijgt het plan als iets dat je kunt aanklikken. Zo loop je door je eigen systeem voordat er een regel code is geschreven. Bijna iedereen verandert dan nog iets, en dat is de bedoeling, want op dat moment kost een wijziging niets.
Wat het plan kost, hangt af van de omvang van je project. Er gaat een gratis intake van drie kwartier aan vooraf, waaruit een globale bandbreedte voor het hele project komt. Het plan is daar een vast deel van, en het bedrag wordt volledig verrekend met de bouw. Meer daarover lees je bij wat ik voor je doe.
Een vaste prijs vraagt ook iets van jou. Die prijs blijft alleen staan als je vooraf knopen doorhakt, ook over dingen waar je liever later op terugkwam. Wat er daarna bij komt, is nieuw werk met een eigen prijs, en die spreken we af voordat eraan begonnen wordt. Extra werk ontstaat bij elk project. Je hoort het alleen op het moment dat je er nog nee tegen kunt zeggen.
Soms kan een vaste prijs niet. Bijvoorbeeld bij een koppeling met een systeem waar niemand documentatie van heeft, of iets wat technisch nog uitgezocht moet worden. Een prijs vooraf is dan een gok. Daarvoor hoeft het hele project nog niet op uurbasis. Je zet dat ene stuk apart, laat het eerst uitzoeken voor een afgesproken bedrag en bepaalt daarna de prijs voor de rest. Dan is één deel onzeker in plaats van alles.
Wie het risico draagt
Het werk gaat in korte mijlpalen van een paar weken. Elke mijlpaal komt klaar te staan in een testomgeving, jij keurt hem goed, en pas daarna begint de volgende. Klopt een mijlpaal niet met wat er in het plan staat, dan wordt dat binnen de vaste prijs hersteld voordat we verder gaan. Het plan is de maatstaf, voor jou en voor mij.
Vraag wie de misrekening betaalt.
Een verkeerde inschatting van mij is daarmee mijn probleem. Heb ik een mijlpaal te krap begroot, dan komt hij toch af voor het afgesproken bedrag. Na de livegang geldt zes maanden garantie op fouten in wat er gebouwd is.
Krijg je een offerte met een vaste prijs, kijk dan waar die op rust. Herken je je eigen systeem in een uitgewerkt document eronder, dan is het een echte prijs. Ligt er een pagina met globale beschrijvingen onder, dan gaat die prijs tijdens de bouw alsnog schuiven. De vraag die het meeste oplevert is simpel: wat gebeurt er als iemand zich heeft verkeerd ingeschat? Het antwoord vertelt je wie het risico draagt.
Staat de prijs op een plan dat je zelf hebt doorgelopen, dan weet je wat het kost voordat je je eigen klanten belooft wanneer het systeem er is.
Wil je weten waar het in de praktijk misgaat, lees dan waarom softwareprojecten uitlopen.


