Engineering principes: putting our values into practice

Katrina Gnatek
Katrina Gnatek

Follow

Jul 30, 2020 – 4 min read

VP van Engineering, Ilya Kozlov, deelt de logica en waarde achter onze engineeringprincipes. Lees hoe deze principes onze engineers helpen te groeien en verantwoordelijkheid te nemen voor hun levering.

Bij Taxfix begint alles met onze waarden: Leveren, Vertrouwen, Ontwikkelen, en Begrijpen. Iedereen, ongeacht de rol die hij of zij speelt in het bedrijf, heeft een gedeeld begrip van deze waarden. Engineering principles vertalen onze waarden in concrete concepten en begeleiden iedereen op een eerlijke en gestructureerde manier. Het doel is om ons team zo autonoom mogelijk te maken – in ontdekking, besluitvorming, levering en groei.

Principes zijn een routekaart voor nieuwkomers om snel aan de slag te gaan met hoe we hier dingen doen. Ze bieden een draaiboek voor acties en hoe nieuwe uitdagingen aan te pakken. Als twee verschillende mensen bijvoorbeeld voor hetzelfde probleem staan in een vergelijkbare context, zullen hun oplossingen ongeveer hetzelfde zijn omdat ze zich hebben laten leiden door dezelfde richtlijnen. Onze principes fungeren ook als maatstaf voor feedback en ontwikkeling. Achter elk principe schuilt een reeks verwachtingen voor het gedrag van onze ingenieurs, die richting geven aan zelfverbetering.

Hier vindt u een vereenvoudigde manier om naar dit concept te kijken

Hoe zijn we te werk gegaan bij het opstellen van deze principes?

Hoewel waarden een integraal onderdeel vormen van het dagelijkse leven, was het niet altijd duidelijk hoe we deze in praktijk konden brengen. Onze ingenieurs wilden meer specifieke voorbeelden van hoe ze deze waarden in praktijk konden brengen.

We realiseerden ons dat we een engineering-playbook nodig hadden dat precies beschreef waar we waarde aan hechtten en wat we van het team verwachtten. We kwamen bij elkaar voor een eerste brainstormsessie – Juan Ramirez, onze engineering manager in Madrid, Alex De Leon, onze CTO, en ikzelf. Samen identificeerden we een paar belangrijke gebieden om aan te werken, maar ontdekten al snel dat ons beeld niet volledig was. We moesten elke stem in de engineering-organisatie horen.

In een reeks workshops in de daaropvolgende maanden bespraken we ideeën, daagden we elkaar uit en haalden we referenties van enkele van de meest toonaangevende engineering-culturen in de markt. Het resultaat was een structuur van acht waardegedreven engineeringprincipes, ondersteund door voorbeelden van best practices.

Wat betekenen engineeringprincipes in de praktijk?

Hier volgt een blik op een paar van onze engineeringprincipes:

Lever

Onder de waarde Lever, hebben we een principe van Interne Open Source. Dit betekent dat iedereen kan bijdragen aan een applicatie of service, ook wel bekend als zwak code eigenaarschap. Interne Open Source helpt ons te leveren, want als de codebasis wordt gedeeld, heb je in feite geen afhankelijkheden.

Een groot probleem waar veel bedrijven mee worstelen is afhankelijkheid. Als een team een nieuwe functie wil leveren, moeten ze vaak iets in hun eigen service bouwen en dan een ander team benaderen en wachten tot alle stukjes bij elkaar komen. Meestal, hoe groter je bent als bedrijf, hoe ingewikkelder dit probleem wordt. Je wordt in wezen geblokkeerd door afhankelijkheden. Hier werken we in cross-functionele teams en gebruiken we bijna overal één taal, JavaScript. Dit stelt iedereen in staat om naar een specifieke dienst in het bedrijf te gaan en daar een wijziging aan te brengen. Je hoeft niet te wachten – je kunt het zelf implementeren.

Trust

Onder onze Trust waarde, hebben we het principe van We are One Team. Dit betekent dat we optimaliseren voor de output van het team en de organisatie, niet het individu. Een individu kan zeker het resultaat bereiken dat hij of zij nastreeft, maar ten koste van de rest van de organisatie? Als je alleen je eigen doel voor ogen hebt, zal het hele bedrijf niet efficiënt zijn. We proberen dus manieren te vinden om betere resultaten te bereiken door gebruik te maken van een combinatie van deskundigheid, achtergronden en perspectieven. Er zijn geen “eenmansbanen”, alleen samenwerkingsverbanden.

Ontwikkelen

In onze waarde Ontwikkelen hebben we het principe We Leren van Elkaar opgenomen. Naast standaard leerinitiatieven, zoals het bijwonen van meetups en het bezoeken van conferenties, willen we het delen van kennis tussen teamleden stimuleren. Wat we hier proberen te bereiken is het op elkaar afstemmen van verschillende vaardigheden binnen onze teams. Als er bijvoorbeeld een front-end engineer is die wil overstappen naar full-stack, dan matchen we die met een back-end engineer. We koppelen deze twee aan elkaar, zodat ze kunnen groeien als team en als individu door nieuwe projecten aan te sturen die buiten hun typische expertise vallen.

Understand

Het laatste voorbeeld dat ik wil geven heeft betrekking op onze Understand-waarde – Creëer en deel context. Dit principe gaat verder dan alleen documentatie; het is tweerichtingsverkeer. We verwachten dat ons team context creëert voor anderen. Daarbovenop moeten ze proactief zijn in het lezen en verwerken van de context die ze ontvangen. Wanneer het bijvoorbeeld wordt toegepast op pull requests, weten mensen niet altijd wat jouw context is of wat je probeert te bereiken in je team. Als je samenwerkt en probeert iemand anders zijn repository te veranderen, moet je zoveel mogelijk context geven. Je moet uitleggen wat je bedoeling is, welke compromissen je hebt gesloten, een tijdlijn, en hoe deze verandering samenhangt met grotere veranderingen verderop in het proces. Wij geloven niet in goede of foute beslissingen. Wij geloven alleen in beslissingen die in de juiste context worden genomen of in ontbrekende context.

Leave a Reply