Sånn får de Strim til å funke overalt: – UX jobber like mye backend som frontend

Strim leverer 200.000 filmer og serier på en haug ulike enheter. Løsningen ligger i backenden.

Noen av utviklerne i ett av teamene som jobber med utvikling av Strim-tjenesten. Bak fra venstre; Carl Markus Malde, Marek Szala, Bjørn Tveter, Gry A. Fjeldstad, Maria Hoftun Gjestad. Foran fra venstre; Aslak Sødal, Adam Andersson, Niclas Amundsen, Emilie Martin, Mahmoud Ibrahim Mohammed, Morten Friesgård. 📸: Kurt Lekanger
Noen av utviklerne i ett av teamene som jobber med utvikling av Strim-tjenesten. Bak fra venstre; Carl Markus Malde, Marek Szala, Bjørn Tveter, Gry A. Fjeldstad, Maria Hoftun Gjestad. Foran fra venstre; Aslak Sødal, Adam Andersson, Niclas Amundsen, Emilie Martin, Mahmoud Ibrahim Mohammed, Morten Friesgård. 📸: Kurt Lekanger Vis mer

Mange forbinder kanskje RiksTV mest med selskapet som leverer lineær-TV gjennom det digitale bakkenettet, men mye har skjedd de siste årene. Den tradisjonelle RiksTV-boksen du bruker med antenne eksisterer riktignok fortsatt, i tillegg til at RiksTV har en egenutviklet strømmeboks som kan brukes via internett.

Det er dog ikke TV-bokser, men Strim, som er det store satsningsområdet nå. Dette er en strømmetjeneste som kan brukes på alle mulige enheter – enten det er en PC, Apple TV, smart-TV, iPhone, nettbrett eller en Android-enhet.

Og satsningen har vært vellykket: På den siste EPSI-kundetilfredshet-undersøkelsen gikk Strim rett til topps – etter at Altibox hadde ligget på topp i mange år.

Vi besøkte utviklerne til RiksTV i lokalene deres på Økern i Oslo for å finne ut hvordan de lager Strim .

RiksTV og Strim holder til i disse lokalene på en høyde overfor Økern i Oslo. 📸: Kurt Lekanger
RiksTV og Strim holder til i disse lokalene på en høyde overfor Økern i Oslo. 📸: Kurt Lekanger Vis mer

Fra salg til teknologi

Mens RiksTV tradisjonelt var et selskap som drev med salg og markedsføring av TV-tjenestene sine, er det nå utviklerne og teknologifolkene som dominerer. Av de rundt 130 som jobber i RiksTV er det rundt 30 konsulenter, og de aller fleste i RiksTV jobber nå med teknologi.

– Vi har blitt en teknologibedrift. Rundt 70 prosent av de ansatte jobber i tek-delen av selskapet, som inkluderer utviklere, UX-design og ledere, sier Gry A. Fjeldstad, smidig-coach i RiksTV med blant annet ansvar for ett av teamene som jobber med Strim.

«Vi har fullt fleksikontor, man kan jobbe fra hvor man vil.»

Hun forteller at de har delt opp i tverrfaglige utviklingsteam, i tillegg til at de også har egne fagteam – for eksempel for Android og iOS. Alle teamene har en smidigcoach og en produkteier som hjelper teamene.

– Vi har fullt fleksikontor, man kan jobbe fra hvor man vil. Men selv om vårt team har folk både i Bergen, Kristiansand og Danmark, og mange er hjemme, er folk stort sett på kontoret to-tre dager i uken, sier Fjeldstad.

Selv om utviklerne står fritt til å jobbe fra hvor de vil, pleier de fleste å ta turen innom kontoret 2-3 dager i uken. 📸: Kurt Lekanger
Selv om utviklerne står fritt til å jobbe fra hvor de vil, pleier de fleste å ta turen innom kontoret 2-3 dager i uken. 📸: Kurt Lekanger Vis mer

Teamet bruker målstyringsverktøy og planlegger for perioder. Fjeldstad forteller at organisasjonen har en flat struktur der hele teamet blir involvert i hva RiksTV skal gjøre i neste periode.

– Vi jobber etter smidige arbeidsprinsipper, men er ikke fan av én bestemt metodikk som for eksempel Scrum og Kanban. Teamet utvikler arbeidsprosessene etter behov.

