SpareBank 1 Utvikling

Dette er SpareBank 1 Utvikling, og på denne siden kan du bli bedre kjent med hvem vi er, hva vi gjør og hvordan vi jobber – gjennom oss som faktisk jobber her. Så kan du vurdere selv om du også har lyst til å bli en del av det vi mener er det beste og triveligste IT-miljøet i bransjen. Med de flinkeste folka.

Vi skaper en enklere og bedre hverdagsøkonomi

Vi utvikler og forvalter løsninger som brukes av over 1 million kunder. Det er vi skikkelig stolte av! Her kan du bli enda bedre kjent med selskapet, måten vi jobber på, løsningene vi lager, og ikke minst - ukas aller beste dag: Fagdagen.

Miljøbilde fra SpareBank 1

SpareBank 1 Utvikling på Medium @sparebank1-digital

Har du rom for forbedring?

Du har kanskje spilt dette spillet som barn?En 10x10cm plastplate med brikker du kan skyve rundt på. Illustrasjon fra Slack av Tom DeMarcoVed hjelp av den ledige plassen flytter du rundt på brikkene for å sortere dem i den rekkefølgen du vil.For å dra det litt nærmere vår virkelighet, så kan vi tenke på den ledige plassen som noen ledige pulter i lokalet i vårt, eller kanskje et par utviklere som har ledig kapasitet?Ved å bruke også den ledige plassen blir vi 100 prosent effektive! llustrasjon fra Slack av Tom DeMarcoFyller vi helt opp blir vi utrolig effektive . Vi utnytter absolutt all kapasiteten vi har.Samtidig mister vi helt muligheten til endring og forbedring.Vi har ikke noe handlingsrom til å håndtere endrede prioriteringer og forbedringer uten at vi samtidig må stoppe andre aktiviteter. Kundeverdien av aktivitetene vi stopper er null, helt til vi får gjort dem ferdig. Kanskje. Siden. En gang.For å kunne jobbe godt med forbedringer og endrede prioriteringer, trenger vi slakk i organisasjonen.Det kan være lettere å forstå mekanismene som ligger bak denne observasjonen med et generelt eksempel? Avsnitt ni her, viser at i et team med varierende antall oppgaver og kompleksitet, så må vi ha slakk i teamet for å optimalisere time to market for det vi holder på med.Hvordan lager vi slakk da?Ja vel. Men hvordan i all verden skal vi lage slakk da?Vi kan lage slakk på flere måter:Ikke alloker folk fulltid på en oppgave. Fulltid er uansett en illusjon, i og med at folk skal på ferie, blir syke, og skal være med på en fastelavensfeiring i barnehagen innimellom.Ikke lås omfang for oppgavene. Mye av det mange av oss jobber med, er utvikling av løsninger som aldri har vært laget før i akkurat vår kontekst. Med mindre det er løsninger som må på plass innen en viss dato grunnet for eksempel lovregulering, så planlegg med slakk i leveransene ved hjelp av variabelt omfang. Kan vi levere litt som skaper verdi nå, så er det nesten alltid bedre enn å levere mer som skaper verdi siden.Ved å planlegge med slakk i leveransene får du også en mye bedre og åpnere håndtering av alt det som kommer til å skje de neste månedene, som du ikke har den fjerneste anelse om i dag.Noe nesten ingen av oss hadde den fjerneste anelse om for litt over et år siden.Slakk gir rom for forbedringMed slakk gir vi oss selv også rom til å drive med forbedringsarbeid. Dette kan vi gjøre på flere måter og på flere nivå.Slakken vi har i organisasjonen eller teamet, kan vi bruke til å jobbe med forbedring både direkte og indirekte i det daglige arbeidet. Et eksempel kan være å forbedre en enhetstest som ikke er direkte koblet til oppgaven vi løser, eller ta oss tid til å tilgjengeliggjøre den smarte nye funksjonaliteten vi har laget til alle, istedet bare for oss selv eller teamet vårt.Med slakk kan også vi bygge forbedringsarbeid inn i måten vi arbeider på. Vi kan kjøre forbedringsprosesser som retrospektiver, A3 og post mortems. Forbedringsoppgaver vi finner der, kan vi ta inn som en del av det daglige arbeidet.Har vi tilstrekkelig med slakk i organisasjonen, kan vi kjøre større forbedringsinitiativer ved å la folk vi normalt sett ville brukt på ordinært arbeid, jobbe med forbedringsinitiativ i en periode. Siden det er planlagt med slakk i utgangspunktet, vil ikke dette påvirke de planlagte leveransene.Slakk kan vi også bruke til refleksjon og tankearbeid. Sett av tid til å reflektere over oppgavene du jobber med. Løser vi oppgavene på rett måte? Løser vi de riktige oppgavene? Finnes det andre måter vi kan jobbe bedre sammen på?I bransjen vår er kontinuerlig kompetanseheving omtrent obligatorisk for å kunne levere godt over tid. Dette kan det derfor også være lurt å sette av fast tid til. Planlegg med at folk trenger å bruke tid på kompetanseheving. Kanskje kan vi til og med slå to fluer i en smekk, og bruke kompetansehevingen som teamaktivitet og kulturbygger også?Jobber vi med oppgavene våre hele tiden, oppfattes vi fort som veldig effektive.I SpareBank 1 Utvikling jobber vi med å skape stadig bedre flyt i både produktutviklingen vår og forbedringsarbeidet vårt, med bruk av slakk. Vi har skrevet flere artikler tidligere om hvordan dette fokuset har gjort kontinuerlig forbedring til en av bærebjelkene i produktutviklingen vår. Det kan du lese mer om her.Har du rom for forbedring? was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Vidar Moe

Jobber du med det du egentlig vil?

