Ingenjörsvetenskapliga principer: att omsätta våra värderingar i praktiken

Katrina Gnatek
Katrina Gnatek

Follow

30 jul, 2020 – 4 min read

VP of Engineering, Ilya Kozlov, delar logiken och värdet bakom våra tekniska principer. Få en inblick i hur dessa principer hjälper våra ingenjörer att växa och ta ansvar för sin leverans.

På Taxfix börjar allting med våra värderingar: Leverera, lita på, utveckla och förstå. Alla, oavsett vilken roll de har i företaget, har en gemensam förståelse för dessa värderingar. Tekniska principer förverkligar våra värderingar i konkreta koncept och vägleder alla på ett rättvist och strukturerat sätt. Målet är att göra vårt team så självständigt som möjligt – när det gäller upptäckt, beslutsfattande, leverans och tillväxt.

Principerna är en färdplan för nyanställda som snabbt ska sätta sig in i hur vi gör saker och ting här. De ger en spelbok för åtgärder och hur man närmar sig nya utmaningar. Om till exempel två olika personer ställs inför samma problem i ett liknande sammanhang kommer deras lösningar att vara ungefär likadana eftersom de har styrts av samma riktlinjer. Våra principer fungerar också som ett riktmärke för feedback och utveckling. Bakom varje princip finns en uppsättning förväntningar på våra ingenjörers beteende, vilket ger vägledning för självförbättring.

Här är ett förenklat sätt att se på det här konceptet

Hur gick vi till väga för att utforma de här principerna?

Och även om värderingar är en integrerad del av det dagliga livet, var det inte alltid klart hur de skulle omsättas i praktiken. Våra ingenjörer ville ha mer specifika exempel på hur man lever dessa värderingar i praktiken.

Vi insåg att vi behövde en teknisk spelbok som detaljerade exakt vad vi värderade och vad vi förväntade oss av teamet. Vi samlades för ett första brainstormingmöte – Juan Ramirez, vår teknikchef i Madrid, Alex De Leon, vår teknikchef, och jag själv. Tillsammans identifierade vi några nyckelområden att arbeta med, men upptäckte snabbt att vår bild inte var fullständig. Vi behövde höra alla röster i den tekniska organisationen.

I en serie workshops under de kommande månaderna diskuterade vi idéer, utmanade varandra och hämtade referenser från några av marknadens ledande tekniska kulturer. Resultatet blev en struktur med åtta värdedrivna tekniska principer som stöds av exempel på bästa praxis.

Vad innebär tekniska principer i praktiken?

Här är en glimt av några av våra tekniska principer:

Leverera

Under värdet Leverera har vi en princip om intern öppen källkod. Detta innebär att vem som helst kan bidra till en applikation eller tjänst, även känt som svagt kodägarskap. Internal Open Source hjälper oss att leverera eftersom när kodbasen delas har man i praktiken inga beroenden.

En stor fråga som många företag kämpar med är beroenden. Om ett team vill leverera en ny funktion måste de ofta bygga något i sin egen tjänst och sedan ta kontakt med ett annat team och vänta på att alla delar ska komma samman. Vanligtvis blir det här problemet mer komplicerat ju större du är som företag. Du är i princip blockerad av beroenden. Här arbetar vi i tvärfunktionella team och vi använder ett språk nästan överallt, JavaScript. Detta gör det möjligt för vem som helst att gå till en specifik tjänst i företaget och göra en ändring där. Man behöver inte vänta – man kan genomföra det själv.

Trust

Under vårt värde Trust har vi principen We are One Team. Det innebär att vi optimerar för teamets och organisationens resultat, inte för den enskilda individen. En individ kan säkert uppnå det resultat de är ute efter, men till vilket pris för resten av organisationen? Om man bara har sitt eget mål i åtanke kommer hela företaget inte att vara effektivt. Så vi försöker hitta sätt att uppnå bättre resultat genom att använda en kombination av expertis, bakgrunder och perspektiv. Det finns inga ”enmansjobb”, bara samarbeten.

Utveckla

Inom vår värdegrund Utveckla har vi inkluderat principen Vi lär av varandra. Förutom vanliga inlärningsinitiativ, som att delta i meetups och besöka konferenser, vill vi uppmuntra kunskapsdelning mellan teammedlemmar. Vad vi försöker uppnå här är att matcha olika kompetenser inom våra team. Om det till exempel finns en front-end-ingenjör som vill övergå till fullstack, så matchar vi honom eller henne med en back-end-ingenjör. Vi parar ihop dessa två så att de kan växa som team och som individer genom att driva nya projekt utanför deras typiska expertis.

Understand

Det sista exemplet jag vill ge rör vårt värde Understand – Create and Share Context. Den här principen sträcker sig längre än bara till dokumentation; den är dubbelriktad. Vi förväntar oss att vårt team ska skapa sammanhang för andra. Utöver detta bör de vara proaktiva när det gäller att läsa och smälta den kontext de får. När det gäller till exempel pull requests vet folk inte alltid din kontext eller vad du försöker uppnå i ditt team. Om du samarbetar och försöker ändra någon annans arkiv måste du ge så mycket sammanhang som möjligt. Du måste förklara din avsikt, eventuella kompromisser som du har gjort, en tidslinje och hur den här ändringen hänger ihop med större förändringar längre fram. Vi tror inte på rätt eller fel beslut. Vi tror bara på beslut som fattas i rätt sammanhang eller som saknar sammanhang.

Leave a Reply