Gedreven door het huidige economische klimaat heeft ict-offshoring bij veel organisaties volop aandacht. Maar valt offshoring te combineren met Agile-ontwikkelmethoden?
Offshoring betekent het uitvoeren van gedistribueerde ontwikkelprojecten, waarbij afstanden en tijd-, taal- en cultuurverschillen tussen projectteams belangrijke obstakels zijn. Om die obstakels te omzeilen, vallen veel ict-organisaties terug op de klassieke watervalmethode van systeemontwikkeling. Projectteams in verschillende landen kunnen hierdoor opeenvolgend en schijnbaar autonoom werken aan hun ontwerp-, bouw- of testdeelproject. Communicatie tussen de teams onderling en de opdrachtgever beperkt zich tot de overdrachtsmomenten van team deliverables in het project. Pas tijdens de acceptatietest wordt de kloof die tijdens het project is ontstaan tussen de, door voortschrijdend inzicht gewijzigde, implementatiedoelstellingen van de opdrachtgever en de uiteindelijke software levering pijnlijk duidelijk.
De noodzaak van kostenbesparing door offshoring herintroduceert zo een werkwijze in systeemontwikkeling waarvan de tekortkomingen al sinds de jaren '80 van de vorige eeuw bekend zijn. Anno 2010 past een lineaire, contact en communicatie vermijdende ontwikkelaanpak niet bij de marktgerichte dynamiek van moderne bedrijven. Verschillende Agile-iteratieve ontwikkelmethodieken zijn al geruime tijd voorhanden om met die dynamiek om te gaan, maar lijken vooralsnog lastig te combineren met offshoring.
Vorig jaar heb ik in het topic Development model driven offshoring geïntroduceerd. Bij model driven development wordt het structuurmodel van de applicatie weliswaar gegeneerd, maar de lastig te genereren businesslogica wordt in de praktijk meestal handmatig geprogrammeerd. Door dit programmeerwerk uit te voeren op een offshorelocatie worden kosten bespaard. Model driven offshoring combineert zo de voordelen van een hoge productiviteit en lage arbeidskosten. Uit ervaring hiermee blijkt dat model driven development tevens het gebruik van moderne Agile-methodieken in offshored ontwikkelprojecten mogelijk maakt. Projectsturing op basis van 'business value' en evaluatie van frequent opgeleverde, werkende softwarereleases door leverancier en opdrachtgever staat daarbij centraal.
Eén multidisciplinair ontwikkelteam van Nederlandse en Indiase medewerkers ontwikkelt deze softwarereleases. Ontwerp-, ontwikkel- en testtaken worden tussen medewerkers en locaties verdeeld en deels parallel in plaats van gefaseerd uitgevoerd. Model driven development levert hierbij de eenduidige systeemarchitectuur en het structuurmodel aan het gedistribueerde projectteam, waardoor een Agile-projectinrichting mogelijk is. Wijzigingen in businesslogica kunnen snel worden geïmplementeerd, ondanks de afstand en de taal- en cultuurverschillen in het team. Dit architectuurkader wordt aangevuld met contineous integration als leidend programmeerprincipe, ondersteund door build- en testomgevingen die ook voor de opdrachtgever toegankelijk zijn. Contineous integration garandeert dat businesslogica na implementatie direct kan worden getest door leverancier én opdrachtgever. De bezwaren van langdurig geïsoleerde software-ontwikkeling op een verre locatie buiten het zicht van de opdrachtgever, worden door deze Agile-offshoringaanpak weggenomen.
Daarom is mijn vraag in 2010: agile offshoring, durf jij het aan?