September 6, 2020

Samenwerken en de tools die we daarbij gebruiken

In een team met meerdere ontwikkelaars is samenwerken van cruciaal belang. Maar iedereen heeft zijn eigen manier van werken, en zijn eigen manier om iets te ontwikkelen. Daardoor is het vaak lastig om met elkaar in hetzelfde model te werken.

Dit probleem wordt groter naarmate de organisatie groter wordt. Met tientallen ontwikkelaars en tientallen projecten, wordt het steeds moeilijker om het overzicht te bewaren en efficiënt te ontwikkelen. Hoe zorg je er dan voor dat je optimaal kan samenwerken?

Conventies

Om goed te kunnen samenwerken, is het belangrijk om afspraken met elkaar te maken over de werkwijze. Dit kunnen heel brede afspraken zijn, zoals een standaard aanpak van een project, maar ook heel gedetailleerd, zoals de aanpak van een specifieke taak, de workflow van een taak, de naamgeving van elementen etc. Dit soort afspraken heten conventies, en zorgen ervoor dat iedereen op dezelfde manier werkt.

Een voorbeeld van zo’n conventie is de naamgeving van elementen. Bij het schrijven van broncode is het vaak niet mogelijk om spaties te gebruiken. Daar zijn verschillende oplossingen voor, zoals het gebruik van hoofdletters bij elk nieuw woord. Als iedereen dat op een andere manier doet, dan wordt het project rommelig. Daarom hebben wij voor één methode gekozen (PascalCase), die iedereen hanteert. Dankzij deze conventie kunnen onze ontwikkelaars netter werken en is de broncode een stuk overzichtelijker. Dit is een eenvoudig voorbeeld, maar zo zijn er ook diepgaandere conventies die essentieel zijn voor het ontwikkelen, zoals bijvoorbeeld het voorkomen van ‘spaghetticode’.

conventies

 

Als iedereen dezelfde conventies hanteert, dan kunnen ontwikkelaars makkelijk werk van elkaar overnemen. Daarnaast wordt het makkelijker om het project te beheren, omdat deze consistent op dezelfde manier wordt ingericht, en wordt de kans op fouten kleiner. Kortom; conventies besparen problemen, tijd en geld.

Automatiseren

Dit gebruik van conventies klinkt in theorie heel logisch. Maar ontwikkelaars hebben het vaak druk en zijn met meerdere projecten tegelijk bezig. Het kan dan lastig zijn om steeds te controleren of je je wel aan de conventies houdt, laat staan om nieuwe conventies aan te leren.

De oplossing hiervoor is het automatiseren van de conventies. Dit kan door de broncode automatisch te laten controleren of ze voldoen aan de conventies. Hier bestaan verschillende tools voor, die de broncode regelmatig analyseren (bijvoorbeeld elke nacht) en rapporteren waar er fouten moeten worden opgelost. Hier komen echter een aantal problemen bij kijken.

Ten eerste heeft de ontwikkelaar dan tijdens het ontwikkelen niet door dat er iets fout gaat, en kan hij daar dus niet direct op inspelen. Ten tweede hebben ontwikkelaars vaak andere urgente taken te doen, en blijft het rapport dan ook liggen. Omdat er geen consequentie aan vastzit als de problemen niet worden opgelost, wordt er niets mee gedaan. Vervolgens stapelen de fouten zich op, waardoor het steeds meer werk wordt om deze terug te vinden en te corrigeren.

Daarom hebben wij een code quality analyser voor Mendix ontwikkeld, een tool die de broncode realtime analyseert, zodat de ontwikkelaar gelijk actie kan ondernemen als er iets fout gaat.

De analyser checkt alles wat de ontwikkelaar doet, blokkeert als er iets misgaat en geeft aan wat er verbeterd moet worden. De ontwikkelaar voert dan een kleine wijziging door om het op te lossen, en kan weer verder met zijn werk.

Op die manier houdt iedereen zich vanzelf aan de conventies, waardoor het werk een stuk efficiënter wordt. Omdat er vanaf het begin af aan al op de juiste manier wordt ontwikkeld, blijft het project ‘clean’ en consistent. Zo hoeven er geen problemen achteraf te worden opgelost, en kan iedereen gemakkelijk aan de slag met elkaars project.

De code quality analyser is een onderdeel van JamOps, een tool van JAM-IT die de kwaliteit van applicaties verhoogt en het ontwikkelen makkelijker, efficiënter en veiliger maakt. Lees hier meer over JamOps.

Wil je ook succesvol samenwerken met je team? Neem contact met ons op.