Ingeniørmæssige principper: at omsætte vores værdier i praksis

Katrina Gnatek
Katrina Gnatek

Follow

30. jul, 2020 – 4 min read

VP of Engineering, Ilya Kozlov, deler logikken og værdien bag vores tekniske principper. Få et indblik i, hvordan disse principper hjælper vores ingeniører med at vokse og tage ejerskab for deres leverancer.

Hos Taxfix starter alting med vores værdier: Deliver, Trust, Develop og Understand. Alle, uanset hvilken rolle de spiller i virksomheden, har en fælles forståelse af disse værdier. Tekniske principper realiserer vores værdier i konkrete koncepter og vejleder alle på en fair og struktureret måde. Målet er at gøre vores team så selvstændigt som muligt – i forbindelse med opdagelse, beslutningstagning, levering og vækst.

Principper er en køreplan for nye medarbejdere, så de hurtigt kan sætte sig ind i, hvordan vi gør tingene her. De giver en drejebog for handlinger, og hvordan man griber nye udfordringer an. Hvis to forskellige personer f.eks. står over for det samme problem i en lignende kontekst, vil deres løsninger være nogenlunde ens, fordi de er blevet ledet af de samme retningslinjer. Vores principper fungerer også som et benchmark for feedback og udvikling. Bag hvert princip ligger der et sæt forventninger til vores ingeniørers adfærd, som giver retning for selvforbedring.

Her er en forenklet måde at se på dette koncept på

Hvordan gik vi til værks for at udforme disse principper?

Selv om værdier er en integreret del af det daglige liv, var det ikke altid klart, hvordan de skulle omsættes i praksis. Vores ingeniører ønskede mere specifikke eksempler på, hvordan de kunne leve disse værdier i praksis.

Vi indså, at vi havde brug for en teknisk drejebog, der detaljeret beskrev præcis, hvad vi satte pris på, og hvad vi forventede af teamet. Vi mødtes til en første brainstorming-session – Juan Ramirez, vores engineering manager i Madrid, Alex De Leon, vores CTO, og jeg selv. Sammen identificerede vi nogle få nøgleområder, som vi skulle arbejde på, men vi opdagede hurtigt, at vores overblik ikke var komplet. Vi havde brug for at høre alle stemmer i den tekniske organisation.

Igennem en række workshops i løbet af de næste par måneder diskuterede vi idéer, udfordrede hinanden og hentede referencer fra nogle af markedets førende tekniske kulturer. Resultatet blev en struktur med otte værdidrevne engineering-principper understøttet af eksempler på bedste praksis.

Hvad betyder engineering-principper i praksis?

Her er et glimt af nogle af vores engineering-principper:

Levere

Under værdien Levere har vi et princip om intern åben kildekode. Det betyder, at alle kan bidrage til enhver applikation eller tjeneste, også kendt som svagt kodeejerskab. Intern Open Source hjælper os med at levere, for når kodebasen er delt, har man effektivt ingen afhængigheder.

Et stort problem, som mange virksomheder kæmper med, er afhængighed. Hvis et team ønsker at levere en ny funktion, skal de ofte bygge noget i deres egen tjeneste og derefter henvende sig til et andet team og vente på, at alle brikkerne bliver samlet. Normalt bliver dette problem mere kompliceret, jo større du er som virksomhed, jo mere kompliceret bliver dette problem. Du er i bund og grund blokeret af afhængigheder. Her kører vi i tværfaglige teams, og vi bruger ét sprog næsten overalt, nemlig JavaScript. Det gør det muligt for enhver at gå til en bestemt tjeneste i virksomheden og foretage en ændring der. Der er ingen grund til at vente – man kan selv implementere det.

Trust

Under vores Trust-værdi har vi princippet om We are One Team. Det betyder, at vi optimerer for teamets og organisationens resultat, ikke for den enkelte. En enkeltperson kan helt sikkert opnå det resultat, de er ude efter, men på hvilken bekostning for resten af organisationen? Hvis man kun har sit eget mål for øje, vil hele virksomheden ikke være effektiv. Så vi forsøger at finde måder at opnå bedre resultater på ved at bruge en kombination af ekspertise, baggrunde og perspektiver. Der findes ingen “enmandsjobs”, kun samarbejder.

Udvikle

I vores værdiudvikling har vi inkluderet princippet om, at vi lærer af hinanden. Ud over standard læringsinitiativer, som at deltage i meetups og besøge konferencer, ønsker vi at tilskynde til videndeling mellem teammedlemmer. Det, vi forsøger at opnå her, er at matche forskellige kompetencer inden for vores teams. Hvis der f.eks. er en front-end ingeniør, som ønsker at gå over til full-stack, så matcher vi ham/hende med en back-end ingeniør. Vi parrer disse to sammen, så de kan vokse som team og som individer ved at drive nye projekter uden for deres typiske ekspertise.

Understand

Det sidste eksempel, jeg gerne vil give, relaterer til vores Understand-værdi – Create and Share Context. Dette princip går ud over blot dokumentation; det er en tovejs-vej. Vi forventer, at vores team skaber kontekst for andre. Derudover bør de være proaktive med hensyn til at læse og fordøje den kontekst, de modtager. Når det f.eks. gælder pull requests, kender folk ikke altid din kontekst, eller hvad du forsøger at opnå i dit team. Hvis du samarbejder og forsøger at ændre en andens repository, er du nødt til at give så meget kontekst som muligt. Du skal forklare din hensigt, eventuelle kompromiser, du har indgået, en tidslinje, og hvordan denne ændring hænger sammen med større ændringer senere i processen. Vi tror ikke på rigtige eller forkerte beslutninger. Vi tror kun på beslutninger, der er truffet i den rigtige sammenhæng eller i manglende sammenhæng.

Leave a Reply