Om å være ærlig med seg selv.Photo by Free To Use Sounds on UnsplashJeg har på ingen måter mistrivdes i mine tidligere jobber og har for det meste gledet meg til å gå på jobb. I nesten hele min yrkeskarriere har jeg jobbet med ledelse av utviklingsprosjekter og team. Inntil nylig var dette en naturlig karriere å bygge videre på.Som nyutdannet fikk jeg meg en jobb som utvikler, men det tok ikke mer enn et par uker før jeg ble spurt om jeg kunne lede et prosjekt. Det virket jo som om jeg kunne passe til det? Sant nok, jeg passet til det. Jeg har passet til det i over 15 år, og jeg passer sikkert til det fremdeles, men jeg har endelig funnet ut at det er noe annet jeg heller vil gjøre.Ekte stock photo av megDet kan ta tid å innse at man kanskje ikke lever livet fullt ut slik man egentlig vil. Det er mye lettere å bare la det skli som før og gjøre det man er vant til. Det som er innenfor komfortsonen og det som tilsynelatende er trygt.Jeg har hele tiden følt jeg har jobbet med noe jeg er god til. Mestringsfølelsen jeg har hatt har vært med på å dra karrieren videre i samme retning. Men det handler ikke alltid om hva man er best til. Det handler like mye om hva man selv vil og hva som gir glede og energi i livet. Prioritering her ble vanskelig for meg fordi jeg rett og slett ikke turte å tenke nøye gjennom hva jeg gjorde og hva jeg egentlig ville. Det måtte modnes over tid, men til slutt var svaret innlysende. Svaret var selvsagt noe jeg alltid hadde visst. Jeg ville ikke jobbe med ledelse. Jeg ville jobbe som utvikler.memegenerator.netÅ velge en annen vei, i hvert fall så sent i karrieren, krevde en del mot fra min side. Jeg var ganske redd for hvilken vei høna skulle sparke. Jeg var n00b i git-kommandoer, rota til min første rebase og hadde aldri før har satt mine ben i emacs. Heldigvis så er det ofte slik at det man frykter mest ofte ikke skjer i virkeligheten. Så lenge man er tydelig på hva man kan og hva man må jobbe mer med, handler det ikke lenger så mye om “du er flink nok”. Jeg måtte tørre å ikke være så “flink”, våge å gå fra senior til junior, noe som ikke var lett. For noen er en slik endring enkelt å gjennomføre, og således vanskelig å sette seg inn i. Andre kjenner seg nok igjen og fikk kanskje noe å tenke på.Å være modig er mye lettere når man har noen som støtter og heier på deg. I SpareBank 1 Utvikling følte jeg det var trygt å ta denne praten med min leder og sette i gang en prosess med å gjøre store endringer i karrieren. Jeg fikk også en fadder og mentor jeg kunne ringe til for å løse opp i rebase-floker og stille alle de dumme spørsmålene til. Uten å føle meg dum.Åpenhet og god dialog er viktig. Man trenger å føle en trygghet rundt det å snakke åpent om hva man selv vil. Når jeg først turte å ta steget ble jeg kun møtt med interesse og støtte. Det var fokus på meg som menneske og hva jeg vil gjøre for å trives i min jobb og hvordan jeg kan best bidra med mine egenskaper.Det er ikke mangel på studier som sier at organisasjoner som er gode til å hente ut det beste i sine ansatte og legger godt til rette for at hver enkelt får mulighet til å utvikle seg i den retningen man ønsker, lykkes bedre enn andre. Det er ingen tvil om at endringstakten har økt på de fleste fronter, noe som også øker behovet for å oppdatere seg med tanke på kompetanse. Spørsmålet er om behov og ønske om å bytte spor underveis i karrieren er et tema som stadig flere vil kjenne behov for?Budskapet her er at du alltid har et valg og at dersom du ønsker deg nye oppgaver må du gjøre noe med det, selv om det koster en del å innrømme det. Husk at det spiller ingen rolle om du egentlig burde ha gjort noe med det for lenge siden. Det er aldri for sent. Det som betyr noe er at du tar mot til deg og gjør noe med det når det kjennes riktig. Det krever kanskje at du er dønn ærlig med deg selv, noe som ikke alltid er like lett. Men det er verdt det, jeg lover.Hilsen en utvikler som trives særs godt med nye oppgaver og fokus.Jobber du med det du egentlig vil? was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Jens-Christian Bjerkek

Fredag er for feiring

