Deployability

Nu när vi vant oss vid uttrycket testability och vi kan (tror jag iaf) alla vara överens om att testbarhet är något som vi måste ha med från början i våra utvecklingsprojekt så tycker jag att vi skall börja prata om deployability.

Ofta hör jag utvecklare prata om continious integration och continious deployment men det är sällan jag hör verksamheten prata om något som de vill ha. Inte så konstigt kanske eftersom utrullning ofta är något som helt eller delvis görs av en IT avdelning. Verksamheten bara räknar med att det tas om hand och det är ofta något som bara känns jobbigt, medför risker och kostar pengar.

Att tidigt bygga in deployability i ett IT-system handlar för mig om att just ta bort dessa tråkiga saker samtidigt som man skapar möjligheter att faktiskt tjäna pengar. Ja jag menar faktiskt tjäna och inte spara.

Låt oss börja med risken.

Vi vet att det är omöjligt i praktiken att testa så mycket innan ut-rullning att det inte finns någon risk att vi inte har någon kritisk bugg i systemet i fråga.

Om vi nu kan konstatera att det alltid finns en risk hur ska vi då mitigera risken?

Jag förordar är man bygger in möjligheterna att

  • omedelbart kunna rulla tillbaks
  • omedelbart kunna rulla ut en fix

Att göra detta möjligt skall enligt mig vara ett krav redan från början.

Jag sa ju också att man kan tjäna pengar.

Detta bygger jag på tankarna kring Lean Startup (http://theleanstartup.com/) där man pratar om hur viktigt det är att snabbt testa sina idéer för att få feedback.

Det kan t.ex handla om att testa ett nytt registreringsformulär, hur en ny funktion kommer tas emot av användare osv.

Att kunna rulla ut olika versioner till olika användare gör detta möjligt och ger helt nya möjligheter för verksamheten att testa idéer och kunna fatta rätt beslut.

Detta är också något som jag anser skall byggas in redan från början.

Hur ser ni på detta? Skall utvecklingsteamet implementera dessa saker "automatiskt" utan att verksamheten ber om det eller skall beställaren komma med detta som krav?

-
Magnus Carlsson är konsult på Inceptive med passion för att på bästa sätt hjälpa företag med sin utveckling av IT-system.