Vid utveckling av mjukvara och datorsystem är det tyvärr så att den negativa effekten av allt för mycket fokus på utveckling av funktion ofta förbises. Vid prioritering räknar man endast med kostnader som har att göra med den tid det tar att utveckla och testa funktionen och inte med kostnader sett till hela livscykeln. De senare kostnaderna är ofta relaterade till icke-funktion som dokumentation, utbildning, drift- och utvecklingsprocess, spårbarhet, överskådlighet, testbarhet, enkelhet vid vidareutveckling, kostnader för driftstopp etc. Alla dessa är exempel på värden som är svåra att formulera och ofta inte ingår i kraven.
När dessa värden inte prioriteras uppstår en teknisk skuld. Ett system med hög teknisk skuld är svårt att underhålla, utveckla och använda. Ju högre teknisk skuld desto högre kostnad är associerat med brandsläckning, utbildning, felsökning, drift etc. Paradoxalt nog innebär det alltså att en upp-prioritering av funktion resulterar i en ned-prioritering av den samma eftersom mer tid går åt till de nyss nämnda sysslorna.
På Aftonbladet har vi just inlett ett projekt för att amortera på den tekniska skulden. Lösningen är att systematisera, automatisera och förenkla processer kring utveckling och drift. Vi vill t.ex. säkerställa att alla projekten tillämpar automatisk kodgranskning, att vi genererar dokumentation från inställningsfiler för att slippa hålla wikisidor i sync m.m. På så sätt får vi mer tid att implementera funktioner med hög kvalité!