Waarom het gebruik van git standards je code verbetert

Blog
Posted on 2/08/2021
Why adopting a git standard makes for better code

Het softwarebeheer kan een complexe onderneming zijn wanneer je te maken hebt met meerdere ontwikkelaars, in meerdere teams, over meerdere projecten. Als hulpmiddel om projecten van verschillende omvang op technisch niveau met succes af te handelen, ontwikkelde Dropsolid standaarden die flexibiliteit mogelijk maken en tegelijkertijd toch robuust zijn.

Het belang van team alignment

Met de groei van onze development teams ontstond er een mix van bestaande benaderingen en een instroom van nieuwe inzichten en ideeën. Na een tijdje merkten we kleine variaties in de manier waarop de teams werkten. Zelfs binnen een team ontstonden er kleine verschillen tussen projecten. Dit veroorzaakte verwarring, wat we uiteraard willen voorkomen. Elk team heeft een vertegenwoordiger heeft in de QA-guild, waarin mensen met een gedeelde interesse voor quality assurance worden samengebracht. De perfecte plek om dergelijk probleem aan te pakken.

 

De missie om onze richtlijnen te verbeteren

Als eerste stap keek de guild naar bestaande Git standaarden en de algemene best practices om code en functionaliteiten te testen. We gingen uit van de huidige richtlijnen en vulden deze aan met nieuwe ideeën van verschillende medewerkers, wat uiteindelijk leidde tot nieuwe en verbeterde richtlijnen.

Dit resultaat werd gepresenteerd op een interne dev meeting om uit te leggen waarom uniforme, maar aanpasbare Git standaarden zo belangrijk zijn en om de potentiële zorgen rondom deze nieuwe standaarden te adresseren. De teams konden dit laten bezinken om later nog feedback te geven. Dit leidde tot enkele laatste wijzigingen en maakte het nog beter. We zijn ervan overtuigd dat we een richtlijn hebben die iedereen begrijpt en volledig steunt, omdat onze teams weten waarom bepaalde keuzes zijn gemaakt. Het kan niet genoeg worden benadrukt hoe belangrijk dat is.

De leidraad behandelt verschillende onderwerpen in verband met software development. Zonder al te veel in detail te treden, volgt hier een lijst van de belangrijkste punten:

  • Een workflow die alle situaties dekt.
  • De mogelijkheid om van de standaard af te wijken indien nodig, na bespreking met het team en na aftekening door de architect van het team.
  • Een single source of truth: die van de main branch, gelijk aan de productieomgeving.
  • Verschillende supporting branches die allemaal hun nut hebben:
    • Integration branches: gebruikt voor afgewerkte functionaliteiten en gekoppeld aan een omgeving. Ze kunnen op elk moment opnieuw worden aangemaakt.
    • Feature branches: gebruikt om nieuwe features te ontwikkelen en gebruikt voor code reviews en andere QA-checks.
    • Epic branches: gebruikt om user stories en bug fixes met gedeelde business waarde te "bundelen".
    • Child branches: hebben het corresponderende epic-nummer in zich, zodat ze gemakkelijk te onderscheiden zijn.
    • Release branches: gebruikt wanneer meer dan één feature in één keer wordt uitgerold, wanneer een aparte omgeving wordt gebruikt voor release voorbereiding, of wanneer een klant graag meerdere features tegelijk test.
    • Hotfix branches: lijken veel op release branches in die zin dat ze ook bedoeld zijn om een nieuwe productie-release voor te bereiden, zij het ongepland. Ze komen voort uit de noodzaak om onmiddellijk te reageren op een ongewenste toestand van een live productieversie.
  • Het gebruik van een standaard commit bericht, in lijn is met hoe GitLab (ons belangrijkste repository platform) werkt.
  • Het belang van code review. Het wordt gebruikt om problemen vroegtijdig op te sporen en als een leermiddel voor zowel de auteur als de reviewer van de code.

 

Bedrijfsbrede impact

Het aanbieden van deze nieuwe standaarden helpt developers in hun dagelijkse werk. Omdat ieders manier van werken op elkaar is afgestemd, verbetert de samenwerking tussen teams en verloopt het onboardingproces voor nieuwe ontwikkelaars soepeler. Aangezien de standaard zeer solide is, zou het bovendien de kwaliteitscontrole en de algemene kwaliteit van ontwikkelingsprojecten in het hele bedrijf moeten verbeteren.

 

Het belang voor onze klanten

We hechten veel belang aan de behoeften van onze klanten, zodat ze in hun eigen tempo kunnen testen, terwijl ze de mogelijkheid houden om items onafhankelijk te releasen. De workflow is belangrijk voor de flexibiliteit, omdat het ons in staat stelt om dingen parallel te doen. Zo kunnen we tickets oppakken en oplossen, terwijl we nog wachten op andere tickets en meer toelichting. Een klant is in staat om te "kiezen" welke tickets ze in de release willen. Deze manier van werken maakt het efficiënt voor beide partijen, zowel de klant en hun team als onze ontwikkelaars.

 

Meegenieten van onze nieuwe guidelines?

Heb je problemen met de afstemming van je code? Wil je dat jouw teams efficiënter samenwerken? Wil je de releases van jouw projecten versnellen? Neem contact op en laten we samen kijken hoe we kunnen samenwerken.