I SpareBank 1 Utvikling er vi på en spennende og lærerik reise innen målarbeid, der bl.a. bruk av Objectives and Key Results (OKR) har gitt gode resultater. En av grunnene til at OKR fungerer godt hos oss er rytmen Christina Wodtke anbefaler i boken Radical Focus. Rytmen har vært viktig for å løse “set and forget”-utfordringen, der mål ikke blir del av det daglige arbeidet. Dette innlegget handler om den delen av rytmen som avslutter uken. Velkommen til “Friday wins”.Radical Focus-modellenFørst noen ord om “Monday commitments”, møtet som kickstarter uken. Her samles hele teamet foran tavlen mandag morgen og spør seg selv “Hvordan ligger vi an i forhold til målene vi har satt oss?” og “Hva må vi ha fokus på denne uken for å nå målet?”. Gjennom denne diskusjonen blir teamet enige om de viktigste oppgavene. Kun disse havner på tavlen. Dette er oppgavene man forplikter seg til i felleskap, og som teamet strekker seg for å levere innen fredag.“Fridays wins”-sesjonen handler om å feire det man har fått til og om å dele læring. Med en varm kopp kaffe, og gjerne med noe godt å bite i, samles teamet på slutten av uka for å fortelle hverandre om ting man har lykkes med.Hadde vi for få markeringer?SpareBank 1 Utvikling kommer fra en sterk kultur for å løse problemer. I utgangspunktet et meget godt fundament for å ta hånd om utfordringene vi har ansvaret for. Ting som gikk bra underveis i arbeidet var det imidlertid begrenset med fokus på. En slik kombinasjon kan skape ubalanse i tilværelsen.“When teams are aiming high, they fail a lot. While it’s good to aim high, missing your goals without also seeing how far you’ve come is often depressing. That’s why committing to the Friday wins session is so critical.” — Christina WodtkeFremveksten av hyppigere produksjonssettinger gjorde at misforholdet muligens ble større. En følge, av denne ellers gledelige utviklingen, var at det ble færre markeringer knyttet til tradisjonelle milepæler og leveranser. Prosjekter har typisk omfavnet viktigheten av å markere leveranser og måloppnåelse. Omfanget av den klassiske prosjektarenaen har imidlertid blitt gradvis redusert i vår organisasjon. Etter hvert som team gikk mer over mot kanban og kontinuerlig flyt, ble demo mer del av det daglige arbeidet og markering på slutten av hver Scrum-sprint borte. I sum kunne det nok tidvis fortone seg som en ørkenvandring på stadig jakt etter ambisiøse mål man ikke helt oppnådde, kombinert med jevnt tilsig av nye problemer å håndtere.Endret dynamikkMed introduksjon av “Friday wins”-sesjonen endret dynamikken seg. Vi startet å prate mer om det vi hadde oppnådd, og gjorde det med en fast rytme. Økt fokus på det som har gått bra har flere fordeler. Ved å gi det man lykkes med mer plass og anerkjennelse øker sannsynligheten for at det vil skje igjen. Atferdspsykologi omtaler dette som at “positive reinforcement” anerkjenner og forsterker det som går bra.“Positive reinforcement is the most powerful leadership tool” — Aubrey Daniels, (Daniels, 1982)I et ambisiøst miljø som jobber med å løse krevende utfordringer bidrar “Friday wins” til å vise oss selv at mye faktisk er oppnådd. Med “Friday wins”-møtet blir positive tilbakemeldinger bygd inn i prosessen, der hver uke avsluttes med en følelse av mestring og fremgang som tas med inn i helgen. Dette til tross for at en del ikke har gått slik vi håpet. Mandag er vi igjen klare for å løse utfordringer og kjempe med å ta de neste stegene gjennom uka.Et annet positivt aspekt ved “Friday wins” er bidrag til trygghet i arbeidet. I boken The Fearless Organization peker Amy Edmondson på viktigheten av at ledere legger til rette for en kultur der psykologisk trygghet er med på å etablere et klima som støtter opp om læring. Google fant i prosjekt Aristoteles at det viktigste kjennetegnet ved team som lykkes er psykologisk trygghet. Med covid-19 pandemien kjennes dette viktigere enn noen gang, med behov for tilhørighet og trygghet fra hjemmekontoret.“…several benefits. One, you start to feel like you are part of a pretty special winning team. Two, the team starts looking forward to having something to share. They seek wins. And lastly, the company starts to appreciate what each discipline is going through and understands what everyone does all day.” — Christina WodtkeUtfordringerEn praktisk utfordring med “Friday wins” oppstår om ikke alle kan delta. I teamet jeg er medlem av benyttes ofte Slack for deling om man ikke har anledning til å være med. Rikelig med high fives og positive kommentarer sørger for at også de som var opptatt får med seg en god dose mestringsfølelse inn i helgen. En annen ting å tenke på er at arenaen ikke blir dominert av de ekstroverte. Ved å la ordet gå runden i teamet sikres at alle deler noe man har lykkes med.Videre kan det være nyttig å understreke hva “Friday wins” ikke er. Hverken rapportering, avmelding av status eller problemer hører hjemme her. Dette kan være krevende å overholde, særlig i begynnelsen, men med litt trening blir det etter hvert naturlig at innholdet kun er det som har gått bra.Tro på å sammen klare det neste stegetEr det god tidsbruk å avslutte uken i fellesskap med fokus utelukkende på det positive? I mitt team undervurderte vi verdien av å prate om tingene som går bra. Vi har erfart at fokus på det positive skaper kraft og tro på at man sammen vil klare å ta det neste steget. Det er mye som fortjener oppmerksomhet, uten at det nødvendigvis direkte har flyttet nøkkeltall. Resultatet er alltid stolthet over det vi har fått til sammen.“Friday wins”-sesjon fra hjemmekontoret.Slik runder “Friday wins” av uka med en kraftfull vitamininnsprøytning. Teamet tar med seg en mengde positiv energi inn i helgen, etterfulgt av velfortjent avkobling og restitusjon. Så enkelt, og så kraftfullt. Fredag egner seg definitivt for feiring.PS! Vil du vite mer om hvordan Radical Focus-modellen fungerer? Les innlegget “Ikke nok et jævla statusmøte!” der et av utviklingsteamene i SpareBank 1 Utvikling oppsummerer sine erfaringer.Fredag er for feiring was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Kristoffer Berg

Hvordan har teamet det når alle er på hjemmekontor?

