Agile is a development strategy that we have worked with for a number of years now. Lately, we've been getting a lot of questions from clients along the lines of: "I've got a project, I want to globally source it, can I use Agile Development?"
Well, that depends.
Agile is an iterative, communication-intensive development process which traditionally is built around small, centrally-located teams.Conversely, the Global Delivery Model (GDM, a model for delivering software from offsite / offshore locations) is built on the premise that software be developed using a 24-hour workday, utilizing multiple time-zones.You can start to see where obvious issues might start to arise.
Though globally sourcing an Agile Development project may seem like a clash of ideologies, the strategy has proven to be very successful if properly conceived and executed.By properly utilizing the inherent advantages of each strategy, significant time and money can be saved.
Profile of an Agile Project
A little over a year ago, we had a chance to work on the prototypical Agile project.Our task was to build a website incorporating innovative new features and technologies for a large financial institution.A developer's dream!There was a catch however; we had six months to design, build and release-an incredibly short timetable.
Agile is built for situations like this, and there were a number of factors which lent to the project's eventual success.The first factor was culture.Our development team was composed of creative, flexible individuals.We were accustomed to working under stressful conditions, and each programmer had the ability to think on his or her feet.The client was very open (excited even) to using Agile, and was very accommodating.
Culture is crucial to the success of an Agile project.The lack of a waterfall-like structure can be very stressful to some development teams and clients.Though we met the six-month deadline, the project was filled with ups, downs and uncertainties.Comfort is key, and before any Agile project is undertaken both the project manager and the client should be 100% certain they are ready for the sometimes uncomfortable undulations that Agile inevitably presents.
The second factor in our favor was talent.We had what we termed the "silver bullet", a do-anything programmer who has unlimited design capabilities.Obviously not every team is lucky enough to have a star programmer, but there are ways to make sure your talent matches the requirements of the project.
As a general rule-of-thumb, the more engineering content a project presents the more challenging it will be to use Agile Development.Why?More engineering content means more complexity.Take our project, for example.A number of features we planned on incorporating in the website required the use of cutting-edge technologies which, for the most part, our team had little experience working with.Luckily for us, our "silver bullet" was able to quickly develop an understanding of the new technology, experiment with code, and develop an ideal process which the rest of the team could emulate.Sans his abilities our team would have been over its head, unable to make the quick decisions that Agile Development encourages.We have witnessed the death of many projects because of an overabundance of engineering content.In these situations, if you don't have experienced architects, then don't use Agile!
An Agile-conducive culture and a talented team are two tell-tale signs of a successful Agile Development project.Our project, saddled with a six month deadline, needed speed.The extended workday provided by the Global Delivery Model gave our team the extra "oomph" needed to beat the deadline.Mixing the GDM with Agile is always a challenge, but the results are usually impressive.
Global Delivery Model and Agile
Though there is no getting around the 9000-odd miles that separate the typical onsite-offshore locations, the right mix of modern technology and strategy can help an Agile team work around these geographical challenges.
It all starts with personnel.One powerful advantage the Global Delivery Model provides is the access to necessary talent at onsite and