Det skal være lett å gjøre rett

Vidar Moe
Vidar Moe
Sep 15 · 5 min read

Vi hadde estimert konverteringen av kredittkortfunksjonaliteten i nettbanken over på ny plattform, til et halvt årsverk. Da vi var ferdige hadde vi brukt ett og et halvt årsverk, altså tre ganger så lang tid. På tross av dette hadde ledelsen tillit til oss. Hvorfor hadde de det? Hva hadde det ekstra årsverket gått med til?

Image for post
Image for post
Verktøy.

Det hadde stort sett gått med til verktøy. Vi var i en situasjon hvor vi skulle konvertere både privatnettbanken og bedriftsnettbanken vår over på ny plattform. Vi så tidlig at vi kunne få god nytte av en del script og verktøy vi hadde laget. Ledelsen så også at dette hadde potensiale til å bli god investering, så dermed ble vi verktøymakere i tillegg til utviklere.

Men hva var det egentlig vi så? Hvorfor følte vi det var verdt å bruke dobbelt så mye tid på verktøy i starten som på faktisk konvertering av funksjonalitet?

Vi kan se på verktøyene våre som en variant av standardiserte, automatiserte prosesser.

Image for post
Image for post
The Toyota Way.

Hvis Taiichi Ohno og gjengen bak smidigmanifestet er foreldrene til Lean og Smidig, kan vi si at William Deming er bestefaren. I 1950 inspirerte Deming Ohno og Toyota med det som skulle bli kjernen i Toyota Production System, eller Lean, som er det amerikanske betegnelsen på det.

Kjernen i Lean består av to ting:

  • Kontinuerlig forbedring — hvordan skape en organisasjon som har kontinuerlig forbedring som basis i kulturen sin
  • Respekt for folk — trua på at folk som får mulighetene og rammebetingelsene, alltid vil gjøre sitt beste

Deming mente at basis for kontinuerlig forbedring, er standardiserte prosesser. Hvis vi ikke har standardisert, så er det der vi bør begynne: Finn beste måte å utføre en operasjon på, la alle gjøre operasjonen på denne måten, og sørge for at det er så lett å gjøre det at det føles dumt å la være.

Vi som jobber med IT kan gjøre det enda bedre enn å standardisere — vi kan ofte automatisere operasjonene i tillegg.

En operasjon alle 150 utviklerne våre gjør flere ganger om dagen eller i uka, er å opprette brancher med tilhørende byggejobber. Vi har laget oss et scriptrammeverk som heter bob, så hos oss gjør vi dette med onelineren

bob feature begin <featurenavn>

Image for post
Image for post
bob feature begin og bob ci job open

Med denne onelineren får vi

  • opprettet branchen med rett navnestandard
  • opprettet byggejobben for branchen
  • sikret at vi får med oss en commithook slik at den automatisk bygger ved push

Vil vi gå til jobben i Jenkins UIet, skriver vi

bob ci job open

så går vi rett dit i nærmeste nettleser.

Men vil ikke slike verktøy stå i veien for forbedring, snarere enn å hjelpe?

Vi tror det viktigste vi kan gjøre for ikke å gå den fellen, er å sørge for at verktøyene våre er så åpne som mulig, slik at alle kan være med å bidra. Har du forslag til en forbedring, legg opp en pull request, og så tar vi det derfra. På den måten får du også eierskap til verktøyene, du merker at du kan forbedre dem selv.

Siden alle teamene våre stort sett bruker de samme verktøyene, så gjør det at det blir lettere å hjelpe hverandre på tvers av team, og også bytte team. Vi kjenner oss igjen i infrastrukturen, og kan fokusere på funksjonaliteten. På denne måten er verktøyene våre med på å skape fellesskap mellom teamene våre, noe vi ofte føler kan være vanskelig, og som vi jobber mye med på fellesarenaene våre som faggruppene og fagdagen hver torsdag.

Image for post
Image for post
En bil det er lett å starte og kjøre avgårde i.

Verktøyene våre hjelper ikke bare med forbedring, de gjør ting enklere for oss også. Operasjoner vi gjør ofte, eller burde gjøre ofte, bør være lette å gjøre — det må være lett å gjøre rett. Tenk hvor enkelt det er å starte og kjøre avgårde med bilen over, på tross av hvor kompliserte de mekaniske og elektriske prosessene som faktisk sørger for at bilen kjører, er?

Vi bruker OpenShift som containerplattform, så et tilsvarende eksempel hos oss kan være det å dra opp et containermiljø for applikasjonen en jobber med lokalt. Hos oss gjør vi det med onelineren

bob openshift up

Vi trenger altså bare disse 16 tegnene og den lokale docker-compose.yaml filen som tilhører applikasjonen, for å spinne opp et fullt testmiljø i openshift for den aktuelle applikasjonen.

Image for post
Image for post
Enkel utenpå, og litt komplisert inni.

Når ting er automatisert og standardisert, så gjør vi ting likt.

Et av verktøyene våre som hjelper oss med dette, er applikasjonsgeneratorene våre. Når vi skal lage et nytt api, eller en ny frontendapplikasjon, så genererer vi opp applikasjonene. Dette garanterer blant annet at

  • applikasjonene har rett konfigurerert sikkerhet
  • at vi har kontroll på hvilke deler av den totale sikkerhet som håndteres av plattformen, og hva som håndteres av applikasjonene selv
Image for post
Image for post
Like sikkerhetsmekanismer.

På denne måten kan vi lage mange nye applikasjoner og deploye mange nye endringer, og fortsatt sove godt om natten.

I del to av denne artikkelserien skal vi fortelle om hvordan verktøyene våre er laget. Vi delte også mer om disse temaene på JavaZone VR tidligere i høst.

SpareBank 1 Utvikling

Vi jobber med digitale løsninger hos SpareBank 1.

Thanks to Kristoffer Berg

Vidar Moe

Written by

Vidar Moe

Loves creating great, simple software solutions using continous learning and respect for people.

SpareBank 1 Utvikling

Vi jobber med digitale løsninger hos SpareBank 1. Vi liker å skrive om det vi brenner for

Vidar Moe

Written by

Vidar Moe

Loves creating great, simple software solutions using continous learning and respect for people.

SpareBank 1 Utvikling

Vi jobber med digitale løsninger hos SpareBank 1. Vi liker å skrive om det vi brenner for

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store