Floris Robbemont Lead Developer - Dutch Grit 24 november 2016


BLOG: Online uitdagingen tijdens de decembermaand

“Een goede ontwikkelaar is een luie ontwikkelaar”. Binnen de ontwikkelsferen is dit een veel gehoorde uitspraak. Betekent dit dat deze ontwikkelaars minder werk verzetten? Integendeel!

 

Veel taken van een ontwikkelaar moeten handmatig worden uitgevoerd. Denk hierbij aan het programmeren van een onderdeel, of het verzinnen hoe iets gebouwd moet worden. Dit zijn dan ook de taken waar de meeste aandacht aan besteed wordt. Ongeveer 80% van de tijd gaat zitten in het daadwerkelijk programmeren van functionaliteit. De overige tijd gaat op aan alle randtaken, zoals:
  • Bijhouden van de taken die uitgevoerd moeten worden
  • Updaten van test van productieomgeving
  • Testen van nieuwe code (en hoe deze omgaat met de bestaande code)
  • Upgraden van databases
  • Klant op de hoogte stellen van wijzigingen op de testomgeving


Alhoewel deze taken niets met programmeren te maken hebben moeten ze toch door de ontwikkelaar uitgevoerd worden. Tijdens een project van 6 maanden zal de testomgeving ongeveer veertig keer bijgewerkt worden. Werken er meerdere mensen aan het project dan gebeurt dit zelfs nog vaker. Het bijwerken van een complexe omgeving kost zo 15 tot 20 minuten (afhankelijk van de complexiteit van de applicatie). Dit komt neer op een ‘verspilling’ van  10 uur.  Daarnaast komen alle overige bovenstaande taken ook nog om de hoek kijken.

 

Kost tijd, bespaart tijd

We kunnen tegenwoordig niet meer zonder deze extra taken, omdat het hiermee o.a. mogelijk wordt dat klanten rechtstreeks meekijken tijdens de ontwikkeling. De klant wil dit graag zodat hij kan zien wat er gemaakt wordt en eventueel nog bij kan sturen. Wij kunnen deze nieuwe inzichten gebruiken om tot een beter resultaat te komen dat perfect is afgestemd op de wensen van de klant. Naast de extra taken komt hier ook nog de nodige communicatie bij kijken.


Wat heeft dit allemaal met luiheid te maken? Het antwoord daarop is: automatisering. Alle taken, hoe complex deze ook zijn, die niet tot weinig veranderen kunnen geautomatiseerd worden. Bij Dutch Grit hebben we dit van start tot eind doorgetrokken zodat de ontwikkelaar niet belast wordt met het uitvoeren van triviale werkzaamheden.

 

Voorbeeld

Om hier een beeld van te geven gebruiken we de volgende situatie: Een klant vraagt tijdens de ontwikkeling van een project om een aantal wijzigingen. Deze wijzigingen dienen opgeslagen te worden in een systeem zodat de ontwikkelaar weet wat er moet gebeuren. In de meeste gevallen moet er nog overleg plaats vinden tussen de ontwikkelaar en de klant voordat de wensen helemaal duidelijk zijn.


De ontwikkelaar gaat vervolgens aan het werk op basis van de informatie in het systeem. Wanneer de werkzaamheden afgerond zijn moet de ontwikkelaar de testomgeving bijwerken en de klant op de hoogte stellen welke punten getest kunnen worden. Soms heeft de klant nog wat opmerkingen over de opgeleverde punten wat kan leiden tot aanpassingen welke vervolgens weer op de testomgeving gezet moeten worden. Dit 1-2’tje kan zich een aantal keer herhalen totdat de klant tevreden is.


Als laatste stap moet de ontwikkelaar de productieomgeving bijwerken met de nieuwe functionaliteit. Dit zijn dezelfde handelingen als eerder op de testomgeving zijn gedaan. Als de oplossing al gebruikt wordt in productie is het gewenst om de update buiten werktijd uit te voeren. Hier dient de ontwikkelaar voor over te werken.

 

De ontwikkelstraat voor luie ontwikkelaars

In de bovenstaande situatie worden een hoop werkzaamheden beschreven welke niet allemaal direct zichtbaar zijn voor de klant. Bij een taak van 8 uur zal gemakkelijk 1 uur gebruikt worden aan communicatie en het bijwerken van de omgevingen. Daarom richten we bij Lucasoft Online standaard voor elk project een ‘ontwikkelstraat’ in. Zo’n straat ziet er ongeveer als volgt uit:

 

 

Alle taken in het bovenstaande schema (op de ontwikkeling na) zijn in de ontwikkelstraat geautomatiseerd. Wensen van de klant worden in een systeem opgeslagen waar de klant ook mee kan kijken naar de status. Vervolgens gaat de ontwikkelaar aan de slag met de ontwikkeling van de taken. Eventuele communicatie over deze punten gebeuren in hetzelfde systeem zodat het voor de klant gemakkelijk is om bij te houden wat er allemaal nog open staat. Wanneer de ontwikkelaar klaar is worden de wijzigingen automatisch naar de testomgeving gestuurd. Elke keer wanneer de omgeving wordt bijgewerkt krijgt de klant een e-mail met daarin de punten die zijn meegenomen. Op die manier weet de klant precies welke onderdelen getest kunnen worden.


Wanneer de testomgeving goedgekeurd wordt kan de ontwikkelaar gemakkelijk de productieomgeving bijwerken met de druk op een knop. Tevens kan het bijwerken ingepland worden (bijvoorbeeld ’s nachts) zodat het altijd buiten kantooruren gebeurd. Dit alles kan zonder dat een ontwikkelaar daarvoor wakker moet zijn.


Door het inzetten van een ontwikkelstraat brengen we herhaalbaarheid in onze processen. Deze herhaalbaarheid zet zich om in stabiliteit van de applicatie. En het mooiste onderdeel is dat jij, de klant, niet belast wordt voor al deze extra taken. 

 

Back