Lenge før vi befant oss på hjemmekontor i mars hadde vi i SpareBank 1 Utvikling jobbet med å måle teamets helse. Noen team hadde kommet lengre enn andre og vi teamledere lærte kontinuerlig av hverandre. Arbeidet ble ekstra viktig nå når alle plutselig måtte jobbe hjemmefra. Hvordan ville “den nye normalen” påvirke oss?Mars 2020 — tomme lokaler hos SpareBank 1 UtviklingJeg er teamleder for Team Betaling, ett av utviklingsteamene som leverer de digitale løsningene for SpareBank 1-bankene. Vi hadde siden juni 2019 hatt en del utskiftninger på teamet, så vi startet måling av teamets helse når alle de nye utviklerne var på plass. For å spare tid gjenbrukte vi spørsmål fra et annet team og rakk såvidt å komme i gang før pandemien traff oss.Helsesjekk for Team Betaling uke 5 og 11 — svaralternativer Ja=5, Tja=3 og Nei=1Vi brukte mer tid på å diskutere hva spørsmålene betydde enn å reflektere rundt svarene som var gitt. Konklusjonen etter to helsesjekker var at vi måtte ha nye spørsmål. I retrospekt var det kanskje ikke den beste løsningen å arve spørsmål fra et annet team, men da kom vi i hvert fall i gang.TrygghetVi visste det var viktig å bygge tryggheten i teamet slik Amy Edmondson snakker om i sin TED-talk Building a pshygologically safe workplace. Det var også godt kjent at trygghet troner øverst etter Googles funn om hva som kjennetegner high performing teams gjennom prosjektet Aristotle.https://rework.withgoogle.com/blog/five-keys-to-a-successful-google-team/Tid for å ta frem egne spørsmålVia Microsoft Teams og Confluence (Miro var under innføring og kom på plass like etter) jobbet vi frem våre egne spørsmål.Resultat fra workshopDet var mange gode diskusjoner underveis som f.eks. “Kan alle faggrupper i teamet svare på spørsmål om vi har redusert gjeld?” “Ja, det kan vi”. Både design, utvikling og test har gjeld de kan redusere. Og hva syntes vi om å svare på “Jeg har kunnet si hva jeg mener og blitt hørt?” Var vi trygge nok på hverandre til å svare oppriktig her? Ja, vi mente det.Gjennomføring av helsesjekkSpørsmålene ble lagt inn i Microsoft Forms slik at teamet kunne svare anonymt i forkant av selve gjennomgangen.Frekvensen på helsesjekken ble annenhver uke for å få hyppig feedback nå som alle satt hjemme. Gjennomgangen av resultatene med teamet ble satt til 30 minutter. Spørsmålene som hadde snitt på tre eller lavere ble plukket ut for diskusjon. Vi forsterket også spørsmålene som hadde høyt snitt for å forstå hva vi gjorde bra og hvordan vi kunne gjøre mer av det. De få gangene tiden ble knapp under gjennomgangen, satte vi opp egne møter som f.eks. retrospektiv for videre diskusjon.Helsesjekk med de nye spørsmålene — Svaralternativer Helt uenig=1, litt uenig=2, litt enig=3 og helt enig=4MøterFør pandemien hadde vi en del diskusjoner rundt arbeidsflyten. Diskusjonen fortsatte, men årsaken hadde endret seg. Utfordringen hadde gått fra tidvis visuell støy og vanskeligheter med å jobbe fokusert i kontorlandskapet til savn etter raske avklaringer ved pulten/kaffemaskinen og summingen i landskapet.For å kompensere for dette savnet steg møteaktiviteten, som igjen førte til hyppigere fokusskifter og mindre effektiv arbeidsflyt. For å sikre mer tid til fokusert arbeid testet teamet ut å blokke tid i kalenderen slik som Vidar Moe skriver om i sin artikkel Ikke jobb mens jeg forstyrrer. Vi syns det hjalp, og sammen med god dialog mellom produkteier og teamet ble vi også enda flinkere på prioritering av oppgavene.Et annet møte vi måtte se på var standupen. Med 18 personer på Teams ble standup i drøyeste laget og vi besluttet etter en helsesjekk å gå over til skriftlig standup på Slack. Teamet ble enig om å liste opp planene for dagen og eventuelle behov for hjelp. Og ikke minst, passe på å si hei nå som vi ikke så hverandre.“Jeg har kunnet si hva jeg mener og blitt hørt?” hadde stort sett høy score. De gangene den gikk litt ned var årsaken for mange deltagere i et Teams-møte. Terskelen for å ta ordet var høyere nå enn når vi satt i samme møterom. Tiltaket ble å dele opp i mindre arbeidsgrupper som gjorde det tryggere å ta ordet. Vi prøvde også å alltid ha kamera på og bruke hånden eller chatten i Teams for å be om ordet eller gi små kommentarer.Etter hvert endret vi frekvensen på helsesjekken fra annenhver uke til en gang i måneden, både for å ha færre møter, men også for å rekke og gjennomføre tiltakene vi satte oss fra gang til gang.Det sosialeSelv om møter ofte var tema på helsesjekken, var kanskje den største gjengangeren etter pandemien det sosiale. Vi savnet møtene ved kaffemaskinen, de tilfeldige møtene i gangene, det å spise lunsj sammen, kakefeiring og ikke minst noe så enkelt som å si “Hei, hvordan går det?”Det var ikke like enkelt å få gjort noe med det sosiale når smittevernsreglene ble justert regelmessig. Når vi ikke kunne treffes fysisk prøvde vi å få til så mye som mulig digitalt. Kahoot ble innført fast hver fredag som en del av fredagens markering av hva vi hadde fått til gjennom uken. Kakefeiring på leveranser ble samlet opp med levering av noe godt på døren hjemme hos hver enkelt. Vi gjennomførte Team Canvas som gjorde at vi ble bedre kjent med hverandre som team og enkeltpersoner. Alle tiltak hjalp, men de sosiale arenaene er og blir best når vi møtes fysisk.Som teamleder har det også vært viktig med hyppige 1–1 samtaler da helsesjekken ikke erstatter den viktige dialogen med hver enkelt. Vi har også hatt jevnlig retrospektiv for å få mer helhetlig innblikk i teamets tilstand.Uten helsesjekken og verdien den gir hadde vi ikke kunne hatt like god innsikt i teamets helse, spesielt nå som alle sitter på hjemmekontor. Helsesjekken hjelper teamet til å finne hva som bør være fokus for kontinuerlig forbedring og videreutvikling slik at vi skal kunne bli enda Bedre sammen.SpareBank 1 Utviklings VerdiplattformHvordan har teamet det når alle er på hjemmekontor? was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Sissel Sveum

Sayonara, Internet Explorer

Er det ikke kjipt når du har tatt på fullt turtøy og skal ut på en lang ferd mot en vakker horisont, bare til å merke at det er en stein i skoen?Du står da i et viktig veivalg:Skal du bare dure på? Selv om det gjør vondt og går mye tregere, kan du potensielt nå målet ditt.Skal du fjerne steinen? Det tar kanskje litt tid å ta av skoen, men turen blir mye morsommere og du kommer kjappere til mål.På nettsidene har vi fjernet vår stein; Internet Explorer (IE).Alle som har jobbet med web de siste årene vet hvor ressurskrevende det er å tilpasse løsninger sånn at det fungerer greit på IE. Spesielt når man utvikler løsninger som pusher hva våre teknologiske muligheter er, tar det nesten like lang tid å få dette til å fungere på IE.Fokuset vårt vil være på mobil, ikke Internet Explorer.Trygt valgFor sparebank1.no er det et trygt valg å fjerne supportering av IE. Mobil blir bare mer og mer den foretrukne enheten for brukerne våre, og Chrome samt Safari er desidert de mest populære nettleserne. Etter dette kommer Edge og langt bak med stadig synkende trafikk: IE. Microsoft har selv sagt at de skal slutte supportering av IE i 2021 og fokusere fullt på Edge.Dette betyr ikke at nettsidene vil slutte fungere på IE. Det betyr bare at vi kommer til å prioritere andre oppgaver enn å fikse IE feil. Over tid vil det være mer og mer gunstig for brukeren å velge en annen nettleser. Vi står heller ikke alene om dette: Både finn.no, nav.no og spleis.no gir varsling hvis du bruker Internet Explorer.Problemet er bedrifter som har IE som standard nettleserFor de som får en Windows PC fra jobb og booter denne opp er det en stor sannsynlighet at default nettleser er Internet Explorer. Dette er problemet.Jeg antar at en stor andel av brukere ikke egentlig bryr seg om hvilken nettleser de bruker. Den nettleseren som er mest tilgjengelig er den de bruker, og normalen blir at nettsider kan oppføre seg litt rart eller at man får flere og flere varslinger.Når selv Microsoft har gått ut med at Internet Explorer kan være en risiko for sikkerhet, regler og universelle standarder, kan det ikke være opp til den individuelle ansatte å gjøre et skippertak mot bedriftens anbefalinger ved å bytte nettleser. Bedriften må sette en bedre standard med å tilrettelegge en nettleser som faktisk er supportert og fungerer.Uansett, for å bruke et av Japans mest misforståtte ord:Sayonara, Internet Explorer.Sayonara, Internet Explorer was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Lasse Olsen

Playwright vs Cypress

