Hi tweakers, ik ben op mijn werk aan het pushen voor een nieuwe functie binnen het R&D team. Deze functie zou als kerntaak moeten hebben om de kwaliteit van ‘de code’ (een beetje kort door de bocht, meer context volgt) te bewaken. Nu zou ik graag weten of een soortgelijke functie vaker voorkomt (ik zou denken van wel) en hoe deze dan wordt genoemd.
De context:
Ik werk in een middelgroot ontwikkelteam (~30 personen) in een bedrijf dat softwareproducten aanbiedt binnen een redelijke niche-branche. Zoals zoveel MKB’s geldt ook bij ons dat initieel de software is gemaakt door mensen uit het werkveld zonder al te veel kennis over software development. Dit heeft geresulteerd in een flinke berg legacy-code die eigenlijk enkel groeit omdat er nog steeds wel redelijk de ‘als het werkt is het goed’ mindset is. Oftewel: het klassieke software-evolutieprobleem.
Nu is het zo dat we sinds een aantal jaren bezig zijn met een professionalisatieslag (zowel bedrijfsbreed als binnen de R&D afdeling). Tot op heden is het echter zo dat alle rollen die gedefinieerd worden vooral gefocust op het op tijd leveren van releases e.d. en dat er geen ‘stem’ is voor software kwaliteit. Dit zorgt ervoor dat de degradatie van onze softwarekwaliteit vrolijk voortdendert.
Om dit tegen te gaan heb ik een voorstel gedaan om een nieuwe rol te introduceren. Deze rol zou zich moeten toeleggen op de kwaliteit van de producten en een tegenwicht moeten bieden aan de krachten die zo snel mogelijk een nieuwe feature willen releasen. In praktische zin hebben denk ik dat de volgende taken onder deze rol vallen:
De context:
Ik werk in een middelgroot ontwikkelteam (~30 personen) in een bedrijf dat softwareproducten aanbiedt binnen een redelijke niche-branche. Zoals zoveel MKB’s geldt ook bij ons dat initieel de software is gemaakt door mensen uit het werkveld zonder al te veel kennis over software development. Dit heeft geresulteerd in een flinke berg legacy-code die eigenlijk enkel groeit omdat er nog steeds wel redelijk de ‘als het werkt is het goed’ mindset is. Oftewel: het klassieke software-evolutieprobleem.
Nu is het zo dat we sinds een aantal jaren bezig zijn met een professionalisatieslag (zowel bedrijfsbreed als binnen de R&D afdeling). Tot op heden is het echter zo dat alle rollen die gedefinieerd worden vooral gefocust op het op tijd leveren van releases e.d. en dat er geen ‘stem’ is voor software kwaliteit. Dit zorgt ervoor dat de degradatie van onze softwarekwaliteit vrolijk voortdendert.
Om dit tegen te gaan heb ik een voorstel gedaan om een nieuwe rol te introduceren. Deze rol zou zich moeten toeleggen op de kwaliteit van de producten en een tegenwicht moeten bieden aan de krachten die zo snel mogelijk een nieuwe feature willen releasen. In praktische zin hebben denk ik dat de volgende taken onder deze rol vallen:
- In kaart brengen en prioriteren van ‘technical debt’
- Stimuleren en faciliteren van kennisdeling.
- Monitoren van ontwikkelingen om synergie tussen producten te promoten en/of voorkomen dat we het wiel opnieuw uitvinden.
- Procesverbeteringen invoeren teneinde de kwaliteit te verbeteren (denk hierbij aan zaken als meer/beter testen, reviews, coding guidelines , quality metrics, etc)