Men er i faktisk blevet agile?
Hvis du fortæller mig, at jeres virksomhed er blevet agil, så spørger jeg: er I faktisk blevet agile?
Alle vil være agile, for så kommer man hurtigere på markedet, man slipper af med den kedsommelige og tidskrævende dokumentation og udviklerne kan koncentrere sig om det sjove, så selvfølgelig vil I være agile. Jeg er vant til at høre virksomheder sige, at de har sadlet om og er blevet agile, og jeg bliver bekymret hver eneste gang.
For dels er det en stor omlægning at skifte fra waterfall til agile, og dels trækker virksomhedskulturen imod. Alle medarbejdere og processer er indrettet til waterfall, så man kommer kun i agile-land, hvis topledelsen giver fuld opbakning til hvert eneste svømmetag helt ind til agilitetens forjættende strande.
Det værste fra to verdener
Hvis I ikke kommer helt i land, introducerer I en stor forretningsmæssig risiko for jeres egen virksomhed, eller for de virksomheder I leverer software til. Et af de første skridt imod agilitet er nemlig næsten altid at droppe den forhadte dokumentation. Men den skal erstattes af løbende tests af det I udvikler på. Og jeg taler ikke bare om tests af de seneste linjer kode, men af tests af alle de linjer I har tidligere har lavet. Det er det, der hedder regressionstests, og de skal afvikles dagligt, for når I udvikler, så ændrer I på betingelserne for det, I kodede og testede i går og i forgårs. Derfor skal det hele testes igen.
Så hvis I stadig kun afvikler test manuelt, er I ikke kommet i land. Arbejdsmængden med at teste stiger nemlig lineært med tiden, så der er ingen måde, man kan gøre det på manuelt.
Hvis I udvikler på et eksisterende system, skal I desuden starte hele projektet med at lave tests på systemet. For I kan ikke undgå at skulle pille ved det eksisterende system under udviklingen, og uden den første test ved I jo ikke, hvilke output systemet havde som udgangspunkt. Derfor ved I heller ikke, hvad outputtet burde være, når I tester jeres nye kode.
Kan du levere ny software i dag?
Hvis I er agile, så kan du levere ny software hver eneste dag til produktionen eller til jeres kunder. For efter hvert sprint kører I jo regressionstests på jeres working software, og derfor står du med et potientielt schippable product increment på dagsbasis. Selve kernen i den agile proces er jo netop, at du til enhver tid kan teste, om din software virker korrekt i den sammenhæng, den skal indgå, fordi agile inkluderer, at du har working software. Det er derfor du kan tillade dig skrotte dokumentationen og koncentrere dig om udviklingen. Så selvom det ikke er relevant at levere hver eneste dag, så skal der altid være en ny udgave klar. Ellers er I ikke agile.
Eller for at sige det kort. Hvis I vil nyde de frugter, som agilitet tilbyder, så kan I ikke nøjes med at høste de lavesthængende frugter. Hele virksomheden er nød til at sadle helt om og blive agile. Det kræver beslutsomhed fra top til bund og input udefra, men så høster I til gengæld også alle frugterne.
Udgivet som klumme på Computerworld.dk 27-11-2017