Not too long ago, Cypress seemed to be the most exciting new end-to-end testing framework out there, quickly growing in popularity within different development teams. However now there’s a new kid on the block named Playwright, and it aims to solve a similar issue — helping developers automate their user-flows in a more user-friendly way.This article will compare the two, and hopefully make it clearer which testing framework suits your needs the most, by making you aware of their similarities, differences, strengths and weaknesses.About the frameworksFor an introduction to the fundamentals of Cypress.io, check out my other article named “Testing with Cypress”. In short, Cypress is a tool for setting up, writing, running and debugging tests. It compiles all the tests into Javascript, runs in an instance of a chromium-based browser that includes Chrome, Edge, Brave and Electron. Cypress also just recently added full-support for Firefox browsers.Playwright is essentially a browser automation tool and the processor of the node library Puppeteer, as it has the same functionality along with several improvements such as Cross-browser testing and device emulations. Playwright is also written and maintained by the same people who created Puppeteer, and are now working at Microsoft. This article won’t cover Puppeteer, but it’s handy to know of its similarities, especially if you’re already familiar with it.SimilaritiesSimilarly to Cypress, Playwright is an open-source, Javascript-based library, for automating your end-to-end tests. Both aim to provide a single API that developers and testers can use to interact with web applications across the major browser engines. There is a difference between the two when it comes to browser support, but both offer the ability to run tests and interactions in Firefox and Chromium browsers. Other similarities include functionality, like taking screenshots, stubbing requests, and testing on various screen sizes. If you want to run your tests as part of your continuous integration flow, or prefer to run the tests without a UI interface, then you’ll be happy to hear both offer headless options so that you can run your tests directly in the Terminal.To summarize:Both are Open-source and Javascript-basedCan install both as an npm-package.Single API for testing in several browsers (Both support Firefox and Chromium)Share a lot of the same functionality, like screenshots, stubbing and setting custom view-ports.Neither supports testing in IE11Can be run from the TerminalFrequently updated GitHub ReposDifferencesWhile they both aim to solve a similar issue, they have different ways of doing so. Cypress is more of a “full-package”, and it creates a folder structure along with example files, and you are stuck with the test runner you get with the framework. Playwright, on the other hand, does not make any files and can be configured to work with the test runner of your choice. The two frameworks also run their tests differently. Cypress runs the tests in run-time, and Playwright is promise-based and can run several different browsers and different user contexts in the same test, while Cypress needs to be re-run with the other browser options.Cypress has gone for a syntax more similar to JQuery, but instead of “$”, it uses the keyword “cy”, and a function name. Having one keyword to access everything, might make more sense for designers and junior front-end developers, less familiar with async and creating instances of objects, than the more Javascript approach Playwright has. The example below shows the syntax differences between the two frameworks, and the test scenario is to check if an element with the class name “App-logo” exists.// Cypressdescribe(‘Navigation and Element test’, () => {it(‘Finds the react logo’, () => {cy.visit(‘<http://localhost:3000>');cy.get(‘.App-logo’).should(“exist”);})})// Playwrightimport * as playwright from ‘playwright’;const browsertype = playwright.chromium;(async () => {const browser = await browsertype.launch();const page = await browser.newPage();await page.goto(‘<http://localhost:3000/>');const logo = await page.$(‘.App-logo’)if(!logo) throw new Error(“Cannot find logo”)await browser.close(); // Close browser again})();As previously mentioned Playwright has a syntax closer to Javascript, where you create instances of objects. The ability to create object instances allows us to run multiple tabs, browsers and user contexts at the same time. The example above shows how Playwright uses the async functionality to wait for a UI-element to appear before continuing the test, Cypress, however, solves a similar issue by automatically re-trying the assertions until it reaches the set timeout.One of the most significant benefits of Playwright is its ability to test across multiple pages and domains. Along with setting multiple user contexts. Both are very useful if you’re using third-party sign-ins, pop-ups, iframes (such as BankID in Norway) etc. in your application. Cypress, on the other hand, would require you to write separate tests to simulate the different user scenarios and would require you to stub a lot of the requests to work.To summarize:Playwright works on Webkit-browsers, Cypress does not.You can choose test-runner in PlaywrightPlaywright lets you test in several browsers at the same time.Playwright supports multi-tabs and frames.Cypress doesn’t run in headless mode by default, Playwright does.Playwright awaits UI-elements before running interactions, Cypress re-try assertions until timeout.Size and performanceWhen it comes to size and performance, it’s a bit of a mixed bag. Since Cypress has a built-in test runner, Jest has been added to the comparison, as it’s the most popular Javascript test runner, and needed to achieve similar functionality to Cypress in Playwright. Looking at the minified size, Cypress is technically smaller with it’s 1.6MB against the 2.85MB of Playwright + Jest, but where Playwright + Jest shine is when you look at the dependencies where Playwright + Jest has 14, compared to the 125(!) of Cypress.To test performance, a colleague and I wrote a test in both Playwright + Jest and Cypress. The test scenario covers the following steps:Go to sparebank1.noPress “Godta alle” button for the cookie pop-upFind postal code input and enter 3324Check if a button with the class “ffe-shortcut-button” and text “SpareBank 1 Modum” is visible.Click the button, and check if the page now is Sparebank 1 Modum.The results show that it’s only milliseconds separating the two in terms of speed. Cypress ran the test in 3 seconds, whilst Playwright slightly beat that by completing the test in 2.33 seconds. Essentially it means that both run the test fast, and whilst Playwright was somewhat quicker, it’s not that big of a difference that it should affect your choice of framework.What to pick?So which of these frameworks should you choose? The answer is it depends on how experienced you are with testing, and what functionality you find essential. If you’re new to testing and want a more plug-and-play approach that includes everything you need to get started, then Cypress is the best choice for you. It has good documentation and a broader community that makes it easier to get help and find answers to specific scenarios you find challenging.If you are more familiar with testing, need to test Webkit browsers or your tests need to cover scenarios spanning across multiple pages and domains, then Playwright is the choice for you. Playwright is also the right choice for you if you have fallen in love with a specific test runner or don’t need one at all. With the framework being reasonably new, we can also expect that the community, documentation and framework in general will continue to improve over time.Cypress:➕ Easy to understand documentation➕ A broader community and easier to find answers about specific issues➕ Easier to understand for people new to testing➕ You only have to read up on one framework as Cypress has everything included.➖ Doesn’t support multi-page and third-party implementations.➖ More extensive and with more dependencies➖ Generates several example files and folders➖ You have to re-run tests to run in another browser.Playwright:➕ Broader browser support➕ Fewer dependencies than Cypress➕ Supports multi-page and third-party implementations➕ Lets you choose your test runner.➕ Doesn’t generate any files.➕ You can run multiple browsers using the same test.➖ Documentation not as good➖ Newer and with a smaller communityPlaywright vs Cypress was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av HeleneKassandra

