Gemensamma principer ger förutsättningar för effektiv utveckling

Hanna Borjesson
Bonnier News Tech
Published in
4 min readSep 23, 2022

Genom att enas om några tekniska principer inom Bonnier News Tech skapar vi utrymme att diskutera och fokusera på hur man bäst stöttar de strategiska målen och bidrar till att öka affärsnyttan.

Tre ledord är grunden för våra tekniska principer och all utveckling i och kring de varumärken som möter våra läsare, lyssnare, besökare och tittare varje dag. Det handlar om vår tro på enkelhet, testbarhet och delbarhet. Här förklarar vi varför just dessa ord blivit så viktiga för vårt arbete med Bonnier News hundratals sajter, appar och alla tjänster runt dessa.

ENKELHET

Som utvecklare strävar vi alltid efter det enklast möjliga sättet att lösa ett problem. En enkel lösning är ofta en smart lösning och den bästa koden är alltid den som inte skrevs.

TESTBARHET

När vi säger testbarhet så betyder det att istället för att vi funderar på hur koden ska se ut så tänker vi “Hur uttrycker jag detta behov i ett test?”. Därför föredrar vi feature-tester som gärna testar hela stacken istället för enhetstester.

DELBARHET

Vi delar kod med varandra genom att kopiera istället för att dela privata paket — och delar vi ett paket så är det open source. Vi har sett att det leder till mindre komplexitet och högre kvalitét när vi tvingar oss till de krav som ett open source-paket kräver och att det också hjälper oss att avgöra vad som är värt att dela och inte.

Varför har vi bestämt oss för att formulera principer och regler?

– Det korta svaret är för att allt annat är dumt, säger Christoffer Söderberg skämtsamt, Christoffer är teknisk utvecklingschef på Bonnier News och personen bakom de tekniska principerna.

Det lite längre svaret är att verkligheten är föränderlig och en förutsättning för att ständigt kunna justera, anpassa och förbättra våra tjänster utan att knäckas av arbetsinsatser och kostnader är att vi arbetar i enlighet med gemensamma principer. Just nu är vi mitt uppe i en stor teknisk förflyttning, där allt fler gemensamma lösningar ersätter olika affärsområdens enskilda lösningar, i det arbetet är det nödvändigt med gemensamma tekniska principer att hålla sig till. I slutändan handlar allt vi gör om att skapa bästa möjliga förutsättningar för vår journalistik att nå ut till användarna. Det skapar vi utrymme att lägga vår energi på.

Ibland gör vi trots allt detta avsteg från principerna, men då måste det beslutet vara väl förankrat och baserat på mycket goda grunder. Det kan till exempel vara när det är unika tekniska förutsättningar som råder. Det kan också vara när personalmässiga förutsättningar under en övergångsperiod inte tillåter att vi följer principerna eller när ett system kommer att stängas ner inom ett år.

Våra tekniska principer

Vi föredrar att ha ett gemensamt programmeringsspråk (Javascript), framför att varje tjänst är skrivet i det språk som teamet tyckte var bäst där och då. Även när Javascript ibland inte är det absolut bästa för uppgiften.

Vi delar kod med varandra genom att kopiera istället för att dela privata paket — delar vi ett paket så är det open source.

Vi föredrar att använda oss av open source och vi bidrar gärna både till existerande Open Source-projekt såväl som publicerar våra egna. När vi använder open source säkerställer vi att det är publicerat under en licens som är kompatibel med propeteriär teknik.

Våra node-applikationer ser likadana ut för att enklare kunna dela kod och hjälpa varandra.

Vi har en gemensam standard för hur vi dokumenterar våra applikationer för att göra det enklare att dela information och hjälpa varandra.

Vi föredrar att arbeta testdrivet och fokuserar på helheten, så kallade feature-tester, framför manuell testning och test av mindre enheter.

Vi ansvarar för säkerheten i vår applikation och följer de best practices som vi gemensamt definierat med vårt säkerhetsteam.

Vi har själva driftansvar för vår applikation och vi praktiserar DevOps. Vi driftar dessa baserat på principerna Networkless och Zero trust i GCP och använder en gemensam miljö för loggning och monitorering.

Vad innebär det för den som jobbar på Bonnier News?

Våra ramar och strävan efter enkelhet ger en miljö där utvecklarna kan jobba tryggt och självständigt med goda förutsättningar att samarbeta inom organisationen.

– Det ska vara snabbt och enkelt för en utvecklare att komma igång och jobba självständigt och vara kreativ inom dessa ramar, men visst den tekniska friheten är mindre i och med att vi har formulerat tekniska principer att leva efter, säger Christoffer Söderberg.

Det väger alltså tungt för oss att det ska vara enkelt att vara utvecklare ur just den här aspekten att vara utvecklare på Bonnier News. En utvecklare i ett team ska till exempel smidigt kunna gå in och stötta andra team och det uppnår vi genom att ha en gemensam struktur som underlättar samarbete och minskar frågetecken. Med strukturen på plats frigör vi tid till fler diskussioner tillsammans om vad som ger bäst affärsvärde och hur vi säkerställer att vi når våra strategiska mål — att ännu fler ska ta del av ännu mer av vår kvalitetsjournalistik.

/Christoffer Soderberg & Hanna Borjesson

--

--