Dear Bob ...
I've been charged with bringing agile development into our company. That would be a beautiful assignment except for one hitch: Our CIO recently committed us to offshore development. I'm having a very hard time figuring out how to meld the two. Any suggestions?
[ Take it from InfoWorld's Fatal Exception blogger -- Agile development should be more than just a buzzword. | Keep up on career advice with Bob Lewis' Advice Line newsletter. ]
Dear Baffled ...
Yes: Don't even try. It isn't worth it.
Where a lot of folks miss about the various flavors of agile development is that their importance doesn't derive from their setup as a series of steps to follow. What's most important about agile is that it's built around informality, trust, and a lot of direct contact between developers and business users. That's what makes it tick.
When you send programming offshore, you're moving it 12 time zones over, to developers with a very different native culture who usually speak English with less than full proficiency. Agile would require them to communicate frequently and informally with business users who don't speak the programmers' native language with any proficiency, through a teleconferencing circuit and maybe a Web conferencing session.
They've probably never met and won't see each others' body language; additionally, the developers won't have an opportunity to watch the business users doing their jobs. Nothing about this fits the agile model.
So don't try to force fit it when there are so many obstacles in front of you and so few (or more accurately, none) factors likely to foster success.
Instead, consider Rapids Development. No, not Rapid Application Development (RAD). Among the many disadvantages to RAD is that it's a retired buzzword and you need to sound cool, not ancient.
By "Rapids Development," I mean "rapids" as in miniature waterfalls. Take standard waterfall development: Requirements > Specifications > Development > Test > Deploy. Then shrink it so that the entire cycle fits inside a six-month window. This will give you two of agile's biggest benefits -- namely, short delivery cycles and the reduced risk of project failure that comes with small size. And it will deliver them in a framework that lends itself to offshoring, shipping specifications to developers who use them to write code heads-down with no end-user interaction.
Is it ideal? No. Without a high-trust, high-contact environment to provide daily course corrections, and with a business analyst serving as a communications intermediary, the results will suffer a bit.
That's the price your company will pay in exchange for the lower cost per hour off its offshore developers.
This story, "Agile development + offshore jobs = a recipe for disaster," was originally published at InfoWorld.com. Read more of Bob Lewis's Advice Line blog on InfoWorld.com.