📸: Kurt Lekanger
📸: Kurt Lekanger Vis mer

Fjeldstad er imidlertid klar på at du ha retrospektiv for å få til kontinuerlig læring. Men bortsett fra det står teamene fritt til å jobbe slik det fungerer best. Det er også fullt akseptert å ikke delta på møter man selv mener man ikke trenger å være med i.

Smidig-tankegangen innebærer at RiksTV leverer små oppdateringer til kundene ofte for å teste om brukerne liker det eller ikke.

– Vi releaser til produksjon mange ganger om dagen, sier Fjeldstad.

Raskere å finne noe å se på

Strim er langt fra alene i strømmemarkedet, og møter konkurranse fra løsninger som Viaplay og TV 2 Play. I tillegg prøver selskaper som for eksempel Telenors T-We, Telia og Altibox å samle både lineære TV-kanaler og ulike strømmetjenester som HBO, Netflix, Viaplay og TV 2 Play i sine egne tjenester.

Fra sommeren 2021 ble Strim heleid av TV 2, og ettersom TV2 har sin TV 2 Play-tjeneste blir de i praksis både en konkurrent og en samarbeidspartner for Strim.

– Hva er det egentlig som gjør at Strim skiller seg ut i jungelen av tjenester?

– Mange bruker mer tid på å finne innholdet, enn å faktisk se det. Det er det vi skal hjelpe dem med, sier Fjeldstad.

Slik ser Strim-tjenesten ut. 📸: Strim
Slik ser Strim-tjenesten ut. 📸: Strim Vis mer

I motsetning til en strømmetjeneste som for eksempel Netflix, samler Strim innhold fra veldig mange. Det betyr at én TV-serie eller film kan ligge mange ulike steder, for eksempel både i Netflix eller HBO og i ukesarkivet til én eller flere lineære TV-kanaler.

Det gjør det svært krevende å bygge en tjeneste det er lett å finne frem i, men teamet mener likevel de har klart det.

«Mens Netflix har under 20.000 titler, har vi mer enn 200.000 vi må samle metadata fra.»

– Mens Netflix har under 20.000 titler, har vi mer enn 200.000 vi må samle metadata fra. Dermed er det ganske komplekst å kunne vise dette til kundene på en god måte, sier Niclas Amundsen, produkteier i Strim.

Utviklerne sitter i åpent landskap, men det er mange soner rundtom i lokalet det er mulig å trekke seg tilbake til om man trenger arbeidsro. 📸: Kurt Lekanger
Utviklerne sitter i åpent landskap, men det er mange soner rundtom i lokalet det er mulig å trekke seg tilbake til om man trenger arbeidsro. 📸: Kurt Lekanger Vis mer

Maria Hoftun Gjestad er UX-designer i RiksTV, og forteller at hun og teamet bruker mye tid på å finne den beste måten å presentere innholdet for brukerne på.

– Når vi har det samme innholdet fra flere leverandører, viser vi dette som ett kort, i stedet for flere kort ved siden av hverandre. Først når du går inn på et kort for en serie eller film, kan du se de ulike tilbyderne, sier Gjestad.

Vises i den beste rekkefølgen

De ulike tilbyderne av en film eller TV-serie vises i den rekkefølgen Strim mener gir mest nytte for kunden. Hvis for eksempel Viaplay har én sesong mer av en serie enn andre, vises Viaplay først.

Lekent: RiksTV og Strim er opptatt av at de ansatte skal trives på jobb, og det er mange sosiale soner og muligheter til å koble ut hodet litt når det trengs. 📸: Kurt Lekanger
Lekent: RiksTV og Strim er opptatt av at de ansatte skal trives på jobb, og det er mange sosiale soner og muligheter til å koble ut hodet litt når det trengs. 📸: Kurt Lekanger Vis mer

– Det er også en viss grad av personalisering, slik at hvis du har begynt å se en serie hos én bestemt tilbyder, så er det det som vises først, sier Amundsen.

Siden RiksTV også er en TV-leverandør, kan innhold fra de lineære TV-kanalene de tilbyr (og ukesarkiv) spilles av direkte i Strim.

I "lekerommet" har det også blitt plass til shuffleboard. 📸: Kurt Lekanger
I "lekerommet" har det også blitt plass til shuffleboard. 📸: Kurt Lekanger Vis mer

