< Tilbake til bloggen

Cube 3.0 – en stegvis release

6. sep, 2019

Cube 3.0 – en stegvis release

av | sep 6, 2019 | Cube, Design, Team, Teknologi

Headshed Cube er en unik kombinasjon av CRM og salgsverktøy som gjør hverdagen enklere for selgere, salgsledere og bedriftene deres. Cube er i stadig utvikling (i likhet med bransjen), og kommer ofte med ny funksjonalitet. Dette er en av årsakene til at Cube er et godt valg for ditt salgsteam: Du får et fleksibelt system som er i kontinuerlig utvikling – akkurat som dere. 

Lederen for Cube sin videre programvareutvikling er Ellen Lippe. I ryggsekken har Ellen med seg en mastergrad i IT fra NTNU og 15 års erfaring som programvareutvikler i Statoil (nå Equinor). Ellens sterke kompetanse innen design, kodekvalitet og automatisert testing er noen av de tingene som sørger for at Cube tekniske kvalitet holder et høyt faglig nivå.

En av teknikkene Ellen Lippe har introdusert til utviklingsteamet i Headshed er hyppige releaser, altså slipp av ny kode ut i produksjon, og bruk av noe som kalles feature toggles. Vi har spurt Ellen om hva dette egentlig betyr, og hvordan dette påvirker brukerne av Cube.

Cube 3.0 er rett rundt hjørnet. Hvordan releaser man en så stor oppdatering ut i produksjon? 

“Denne endringen er jo et stort “røsk” i Cube, både brukeropplevelsen, og ikke minst all koden som ligger bak. Det er mye kode som skal skrives og endres, og det tar tid å bli helt ferdig. Det er mange ting som er viktige for å lykkes med en så stor release, så jeg vil trekke fram noen ting.”

“Fail fast” og automatisert testing

Det ene er noe som kalles “fail fast”. Det betyr at når vi skal gjøre en så stor endring, ønsker vi å gå på eventuelle smeller og showstoppere så fort som mulig. Det er dumt å programmere i ukesvis for så å støte borti noe som gjør at du må endre hele måten det er gjort på og starte på nytt. Derfor begynner vi alltid med det vanskeligste, der vi er mest usikre, og sørger for at om noe feiler, så skjer det ihvertfall tidlig i prosessen, og vi kan endre retning om vi må. 

En annen ting vi er helt avhengige av for å i det hele tatt å kunne gjøre en så stor endring, er automatisert testing. Det betyr at nesten all funksjonalitet i Cube testes automatisk hver gang vi gjør endringer i koden. Det å skrive slike tester er noe vi jobber med hele tiden. Likevel er det ikke til å unngå at det kan oppstå feil når så mye kode endres. Det er en av grunnene til at vi releaser stegvis.

 

Hva er fordelen med å release stegvis?

Det er flere grunner til at det er nyttig for oss å legge ut kode underveis, i stedet for å vente til slutt når vi er helt ferdige. For det første er det mye enklere for oss å finne årsaken om det har sneket seg inn en feil, og vi kan derfor også rette den opp igjen relativt raskt. For det andre gir det oss muligheten til å ta en pause i den store oppgraderinga, og komme med nye features underveis, noe vi også kommer til å gjøre denne gangen. Sist, men absolutt ikke minst, er det enklere for brukerne våre å komme med tilbakemeldinger underveis. På den måten kan vi justere det vi gjør, og dermed bli tryggere på at det vi lager blir bra for sluttbrukerne.

Hvor er brukerne i en slik prosess?

Ja, vi vil selvfølgelig ta hensyn til brukerne og kundene våre! Heldigvis er de framoverlente og innovative, som det heter. De er nysgjerrige og oppfinnsomme og opptatt av å hele tiden gjøre salg på en bedre måte. Så det å gjøre endringer i Cube sammen med de, er en spennende og lærerik opplevelse for oss. Men det er klart at det er en stor endring for de også, med mange oppdateringer på kort tid. Vi forsøker så godt vi kan å ha en god dialog med de underveis, for å fortelle hva som kommer og hvordan de kan nyttiggjøre seg dette. Dette gjelder uansett om det er små eller store releaser vi kommer med. For store releaser som dette, bruker vi også feature toggles for å spare brukerne våre for hyppige endringer i brukeropplevelsen selv om koden releases ofte.

Hva er “feature toggles”?

Feature toggles er en form for brytere som slår funksjonalitet av og på. Når vi skal lage en ny stor feature i Cube, starter vi ofte med å lage en slik bryter, og det første vi gjør er å slå den av. Dermed kan vi release kode selv om featuren ikke er ferdig. Vi kan likevel slå den på i et testmiljø, slik at brukerne får mulighet til å se hvordan det ser ut underveis og kan gi oss nyttige tilbakemeldinger. Når featuren er ferdig, har vi mulighet til å slå den på til ulik tid for ulike kunder. På den måten kan kundene selv bestemme når de føler seg klar til å ta imot den nye funksjonaliteten.

Hvordan ser releaseplanen ut for Cube 3.0 akkurat nå?

Cube 3.0 er altså en forenkling av datastruktur og konfigurasjon for kampanjer. Du kan lese mer om det her. Vi har allerede gjort noen del-releaser, og kommer til å fortsette med det omtrent en gang i uka. Planen er altså å fase ut det som kalles “assignment” i Cube, og å introdusere segment på kampanjenivå. Vi startet med å samle all konfigurasjon på kampanjenivå, og dette er allerede produksjonssatt. 

Det neste som kommer er muligheten for sanntids segmentering. Dette regner vi med vil være klart i starten av september. Vi vil bruke feature toggle, og slå det på for de kundene som ønsker det. De kan da begynne å dele opp kampanjene sine i segmenter, basert på f.eks geografi, alder eller helt andre selvvalgte kriterier. Man kan starte og pause segmenter ut i fra når det er lurt å ringe, og de som bruker time tracking, kan også måle performance i de ulike segmentene.

I september vil vi ta en liten pause i Cube 3.0 for å levere en del annen ønsket funksjonalitet, som flere muligheter rundt innkommende sms, bedre kampanjebudsjetter, og enklere skreddersøm av rapporter.  

Deretter fortsetter vi Cube 3.0-arbeidet, og i løpet av oktober/november vil assignment gradvis fases ut. Først vil vi samle all kundesettene på klient-nivå. På dette tidspunktet vil assignment fortsatt finnes som rapporteringsnivå, men vi vil bruke en feature toggle som gjør at vi kan slå av assignment for de kundene som ikke lenger har bruk for det. 

Det neste blir å slå sammen alle B2B-datasettene og alle B2C-datasettene innenfor en klient. Man ender da altså opp med kun 2 datasett pr klient. I samarbeid med kundene våre vil vi da etterhvert slå av assignment helt.

I løpet av november regner vi med at Cube 3.0 er helt ferdig og klar til bruk for alle våre eksisterende og nye kunder. Med det åpner nye muligheter seg, som f.eks leveranse av B2B-prospekter direkte inn i løsningen, etc. Vi håper og tror dette er noe som vil gjøre det både enklere og mer fleksibelt å drive med salg på en god måte!

Vi er heldige i Headshed som har Ellen Lippe på teamet. Den tekniske kompetansen er helt klart uvurderlig, men det beste av alt: Ellen er en strålende kollega og et har et hjerte som banker for Headshed og Headsheds kunder. Bra for salget, bra for folk!