Det skal være lett å gjøre rett — del 3

Det skal være lett å gjøre rett — del 3I forrige artikkel i serien så vi på noen av verktøyene vi bruker til utvikling. Nå skal vi se mer på noe som er minst like viktig, nemlig å få koden ut i produksjon.Som vi vet fra blant annet Accelerate er en av tingene som skiller organisasjoner med høy og lav ytelse er hvor ofte kode rulles ut til produksjon. Hyppige produksjonssettinger fører til færre produksjonsfeil, kortere mean time to recovery (Tiden det tar fra en feil oppstår til den er fikset) og kortere ledetid fra commit til prodsetting.Men det er ikke nok å rulle ut kode til produksjon ofte, det må gjøres på en forutsigbar og trygg måte. Det må kunne gjøres med lave skuldre. Og som de fleste som har vært med på kvartalsvise eller halvårsreleaser som gjøres manuelt kan si: Det å prodsette sjeldent gjør veldig vondt.Det finnes mange artikler som sier noe om hvorfor store releaser gjør vondt, men i bunn og grunn handler det om at dersom du prodsetter mange endringer samtidig, så er sannsynligheten for at det er feil i en av de stor. Og da må hele leveransen rulles tilbake, prosjektledere og interessenter må informeres og du må jobbe overtid for å fikse det. Så må ny produksjonssetting planlegges og driftsressurser må bookes på nytt. Kanskje det til og med blir nattarbeid.Dersom endringssettet du prodsetter er mindre, så er det også mindre som må rulles tilbake, og konsekvensen blir lavere. I tillegg så blir mulighetsrommet for feil lavere. Det er færre endringer, og dermed færre mulige syndere som må sjekkes ut.Applikasjonsarkitektur og verktøy spiller sammenHvis du skal kunne levere kode hyppig, må du også ha en applikasjonsarkitektur som støtter opp under dette. Det finnes flere måter å angripe problemstillingen på, men det vanligste i dag er å dele opp i mindre tilstandsløse applikasjoner som tilsammen utgjør et system.Vi har valgt å basere våre containerbaserte applikasjoner på manifestet The Twelve-Factor App. Det er et manifest som er skrevet av folkene bak tjenesten Heroku. Manifestet beskriver 12 egenskaper de mener at moderne applikasjoner bør ha. Dette setter en del krav til applikasjonene vi deployer:Applikasjonene må være tilstandsløse. Det gjør at applikasjonene er lettere å forvalte og forstå, de blir enklere å skalere horisontalt og det gjør at de passer bedre inn i en verden hvor de kan bli revet ned og startet opp i løpet av sekunder.Hemmeligheter, som er typisk api-nøkler, sertifikater og passord, injiseres fra miljøet rundt. Vi har i tillegg valgt å gjøre løsningen for å legge inn hemmeligheter i en app selvbetjent, slik at om du er en DBA som har generert en databasebruker, legger du den selv inn i applikasjonen som skal ha hemmeligheten. Dermed slipper vi å sende hemmeligheter rundt på mer eller mindre kreative måter som sms, epost eller post-it lapper.DeploymentVi har opp gjennom årene hatt flere verktøy for deployment. Felles for disse er at de som regel har løst et spesifikt problem i et spesifikt miljø. Da vi skulle ha et verktøy til containerplattformen vår, ville vi ha et verktøy som kunne løse deployment i alle miljøer. Vi valgte til slutt å lage vårt eget deploymentverktøy, som var tilpasset våre prosesser og vårt miljø.Resultatet ble Shifter! Som noen sikkert vet er Shifter også en karakter fra Byggmester Bob, og han er ganske god på å flytte rundt på containere.Kilde: https://www.amazon.sg/Fisher-Price-Bob-Builder-Shifter-Vehicle/dp/B06XPYCSHVLitt av grunnen til at vi valgte å utvikle vårt eget deployment-verktøy var fordi vi ville tilpasse det til våre behov og våre verktøy. Blant annet så ønsket vi å kunne vise relevante metrics fra applikasjonen direkte i grensesnittet, slik at man enkelt kan følge med på hva som skjer når man prodsetter en endring.Her har du relevante metrikker for responstid, feilrater og ressursbruk.I tillegg til det grafiske grensesnittet har Shifter et restbasert API som kan benyttes fra jenkins og andre script for å bygge og deploye applikasjoner. Derfor har shifter blitt en viktig del av både utvikling og produksjonsetting hos oss, som hjelper oss å sove godt om natten.I del fire av denne serien skal vi skrive litt om hvordan vi organiserer oss for å kunne jobbe godt med kontinuerlig forbedring av verktøyene våre.Det skal være lett å gjøre rett — del 3 was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Ola Hast

Det skal være lett å gjøre rett — del 2