Ligger innholdet hos en tredjepart, for eksempel HBO eller TV 2 Play, åpnes avspilling i strømmeleverandørens egen avspillingsapp. Dette er markert i appen, slik at det skal være intuitivt.

– Alle lineærkanalene avspilles på vår plattform, og også Nordisk Film+ og SkyShowtime, sier Amundsen.

Native-apper som gjelder

Strim-appen skal finnes på alle de mest vanlige enhetene som kundene bruker, enten de ønsker å se innholdet via en app på smart-TV-en, på Apple TV, mobiltelefon, nettbrett, PC eller Chromecast. Men for Strim er det kun native apper som gjelder.

– Vi har prøvd kryssplattform-apper, men det ga bedre ytelse og var lettere å vedlikeholde native-apper, sier Niclas Amundsen.

«For å kunne gi brukerne den opplevelsen de fortjener, er det kun native utvikling som gjelder.»

Som eksempel nevner han at de i sin tid prøvde React Native, men at dette fungerte altfor dårlig på iOS og at appen derfor aldri ble gitt ut.

– På Android opplevde vi for mange feil, og appen var også altfor tung på svake mobiler. Da byttet vi til Kotlin, sier Amundsen.

En av flere sosiale soner. Du finner alltid ett eller annet i kjøleskapet hvis du skulle bli småsulten utpå ettermiddagen. 📸: Kurt Lekanger
En av flere sosiale soner. Du finner alltid ett eller annet i kjøleskapet hvis du skulle bli småsulten utpå ettermiddagen. 📸: Kurt Lekanger Vis mer

iOS-utvikler Jørgen Syvertsen legger til:

– For å kunne gi brukerne den opplevelsen de fortjener, er det kun native utvikling som gjelder. Det er det som virker. Vi har så høye krav til brukeropplevelse og ytelse at vi er nødt til å gå den veien, sier Syvertsen.

Amundsen tror hybrid-apper kan fungere der man trenger en enkel applikasjon, men når det er snakk om for eksempel video og der appen må være lynrask også på svake enheter, er native-apper det beste.

Fra kantinen. Trappen fører opp til en takterrasse. 📸: Kurt Lekanger
Fra kantinen. Trappen fører opp til en takterrasse. 📸: Kurt Lekanger Vis mer

Teknologistacken til Strim på frontend er oppsummert:

  • Kotlin for Android-apper
  • Swift for iOS (iPhone, iPad, Apple TV)
  • Tizen-app lages i React (utviklingen av denne er outsourcet)
  • React-app med Vite som byggeverktøy for nettleserversjonen

Strim bruker også Next.js og Sanity til å lage selve "salgssiden" som kommer opp når noen taster inn strim.no – altså før man starter opp selve strømmetjenesten.

Unngår dobbeltarbeid

Native-apper betyr naturlig nok mange kodebaser å vedlikeholde, og at man må ha utviklere med spesialkompetanse innenfor hvert økosystem. Utviklingsteamet har prøvd å tenke smart for at ikke utviklerne på de ulike plattformene skal måttet gjøre en masse dobbeltarbeid.

– Vi lager et deskeverktøy som konfigurerer hvordan appene skal presentere innholdet, slik at man slipper å lage det samme for hver plattform, sier Amundsen.

Dette leveres så ut via API-er som de ulike appene konsumerer.

Utviklerne samler seg ofte foran en TV for å diskutere ny funksjonalitet i appen. 📸: Kurt Lekanger
Utviklerne samler seg ofte foran en TV for å diskutere ny funksjonalitet i appen. 📸: Kurt Lekanger Vis mer

– Et eget team vi kaller "deske-teamet" sitter og kuraterer innhold og setter opp ting som skal gå automatisk. Vi har for eksempel maskinlæring og AI som kan levere "fordi du så på, så liker du kanskje...", og lignende funksjonalitet.

Hva som fungerer og ikke fungerer, testes nøye – og det er ikke uvanlig at utviklerne samles foran en av de mange TV-ene i lokalene for å diskutere.

«Det hender utviklerne river seg i håret når brukerne ikke gjør det de hadde sett for seg at de skulle gjøre.»

I tillegg er ett av rommene innredet som en stue der RiksTV inviterer inn tilfeldige brukere som får lov til å leke seg med ny funksjonalitet, samtidig som utviklerne følger med fra et annet rom.

