Bij DevOps productontwikkeling hoor je heel paradoxaal twee schijnbaar tegengestelde uitspraken: "maak zo snel mogelijk fouten" en "doe het in één keer goed". Het eerste vertelt dat je niet bang moet zijn om fouten te maken, daar leer je van. Het tweede zegt dat je maar één kans hebt om een eindproduct aan de klant te presenteren en dat die dan maar beter goed kan zijn. Hoe combineer je deze wijze levenslessen?
Het (kunnen en mogen) maken van fouten bij het ontwikkelen van een product is randvoorwaardelijk voor de uiteindelijke kwaliteit ervan: je leert het meest van dingen die niet in één keer goed gaan en door fouten te maken (en te analyseren wat en hoe het fout ging) wordt je snel beter in wat je doet. Het kunnen en mogen maken van fouten stelt hoge eisen aan een werkomgeving; deze moet veilig en stimulerend zijn om starheid en 'een afrekencultuur' te voorkomen. Het scheppen van een klimaat waarin medewerkers fouten durven maken en daarmee de kwaliteit van hun eigen werk stelselmatig kunnen verbeteren vormt de grootste uitdaging bij het adopteren van de DevOps filosofie.
Aan de andere kant is productkwaliteit geen fenomeen dat bekend staat om haar vergevingsgezindheid: klanten en afnemers nemen over het algemeen geen genoegen met 'rammeldende' software of gebruiksvoorwerpen. Gelukkig heeft kwaliteit vele dimensies, en sommige van deze dimensies lenen zich uitstekend voor iteratieve verbetering. Functionele compleetheid bijvoorbeeld (de mate waarin een product alle eigenschappen vertoont die met de klant zijn afgesproken) valt prima met verwachtingsmanagement op te lossen. Maar aan het einde van de dag moet dat wat is opgeleverd het gewoon doen, en het liefst met een hogere flexibiliteit (de mate waarin een product meer kan dan wat de klant verwacht) dan afgesproken.
De combinatie van 'leer van je fouten' en 'maak een goed product' ligt dan ook in de oplevering en het uitvoeren van testen vlak voor die oplevering. Het is prima om in je eigen veilige omgeving fouten te maken en het is ook prima dat een product gedurende de ontwikkeling nog niet helemaal okee is. Zodra een product wordt opgeleverd echter is het alle zeilen bijzetten om ook de laatste onvolkomenheden die de gebruikskwaliteit beïnvloeden eruit te halen.