Det skal være lett å gjøre rett — del 2Vi har valgt å lage en rekke verktøy som gjør livene våre enklere. Disse hjelper oss med å sette opp utviklingsmiljø, deployment og andre vanlige arbeidsoppgaver. Som vi var inne på i første del av denne artikkelserien har vi sett at dette gir oss både fart, trygghet og god nattesøvn. Et skikkelig kinderegg! Men hvordan kom vi egentlig i gang?Alle må starte en plassDa vi startet vår reise som verktøymakere, hadde vi et likt utgangspunkt som veldig mange andre bedrifter: En nedlåst Windowsplattform med Office og IE forhåndsinstallert, men dessverre ikke så veldig mye mer. Og du hadde heller ikke rettigheter til å installere noe selv. Dette er et veldig rasjonelt utgangspunkt om man ikke skal drive med utvikling.Bare det å få satt JAVA_HOME var i seg selv en utfordring, siden maskinen både titt og ofte fikk miljøvariablene resatt av administrasjonsverktøyet. Hele prosessen med sette opp og vedlikeholde et fungerende utviklingsmiljø var en frustrerende affære, som også gjorde det veldig vanskelig å teste ut nye ting. Utviklere brukte ofte ukesverk på å få satt opp alt og på å bli produktive medarbeidere.Dette gjorde at vi ble kjent med våre to første venner: Virtualbox og Vagrant.Kilde: medium.com/@botdotcom/installing-virtualbox-and-vagrant-on-windows-10Kombinasjonen av Virtualbox og Vagrant ga oss muligheten til å scripte oppsettet av et virtuelt linux-miljø uten å måtte forlate windows-plattformen. Da tok det ikke lang tid før vårt første hjemmelagde verktøy, provision-dev ble født.Nå har vi forlatt windows helt til fordel for en utviklingsplattform som kjører Linux, men verktøyet provision-dev lever videre.Provision-devProvision-dev er et konfigurasjonsrepo som lar oss velge selv hva vi ønsker å installere på maskinene våre. Sett utenfra så inneholder provision-dev to script.Configure.sh lar deg velge hva du vil installere i utviklingsmiljøet. Det kan typisk være hvilken versjon av Intellij man ønsker. Videre kan man velge om man ønsker å installere verktøy for sikkerhetstesting, databaseverktøy, mobilutvikling osv.configure.sh brukes til å velge hvilke verktøy man ønsker å installere i sitt miljøNår man har valgt hva man ønsker i utviklingsmiljøet sitt så kjøres steg to av provision-dev, nemlig provision.sh.Provision.sh setter opp alt du trenger for å gå fra en nytanket laptop med linux til å ha et fullt fungerende utviklingsmiljø med et utvalg Java-versjoner, Maven, Node, IDE og kode-editorer. Samt en rekke ekstraverktøy som ikke alle nødvendigvis trenger. Men det er likevel viktig at spesialistene også slipper å bruke masse tid på å sette opp sine verktøy.Dette gjør at du i løpet av få timer fra du får utlevert en maskin, kan ha et ferdig oppsatt utviklingsmiljø. Og vi har som mål at alle nye utviklere skal gjøre sin første commit mot master i løpet av første dag.BobBob er også en viktig del av plattformen vår. Av en eller annen grunn så virker det som at utviklere er fascinert av Byggmester Bob og de andre karakterene i serien. Som regel ender det opp med at interne verktøy får sine navn derifra.Kilde: YoutubeVår Bob startet som en rekke script som ble brukt til å bygge nettbank-applikasjonene, derav navnet Byggmester Bob. Etterhvert samlet vi disse scriptene i et felles gitrepo, slik at vi enklere kunne holde de like på tvers av utviklermaskinene. Som en ekstra bonus så bruker vi provision-dev til å sette opp en cron-job som sørger for at Bob alltid er oppdatert med de siste forbedringene som er gjort.I løpet av de sju årene siden første commit, så har Bob fått mange flere ferdigheter. Vi bruker nå Bob til blant annet å håndtere lokalt utviklingsmiljø, deploye til OpenShift og sette opp byggejobber.Bob har flere funksjonsområderBob er et verktøy du bruker fra kommandolinjen. Kommandoene og strukturen er inspirert av git, og både autocomplete og dokumentasjon av kommandoene er tilgjengelige fra terminalen. Kommandoene er gruppert etter funksjonsområde slik at det er lett å bruke og finne fram. Det er viktig for at det skal bli brukt.Bob og provision-dev utgjør basisen blantverktøyene våre og er de vi bruker mest i hverdagen, men de er ikke alene.Generering av applikasjonerI SpareBank 1 Utvikling er vi nå i overkant av 20 team som jobber med å lage stadig bedre nettbanktjenester til kundene våre. Og for at de skal kunne gjøre det, så må de kunne jobbe uavhengig av hverandre. Samtidig så skal vi kjøre et stort antall applikasjoner i containere og da ønsker man at mye er løst standardisert måte.Et godt eksempel på dette er logging. God logging er viktig av mange årsaker, og en god kandidat for standardisering. Det gjør livet enklere både for deg som utvikler og andre som har behov for å se i loggene. Og hvis man bruker verktøy som ELK-stacken, Splunk eller Humio kan man lettere søke på tvers av applikasjoner og få et bedre oversiktsbilde over applikasjonene dine.For å sørge for at alle som skal lage en ny applikasjon hos oss har et likt utgangspunkt har vi tatt i bruk applikasjonsgeneratorer. Bruk av en slik generator kan bidra til å fjerne en del yak-shaving:Oppsett av loggingStandardisert konfigurasjonOppsett av maven-prosjekt og avhengigheterI tillegg så gjør dette det mulig for oss å sørge for at applikasjonene kommer med ønskede sikkerhetsmekanismer innebygd.Det finnes flere verktøy du kan bruke. Av de enkleste så har man create-react-app og Spring-initializr. Vi hadde bruk for å lage noe litt mer tilpasset til vårt miljø, så derfor valgte vi Yeoman.Yeoman er et kommandolinjeverktøy som gjør det enkelt å kjøre generatorer. Det er basert på Javascript og Node slik at det fungerer fint på de fleste maskinplattformer. Det finnes også et utall ferdiglagde generatorer som man kan ta i bruk, eller man kan gjøre som oss, og lage en som er tilpasset din organisasjon.Her er et eksempel fra awl-generatoren vår. AWL står for Alliansens weblag og er templatene vi bruker til å lage apier og andre applikasjoner som er eksponert mot internett. Her har du mulighet til å velge hva slags type applikasjon det er og så får du et utgangspunkt med riktig konfigurert sikkerhetsnivå og frontend-modul ved behov.FallgruveneVerken standardisering eller verktøy som Bob er uten fallgruver. Og de bør man være klar over.Bob er en abstraksjon på toppen av en rekke verktøy. Det positive med abstraksjonen er at man forenkler mange operasjoner som i utgangspunktet er komplekse. Da slipper man å sette seg inn i hvordan det fungerer under panseret og man får utført det du ønsker å oppnå. Baksiden med dette er at det ikke alltid er lett å forstå hva som skjer. Derfor kan verktøy bli brukt feil og det kan bli vanskelig for brukerne å feilsøke hva som gikk feil de gangene det ikke fungerer som forventet. Abstraksjonene bør derfor være på riktig nivå og heller kombineres i et byggescript.I tillegg så tror vi at det er viktig at verktøyene er åpne. Dersom noen lurer på hvordan det fungerer under panseret, må koden være lett tilgjengelig og det må også være mulig for alle å bidra i utviklingen. Dette er noe vi skal skrive mer om i en senere artikkel.I del tre av denne serien skal vi se mer på hva vi har gjort for å gjøre produksjonssetting raskere, tryggere og hvordan det også bidrar til god nattesøvn.Det skal være lett å gjøre rett — del 2 was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Ola Hast

Det skal være lett å gjøre rett

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?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.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 sinRespekt for folk — trua på at folk som får mulighetene og rammebetingelsene, alltid vil gjøre sitt besteDeming 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 onelinerenbob feature begin <featurenavn>bob feature begin og bob ci job openMed denne onelineren får viopprettet branchen med rett navnestandardopprettet byggejobben for branchensikret at vi får med oss en commithook slik at den automatisk bygger ved pushVil vi gå til jobben i Jenkins UIet, skriver vibob ci job openså 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.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 onelinerenbob openshift upVi 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.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 atapplikasjonene har rett konfigurerert sikkerhetat vi har kontroll på hvilke deler av den totale sikkerhet som håndteres av plattformen, og hva som håndteres av applikasjonene selvLike 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.Det skal være lett å gjøre rett was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Vidar Moe

