I am in Manila at the moment, supporting World Vision Philippines with advice around selecting and managing a local agile software development firm. It’s been interesting work, and I was particularly interested to discover that their internal IT teams are all in the process of adopting agile too. Agile is definitely coming of age within the sector!
This got me thinking about what might happen as both development and software switch to adopt these new paradigms…
Up until a few years back, ICT within development was simple.
Donors would give money for a 3-5 year program. An NGO would design a 3-5 year delivery and implementation plan. And any software or other ICT components needed would be designed and built at the start to support the duration of the delivery.
It was simple. And it worked.
Ok, when I say it worked… What I mean is… The ICT and the development-practice elements were compatible and mutually reinforcing… It ‘worked’ in the sense that the software supported the way the program was designed and helped it deliver what it set out to.
Of course it didn’t actually work – if by working we mean making a substantive positive change in the world, or reducing poverty, empowering communities, reducing inequalities of power, defending human rights, or any of the other things ICT4D and wider aid/development is actually supposed to be about. But it ‘worked’ in the sense that a lot of NGOs got and spent a lot of money, and the software helped them write reports about this…
Then along came two very similar disruptive ideas – Agile emerged in the software field, suggesting that designing software up-front is a bad idea, and it is more successful to launch the smallest piece of software you can as early as possible, and then evolve it based on interaction with real users. And in the development space, people began to argue against the top-down up-front planning and calls for participatory and ‘process’ approaches have steadily increased, leading to the emergence of things such as Adaptive Programming which challenges the way development programs are planned in a very similar way to the way agile challenges the way software is built.
These trends reflect the realtity of work in the field – it is impossible to plan for complex and evolving circumstances. And development is nothing if not complex and evolving! Reality is more like this great visual from Duncan’s blog (linked above):
The increasing use of these emerging approaches has led to some interesting scenarios and incompatibilities…
At Aptivate, we use Agile for all our software and other ICT4D development work. When we are working with a client who has this same approach and flexibility in their wider development activity it works like a dream. When we work with clients with very engineering-style top-down approaches to development, it causes tensions, frictions, and the results are less impressive.
Similarly, in previous jobs I have worked in (non-development) organisations seeking to implement highly flexible, evolving and adaptive charitable programs, but the ICT component has been delivered by non-Agile software companies who insisted on designing and specifying everything up-front, and building the entire application before launching anything. This caused enormous delays to starting work and continual frustrations when we wanted to adapt the software based on evolved understanding and learnings, but the budget had already run out and the software firm had moved on to other projects!
It seems that when methodologies align, things go smoothly. When methodologies clash, things can be fraught with problems and arguments.
And when the methodologies that align, are both built on an understanding that learning, flexibility and adaptiveness are key – the potential for improvement in the way things work is enormous.
So perhaps the time is right within development to bring these two trends together.
ICT/Mobile is a major component of many development programs these days. How would thing work if we start with Adaptive Programming for the wider planning, and then add in agile for the ICT elements within it (or even a hybrid of both sets of techniques which could apply across the board – after all ICT isn’t fundamentally different from any other aspect of delivery).
I’m keen to find out.
If you have something already going on, I’d love to get involved and see if I can help (see my previous blog post about my year’s sabbatical).
If you think you’d like to start something, or have the ear of a friendly donor and would like to put an idea to them, Aptivate would love to explore this area too.
Anyone else keen to explore this, drop me a line…