Icons van The Infi Way in een grid

The Infi Way, part 3: “voor devs van de wereld”

Jeroen Jeroen Luca Techniek

We hebben bij Infi onze uitgangspunten voor bouwen van software in “The Infi Way” opgeschreven. Omdat we denken dat er veel meer ontwikkelaars in de wereld zijn die blij zouden worden van zo’n document, zijn we bezig het breder gedeeld (en vertaald) te krijgen. The Infi Way: beschikbaar voor iedereen!

Waarom we The Infi Way wereldwijd willen delen

The Infi Way is beschrijvend (in contrast met voorschrijvend) voor hoe we graag software bouwen. Daarom is het document zelf ook Open Source, zodat we kunnen itereren en verbeteren. Maar ook zodat we het breder kunnen delen!

Eerder schreven we al hoe het ook nuttig kan zijn “voor nieuwe collega’s” en “voor (potentiële) klanten“. En nu in deel 3 willen we vertellen hoe we denken dat het nuttig kan zijn voor developers… in het algemeen!

De reden is eigenlijk heel simpel: omdat we het zelf graag hadden gevonden! En vervolgens hadden gebruikt in retro’s, bij onboardings of voor sollicitanten, bij “APK’s” van onze projecten, en wat we nog maar verder gaan bedenken.

Heel vaak bouw je iets en is “eat your own dog food” lastig, want “you are not your user”. Maar in dit geval zijn we dat wél: we zijn zelf ook het publiek.

Voordat we je meenemen in wat we nodig vinden om The Infi Way breder te delen, moeten we eerst terug naar de basis. Hoe we tot deze versie zijn gekomen. En: welke inspiratiebronnen we hebben gebruikt.

Inspiratiebronnen

Om te vertellen hoe we The Infi Way breder willen delen, moeten we terug naar de basis. Te beginnen met onze inspiratiebronnen. De input die we gebruikt hebben bij het opstellen van onze Way. We hadden een aantal uitgangspunten bij het schrijven:

  • Het moet beschrijvend zijn en niet voorschrijvend.
  • Er moet een instrument zijn waarmee je relatief makkelijk kunt toesten of je nog op de juist weg (pun intended) bent.

We zijn in ons archief gaan graven en online gaan zoeken naar blog posts, boeken en artikelen die ons hierbij zouden kunnen helpen. Geen van de dingen die we daarbij vonden waren een goede match voor wat we zochten, maar we kwamen wel volop inspiratie tegen in onder andere de volgende bronnen:

Hoewel we dus veel inspiratie uit al die bronnen hebben gehaald, misten we het hebben van één modern, grotendeels tijdloos (maar iteratief meebewegend) document: The Infi Way. (We hebben even gedacht om het de Infilosofie te noemen, maar we vonden The Infi Way toch passender).

Vanuit al deze bronnen zijn we in eerste instantie met z’n 3-en aan de slag gegaan. En omdat we echte developers zijn hebben we het ook als developers aangepakt: een git repository maken op github; daar een eerste versie in maken en vervolgens via Pull request verbeteringen aanbrengen.

Wij denken dat The Infi Way ook bruikbaar is voor andere developers en organisaties: als instrument om te meten of je project of activiteiten voldoen aan moderne software development best practices en misschien ook als iets om na te streven.

Projecten langs de lat

Onze vestiging in Nijmegen heeft onlangs zijn eerste The Infi Way Workshop gehouden. De workshop bestond uit twee delen. In het eerste deel heeft iedereen alle projecten gescoord op de volgende stellingen:

  • (Users) Developers zien echte gebruikers
  • (Reviews) Code wordt gereviewd
  • (Builds) Er worden automatische builds met tests gedraaid
  • (Deployments) We kunnen automatisch uitrollen naar productie
  • (Documentation) Repositories zijn zelfdocumenterend
  • (Technology) Het team kiest zelf passende technologie
  • (Proces) Het team kiest zelf een passend proces
  • (Evaluation) Het proces wordt periodiek geëvalueerd
  • (Refinements) Het werk wordt gerefined voordat het gedaan wordt
  • (Incidents) Storingen worden proactief opgemerkt en afgehandeld
  • (Knowledge sharing) Kennis wordt actief gedeeld binnen en buiten het team
  • (Secrets) Secrets worden correct gemanaged
  • (Backups) Er zijn (bewezen) werkende, encrypted backups

Voor elke stelling kon en antwoord van 1 (Helemaal mee oneens) tot 5 (Helemaal mee eens) worden gegeven.

In het bovenstaande plaatje de uitkomsten van de workshop. Hoe groter het oppervlak van de grafiek hoe beter een project past bij The Infi Way. In dit plaatje past het groene project het beste en het blauwe project het slechts bij The Infi Way. Ter verdediging van het blauwe project: dit project is nog in zijn opstartfase en de automatische builds en automatische deployments wordt op dit moment aan gewerkt. En eerlijk en zwart-wit als we soms zijn kreeg dat dus van een aantal mensen een 1.