RiksTV har en egen "stue" der de tester ut ny funksjonalitet i Strim-appen på tilfeldige brukere, mens utviklere følger med fra et annet rom. 📸: Kurt Lekanger
RiksTV har en egen "stue" der de tester ut ny funksjonalitet i Strim-appen på tilfeldige brukere, mens utviklere følger med fra et annet rom. 📸: Kurt Lekanger Vis mer

– Slik testing på virkelige brukere er nyttig. Det hender utviklerne river seg i håret når brukerne ikke gjør det de hadde sett for seg at de skulle gjøre, sier Fjeldstad.

Styrer mest mulig fra backend

Hele backenden til Strim – altså alt som har med API-er å gjøre – kjører i Kubernetes-clustere hos Amazon, og er baserert på C# og .Net.

Lagring og avspilling av innholdet RiksTV selv håndterer går via en tredjepart, NEP, som holder til i samme lokaler som RiksTV. De håndterer lagring "on prem" av filmer og serier, og strømmer innholdet ut til RiksTV-kundene og Strim-appene via CDN-er.

For å redusere arbeidet med de ulike native-appene har Strim valgt å la mer og mer av det som vises i appene (frontend) styres fra backend.

Det betyr at mens man tidligere måtte kompilere en ny versjon av en app når det var endringer, kan endringene nå gjøres fra backend.

Alle møterommene er innredet i ulike stiler, og det er lagt vekt på at det skal være "hjemmekoselig". 📸: Kurt Lekanger
Alle møterommene er innredet i ulike stiler, og det er lagt vekt på at det skal være "hjemmekoselig". 📸: Kurt Lekanger Vis mer

– Det som er litt spesielt hos oss, er at UX jobber like mye med backend som med frontend. Det skal være likt på alle flater, og vi har mange flater. Da har vi prøvd å finne ut hvordan vi kan få mye av grensesnittet ferdigmassert fra backend. Så er det tynne klienter som bare tegner det ut, sier backendutvikler Bjørn Tveter.

Det er nyttig at utviklere for ulike plattformer, og for både backend og frontend, jobber sammen, mener UX-designer Maria Hoftun Gjestad.

– Jeg synes det er veldig verdifullt å få inn mange perspektiver, og at alle er med på å diskutere hvordan noe skal løses, sier Gjestad.

TV-er er viktig i RiksTV, og i tillegg til en storskjerm i kantinen finner du også en masse mindre TV-er rundt omkring i lokalene. Her fra kantinen. 📸: Kurt Lekanger
TV-er er viktig i RiksTV, og i tillegg til en storskjerm i kantinen finner du også en masse mindre TV-er rundt omkring i lokalene. Her fra kantinen. 📸: Kurt Lekanger Vis mer

Design gjøres i Figma, og Strim har laget et komponentbibliotek/designsystem for mobil og TV og de ulike flatene.

I tillegg har de også et system som beskriver hvordan alle de ulike delene av appene skal se ut, hvilke begreper som skal brukes, detaljer som hvordan tidsangivelser skal vises i en app, og til og med hvordan farger, variabelnavn og andre ting skal navngis og defineres.

Ved å standardisere på denne måten skal det bli raskere og enklere for nye utviklere å komme inn på teamet.

Kaffe-fokus

Gry Fjeldstad forteller at RiksTV og Strim har prøvd å gjøre mye for at både utviklere og andre ansatte skal trives. Det er freshe møterom som alle er innredet i ulike stiler, og det er en masse forskjellige sosiale møtearenaer.

– Også er mange av utviklerne veldig opptatt av god kaffe, så derfor har vi både vanlige kaffeautomater, kaffetraktere og Nespresso-maskiner, sier Fjeldstad.

En av flere forskjellige kaffemaskiner. 📸: Kurt Lekanger
En av flere forskjellige kaffemaskiner. 📸: Kurt Lekanger Vis mer

Hun sier de likevel merker at det er stor rift om de dyktigste utviklerne i IT-bransjen, og til tider kan det være vanskelig å få tak i folk.

– Det går litt i bølgedaler. Men vi prøver å snakke om måten vi jobber på, at du som utvikler hos oss blir involvert i hele prosessen, og at vi har en flat struktur der alle ansatte er med på å bestemme hva vi skal gjøre.