Vanuit het oogpunt van beheer en om het mobiele werken te bevorderen, kiezen steeds meer bedrijven ervoor om gebruik te maken van webapplicaties. In een tijd waarin kostenbesparing en efficiëntie steeds belangrijker worden, is het ook voor de ontwikkeling van webapplicaties wenselijk dat dit proces zo eenvoudig mogelijk verloopt. In dit artikel geef ik zeven tips waarmee de productiviteit van webapplicatie-ontwikkeling kan worden verhoogd.
Een belangrijke kanttekening is dat niet alleen de bouw van nieuwe applicaties maar ook zeker het onderhoud van bestaande applicaties moeten worden geoptimaliseerd. Immers, het leeuwendeel van de kosten van een (web)applicatie komt pas nadat de applicatie in productie is gegaan.
1. Automatiseer het release-proces
Het in productie brengen van een applicatie moet eenvoudig en zo snel mogelijk gaan. Om een echte Agile-samenwerking met de business te hebben en te behouden, moeten er regelmatig nieuwe releases beschikbaar gesteld worden. Als RFC’s en fixes direct meegenomen worden in deze releases, voorkomt dat een opstapeling van change-verzoeken tijdens het ontwikkelproces. Maar dan moet het natuurlijk niet twee dagen duren om nieuwe versies in productie te nemen. Dat werkt beslist nadelig door in de overall productiviteit.
2. Verminder complexiteit
Hoe complexer een applicatie wordt, hoe lastiger het is om veranderingen door te voeren. Een oplossing kan gevonden worden door het systeem op te splitsen in kleinere logische delen. Door bijvoorbeeld speciale technologie in te zetten, kunnen complexe systemen opgesplitst worden in beter te beheren componenten. Het geheel wordt hierdoor transparanter en het aanpassen van de onderdelen wordt eenvoudiger.
3. Focus op productie, vanaf de eerste dag
Het is verleidelijk om snel een oplossing te maken voor een dringend probleem en deze applicatie later weer op te schonen om hem echt productie-gereed te maken. Dat lijkt misschien Agile… Echter, (ook) bij Agile-ontwikkeling is het van vitaal belang om aspecten als monitoring, schaalbaarheid, logging, user management en dergelijke niet te negeren. Het loont op de lange termijn om direct rekening te houden met alle belangrijke aspecten om zo extra werk in het latere traject te voorkomen. Ook hier geldt dat de ideale oplossing is om te bouwen met behulp van een Agile-platform dat geschikt is om aan deze eisen te voldoen.
4. Impact analyse
Om snel veranderingen door te kunnen voeren moet het team erop kunnen vertrouwen dat een aanpassing niet onbedoeld een ander deel van de applicatie onklaar maakt. Dit probleem kan worden gereduceerd door de volgende drie zaken in het achterhoofd te houden. Ten eerste door het gebruik van impact analyse-instrumenten gedurende het ontwikkelingsproces. Indien een database-aanpassing een inconsistentie veroorzaakt moet dit direct getriggerd worden. Ten tweede door het gebruik van regressietesten en tot slot moet er een mogelijkheid zijn om de impact van de veranderingen vooraf te analyseren.
5. Investeren in kennismanagement
Het verloop van medewerkers, de verschillende teams voor ontwikkeling en onderhoud of de noodzaak om teams toe te wijzen aan verschillende projecten zijn allemaal goede redenen om te investeren in kennisoverdracht. Maar leg de last van de kennisoverdracht niet bij de ontwikkelaars. De documentatie zal nooit voldoen aan de eisen en een code walkthrough is vaak tijdrovend en ingewikkeld. Gebruik specifieke domein- of visuele talen en delegeer de taak aan ondersteunende tooling.
6. Flexibele besturing
Wanneer implementeren slechts een kwestie van seconden wordt, gaan de voordelen van deze snelle implementatie volledig verloren als de goedkeuring voor een productie-deployment een tweedaags bureaucratisch proces blijkt te zijn. Om echt flexibel te zijn, zijn er twee dingen nodig: volledig mandaad bij het ontwikkelteam en weten wie kan helpen bij eventuele problemen. En nog belangrijker: de mogelijkheid hebben om een productie-deployment die niet voldoet, eenvoudig te kunnen terugdraaien.
7. Samenwerking met de belanghebbenden
Hoe sneller je feedback van stakeholders vergaart, des te sneller zal de ontwikkeling van de webapplicaties in de juiste richting gaan. Het heeft geen enkel nut om snel te ontwikkelen als je niet in de gewenste richting werkt. Met dit in het achterhoofd is het vanzelfsprekend dat de eindgebruikers gemakkelijk feedback moeten kunnen geven en dus snel moeten kunnen aangeven wat ze graag anders willen. Tevens moet deze feedback eenvoudig gemanaged en verwerkt kunnen worden met als doel om de aanpassingen snel beschikbaar te stellen aan de business.
Dit lijkt op een enorme hoeveelheid werk… Dat klopt. Deze tips zijn niet eenvoudig of snel even toe te passen, maar als geheel kunnen ze de productiviteit van ontwikkelingsteams wel op indrukwekkende wijze verhogen.
Waarheden als koeien…
Maar deze regels gelden al sinds jaar en dag! Wat is het nieuwe hieraan voor ‘webapplicaties’? Moet ik geloven dat tot nu toe webapplicaties zo’n beetje in elkaar geflanst werden?