In het tweede deel van de workshop spraken we met elkaar over de uitkomsten. Wat ons daarbij opviel is dat een aantal onderwerpen lager scoorden dat we graag zouden willen: we zien minder vaak gebruikers dan we zouden willen en ook backups en incidents scoorden laag. Voor een deel kwam dat door de aard van de projecten: de productieomgeving (en dus de database en de monitoring) is de verantwoordelijkheid van een andere partij en wij wisten simpelweg niet hoe het geregeld was. Belangrijkste actiepunt daar was om te zorgen dat we dit te weten kwamen. Ook de gebruikers waren door de aard van de projecten voor een deel afgeschermd door product owners en opdrachtgevers. Hier hebben we ook actiepunten afgesproken hoe we toch met de gebruikers om tafel kunnen.

Zoals gebruikelijk is het praten over de uitkomsten veel belangrijker dan het meten zelf. De conclusie van het team in Nijmegen was dat het een bruikbare vorm was om projecten te reviewen waarbij je snel tot inzichtelijke informatie komt waaruit je concrete verbeterpunten kunt afleiden.

Wereldwijd maken

Zoals gezegd, je projecten langs de meetlat leggen is één manier om The Infi Way te gebruiken. Maar er zijn zat andere manieren te bedenken. Daarom willen we het breder beschikbaar maken. En dat doen we iteratief.

Een van de eerste stappen hiervoor was het design verbeteren. Zoals het namelijk “hoort” bij een agile proces zijn we niet begonnen met direct een supermooi uitgebreid design, maar hebben we voor de allereerste iteratie iets gemaakt wat goed genoeg was. Daardoor konden we meer tijd spenderen aan wat voor ons belangrijker was: de inhoud. Echter, met dat op een niveau waar we veelal tevreden mee zijn wilden we ook het niveau van het design wat omhoog trekken. In deze iteratie hebben we ervoor gekozen om voor een strak design met een donker thema te gaan. De kleuren zijn wel grotendeels behouden (met wat kleine aanpassingen links en rechts om ze beter uit te laten komen), maar worden nu gebruikt als highlight in plaats van achtergrond. Dit zorgt ervoor dat het geheel een stuk rustiger en professioneler oogt, en komt The Infi Way direct een stap dichter bij iets wat we meer met de wereld willen delen.

Met de wereld, want een van onze stiekeme dromen met dit project is dat het niet beperkt blijft tot Nederland – of beter gezegd: Nederlands-sprekende mensen.

Om dit mogelijk te kunnen maken zullen we dus een mechanisme voor vertalingen op moeten zetten, en dat is het volgende grote ding wat in de pipeline zit. Hierbij hebben we gekozen om alle tekst uit de HTML code te halen, en in gestructureerde JSON bestanden te zetten. De lege HTML doet dan enkel nog dienst als template, waar we de verschillende onderdelen van de Way in kunnen zetten om zo een pagina te genereren voor verschillende talen. Dit is natuurlijk niet een handmatig proces, maar iets wat automatisch moet gebeuren elke keer dat we iets veranderen in de broncode. Daarvoor zijn we een build pipeline op aan het zetten die dit bij elke commit naar de main branch volautomatisch doet, en de geüpdate versie publiceert.

Een Engelse vertaling zal hierbij als eerste aan bod komen, omdat we daar zelf de vertalingen voor kunnen maken, en omdat we hier al een groot deel van het wereldwijde publiek mee kunnen bereiken. Echter, vaak lezen dingen toch het makkelijkst in je moedertaal, dus wie weet komt er een moment dat mensen aan ons gaan vragen: “Zeg, The Infi Way, is die misschien ook beschikbaar in het Italiaans/Duits/etc?”. Dan kunnen wij met relatief weinig moeite (en met behulp van iemand die wél de taal spreekt) een vertaling toevoegen.

En nu?

Hopelijk geeft dit een beeld van waarom we graag The Infi Way breed gedeeld krijgen. Niet alleen “voor nieuwe collega’s” en “voor onze (potentiële) klanten”, maar voor alle developers van de wereld. Bijvoorbeeld om het te gebruiken om je projecten langs een meetlat te leggen. Of op welke andere manier dan ook.

We zijn de komende tijd bezig om vertalingen te maken in de gangbare taal voor developers in de Westerse wereld: het Engels. En als dat een succes blijkt, hopen we dat het Open Source model zich zal terugbetalen. Hopelijk kunnen we met hulp dan nog veel meer vertalingen tegemoet zien.

Een mens mag dromen, toch!? En hopelijk droom jij met ons mee?

Lees meer over The Infi Way

Een afspraak maken bij ons op kantoor of wil je even iemand spreken? Stuur ons een mail of geef een belletje.