Agile softwareontwikkeling in een complexe organisatie

Door Daan Stolp In Applicatieontwikkeling

Stel: je bent een grote organisatie. Er zijn veel systemen, veel regels en procedures die je moet volgen. En er zijn veel afhankelijkheden, veel risico! En toch wil je jouw klanten snel kunnen leveren wat ze vragen, snel op de markt kunnen reageren en snel nieuwe klanten kunnen bedienen.

Binnen de organisatie van mijn opdrachtgever bestaan dit soort uitdagingen. Als software developers kunnen we hier een bijdrage aan leveren.

Zelf ben ik met mijn team verantwoordelijk voor de internetomgevingen. Dat betekent dat wij publieke websites en persoonlijke online portalen bouwen en onderhouden. We bouwen niet alleen de onderdelen die de eindgebruiker ziet, maar ook de web services die communiceren met kernsystemen in de organisatie. Kernsystemen zijn bijvoorbeeld systemen voor documentopslag, customer relations, financiële gegevens en klantadministratie.

De technologie die we hiervoor gebruiken beweegt snel: wat gisteren nog state-of-the-art was, is vandaag standaard en morgen alweer achterhaald. De sites moeten bijvoorbeeld responsive zijn, geschikt voor devices variërend van smartphones tot 4K beeldschermen, maar ook veilig, gebruiksvriendelijk en snel.

We willen snel kunnen reageren op deze nieuwe technologieën, nieuwe browsers en nieuwe hardware. En natuurlijk op nieuwe klantwensen. Maar dan wel zónder dat we de kernsystemen telkens moeten aanpassen. Om in te kunnen spelen op deze dynamiek is er een mix nodig van goede architectuur, de juiste technologie en de kennis om dit allemaal te combineren tot een geheel.

Voor de architectuur betekent dit dat er dus een goede scheiding moet worden gemaakt tussen de internetomgevingen zelf en de achterliggende kernsystemen. Door deze scheiding kan elk onderdeel zich op zijn eigen tempo blijven aanpassen aan nieuwe situaties. De kernsystemen kunnen zich blijven aanpassen aan de bedrijfsvoering, zonder dat de sites direct hoeven worden bijgewerkt. En wij kunnen de sites aanpassen aan de laatste ontwikkelingen, zonder dat dit aanpassingen aan de kernsystemen vereist.

Om deze architectuur te realiseren hebben we in ons team zowel ‘diepe’ als ‘brede’ kennis nodig: diepe kennis als het gaat om het schrijven van clean code – code die goed te onderhouden, goed te testen en goed uit te breiden is. Dit is een voorwaarde om snel software van goede kwaliteit te kunnen blijven leveren. Daarnaast hebben we brede kennis nodig van de tools en processen die dit ondersteunen. Denk bijvoorbeeld aan technieken voor Continuous Integration en Continuous Delivery en testautomatisering, maar ook Agile methodieken zoals Scrum.

Het .NET framework vormt hierin de basis, als stabiel platform om snel mee te kunnen ontwikkelen. Maar sinds de opkomst van de webapplicaties (en Single Page Applications in het bijzonder) is dit niet meer voldoende. Daarom maken we naast C# en .NET ook gebruik van Javascript-technologie zoals het Angular framework en Web Components. Om alles snel en automatisch te kunnen deployen maken we gebruik van TFS en alle tooling die daaronder valt, van Git en Continuous Integration tot Testing en Release Management.

Met deze combinatie van technieken en kennis houden we de controle over een groot en complex systeem. En deze controle zorgt ervoor dat we vertrouwen hebben in onze software, zodat we snel kunnen blijven ontwikkelen en nieuwe software kunnen uitbrengen op ieder moment dat we willen. Met als gevolg dat mijn opdrachtgever haar klanten snel kan leveren wat ze vragen, snel op de markt kan reageren en snel nieuwe klanten kan bedienen.

Meer informatie

daan-stolp

Daan Stolp

.NET Developer

+31 6 52 01 51 53 Stuur Daan een e-mail

Reacties

Er zijn nog geen reacties op dit bericht.

Plaats een reactie

Dit veld is verplicht.

Vul een geldig e-mailadres in.

Dit veld is verplicht.