Testavdelingen — Alive and Kicking eller Welcome to my nightmare?

Testavdelingen — Alive and Kicking eller Welcome to my nightmare?Er test på vei til å dø ut som egen profesjon? Kan vi i SpareBank 1 Utvikling legge ned testavdelingen, som flere andre innenfor bransjen har gjort? Vi jobber jo innenfor et regulert domene og må forholde oss til IKT-forskriften og pålegg og føringer fra Finanstilsynet. Er det et mareritt vi på test skal inn i eller er det en spennende reise vi skal på?Bilde: commons.wikimedia.orgFagmiljøet for test og kvalitet i SpareBank 1 Utvikling har endret seg mye de siste årene. Endringsreisen er langt fra over, og vi har gradvis entret ukjent farvann. Help, I need somebody med The Beatles beskriver kanskje en kjent følelse for flere innen testfaget nå om dagen? «Fail fast» er et uttrykk som vi på IT benytter. Vi tester ut hypoteser i raskt tempo, A/B-testing er normalen, og vi kan ta høyere risiko fordi vi oppdager våre egne feil raskt og retter dem så fort at kundekonsekvensen er ingen eller minimal.Men — hvis vi oppdager feilene våre så raskt at kundene ikke merker det, kan vi ikke bare kjøre all koden rett i produksjon og tenke som Gloria Gaynor: Samma det, I will survive?Welcome to my nightmare… Vi på test kjenner litt på en følelse som sikkert inspirerte David Bowie med flere til å skrive Under pressure. Hva skal vi gjøre nå som utviklerne skal automatisere alt selv? Er det virkelig slik at Bruce Springsteen hadde rett; My best was never good enough? Står vi på test igjen på stasjonen mens resten av IT-bransjen suser av gårde?Hvis du har lest boka Accelerate, stoppet du kanskje opp på avsnittet der det skrives at en av kjennetegnene til suksessfulle team er at det er utviklerne selv som skriver alle automatiske tester, inkludert akseptansetestene. Da er det virkelig Welcome to my nightmare for oss på test. Men er du glad i å lese og har litt utholdenhet (og samtidig litt optimistisk på vegne av test-profesjonen) så flyttet du blikket til neste avsnitt:«None of this means that we should get rid of testers. Testers serve an essential role in the software delivery lifecycle, performing manual testing such as exploratory, usability, and acceptance testing, and helping to create and evolve suites of automated tests by working alongside developers.» — Forsgren, Humble, KimVi har da også testere i nesten alle teamene, og det er ikke ofte vi innrømmer det, men vi blir nok litt lykkelige av å Break stuff. Og fortsatt er det sånn at når det brenner på do i noen av prosjektene vi fortsatt kjører, så kommer IT-direktøren og ber om en erfaren testleder. Da er det han som synger Help, I need somebody! Jeg har i en lang periode fått høre: «Vi trenger ikke flere testledere nå, Marianne» så det er nok fortsatt behov for å jobbe med å øke forståelsen for at det er nødvendig med erfarne testledere tidlig i prosjektfasene. Og samtidig biter vi oss i tunga og forsøker å ikke si som Keith Urban I told you so, når noen kommer og ber om hjelp.Konteksten avgjør Testerne og testlederne i SpareBank 1 Utvikling, som designerne og utviklerne våre, trives best i tverrfaglige team der vi sammen jobber mot forretningsmessige mål. Hadde SpareBank1 Utvikling vært en musikal så kunne tittelmelodien vært We are family og Sister sledge hadde vært husbandet. Samtidig har vi innsett at ikke alt lar seg løse i ett team og at også test i SpareBank 1 er avhengig av hva slags system det er man utvikler på eller mot.Også er vi jo veldig glad i API’er om dagen! Vi vil heller utvikle et API eller mot et API enn å forholde oss til gamle legacysystemer. Da kan vi bestemme farta selv. Gartner har en modell som kan brukes til å klassifisere systemene etter endringshastighet: Pacelayering. Den gir mye mening i en kontekstsbasert tilnærming til test. Samtidig må du ikke se deg blind på ulike «lag» i arkitekturen, fordi endringer skjer ofte i flere lag og systemer samtidig. Må teamet forholde seg til lange verdikjeder og gamle legacysystemer, som endrer seg sjelden — men mye — når de først gjør det, må de ha en annen testprosess enn et team som stort sett kan iterere på frontend-koden sin og basere videreutviklingen kun på tommel opp eller tommel ned fra kundene. Vi vil altså at det skal være fast and easy, i motsetning til hva Whitesnake prediker i Slow an’ easy. Slow hos oss i SpareBank 1 Utvikling betyr høy risiko og kompliserte releaser.Vi har kommet til den erkjennelsen at test og kvalitetssikring av software er kontektsbasert. Når vi blir spurt om hva er teststrategien i SpareBank 1 Utvikling så er svaret enten «det kommer an på»:Vis meg systemet ditt/forretningsmålene dine så skal jeg si deg hva strategien ereller kort oppsummert:Riktig kvalitet til rett tid.Tiden for å fokusere på å ha den beste testmetodikken beskrevet og dokumentert er forbi. Nå gjelder det å tenke at verden er dynamisk og vi dokumenterer det vi må. Vi har fokus på automatisering og det neste på lista er automatisert sikkerhetstest. Og med «infrastructure as code» og «pipeline as code» blir vi ikke arbeidsløse med det første. Testavdelingen er definitivt Alive and kicking!Kilder og inspirasjon:Accelerate — Nicole Forsgren, Jez Humble, Gene KimThoughtworks Technology Radar 2020Pace layering Application Strategy — GartnerLloyd RodenSoco TestradarTop ti software testing sangerNoen Twitter-folk det er verdt å følge:· Maaret Pyhäjärvi — @maaretp· Lisa Crispin — @lisacrispin· Michael Bolton — @michaelbolton· Ministry of testing — @ministryoftestFavorittspillelisten for testere på Spotify— Alive and Kicking:Testavdelingen — Alive and Kicking eller Welcome to my nightmare? was originally published in SpareBank 1 Utvikling on Medium, where people are continuing the conversation by highlighting and responding to this story....

Av Marianne Falkenås

SpareBank 1 Utvikling på Instagram@sparebank1design@sparebank1utvikler