Undgå teknisk gæld

Programmering er som at lægge skinner, imens du kører toget. Hvis du kører forkert, kan du ikke lige køre 200 meter tilbage og lave et sving, uden at skulle lægge skinnerne om. Nogle gange støder du også på en bjergside. Er det besværet værd at sprænge sig igennem og lave en tunnel, eller skal du føre skinnerne udenom? Det rigtige svar afhænger af tid, budget og fremtidige ønsker.

Os udviklere skal tage mange små beslutninger i vores arbejde, måske flere hundrede om dagen. Udfordringen er bare, at verden ændrer sig for vores fødder. Kravene til applikationen udvikler sig, brugerne har nye ønsker og teknologier ændrer sig konstant. Pludselig er den rigtige beslutning, at bygge en tunnel, men vi har allerede ført togskinnerne uden om bjerget og kan ikke gøre arbejdet om.

Som udvikler skal du derfor hele tiden spå om fremtiden. Bliver funktionen udvidet på sigt? Skal der understøttes andre lande, tidszoner, sprog, eksterne integrationer? Bliver funktionen brugt 10 gange om dagen eller 1 gang om året? Vi kan aldrig forudsige alt og nogle af disse valg, viser sig på sigt, at være uhensigtsmæssige. Det er det, vi kalder teknisk gæld.

Slib kniven

Forestil dig at du er en kok, som aldrig sliber din kniv. Det går måske godt nok i starten, men der går ikke længe før arbejdet går mere trægt. Måske smutter kniven til sidst og du kommer ud for et uheld. På et tidspunkt vil du give op og sige “Jeg kan ikke arbejde med det her mere”. Det samme sker for programmering. På et tidspunkt er en løsning ikke holdbar mere og der skal en omskrivning til, for at komme videre.

Løsningen er selvfølgelig at slibe kniven. I udviklerens verden kaldes det refaktorering og handler om, at omskrive koden uden at ændre funktionaliteten. Målet er at optimere hastigheden, gøre udviklingen mere gnidningsfri og forberede til fremtidig funktionalitet. Kort sagt at tilpasse applikationen til en verden, som konstant ændrer sig.

Kompromisernes kunst

Programmering er kompromisernes kunst. Vi ved det alle sammen, os der arbejder med kode. Det er ikke lige emnet, der bliver fremlagt på det første kundemøde, men det er unægteligt sandt. Hver lille beslutning er ikke i sig selv skelsættende. Men over tid akkumulerer de små valg, og bliver til forretningskritiske beslutninger.

Skal du udvikle en applikation eller et website, er det derfor vigtigt at du forsøger at minimere teknisk gæld. F.eks. kan en grundig researchproces hjælpe. Ved at konkretisere målet, bliver alle parter bedre i stand til at tage de små, men vigtige, beslutninger i dagligdagen. Men research er ikke nok. Verden ændrer sig for meget. Derfor er det vigtigt at afsætte tid og budget til løbende vedligehold. På den måde sikrer du at verden ikke løber fra dit projekt.

Vil du vide mere?