Agile is a word many associate with yoga, but if your IT department mentions it they’re probably not talking about the downward dog or lotus pose, but actually a method of software development.
What is Agile?
The difference between Agile and Waterfall, a more traditional way of managing IT development teams, is how they approach projects. Traditionalists spend large amounts of time designing the whole system before anything is actually built. Once development begins, changes can impact the whole design and be very costly.
Under Agile, planning and design are done in smaller chunks, uncovering any changes as soon as possible, while keeping costs to a minimum. It also encourages the ‘client’ (whoever commissioned the project - be the internal or external) to be closely involved in each phase of the process, reducing the lag on feedback time.
Continuing the fitness analogies, picture Peter, who is on a quest to become more muscular for his holiday in six months’ time. His personal trainer suggests he increases his protein intake and Peter proceeds to supplement his normal diet with three protein bars a day.
By the time the holiday rolls around, Peter has put on almost a stone in weight but not muscle, and it’s too late to do anything about it. The sun is out, but the guns definitely aren’t. Had he paid attention to his weight gain and reviewed his progress more frequently with the personal trainer he probably would have noticed the problem sooner.
Under Agile, developers start with a simple project design instead of a large document, and work on small modules. Small iterations of work are reviewed and testing is done frequently so any bugs are found early in the process. Teams can continuously review objectives and respond to change, maintaining transparency through constant communication. Much like working with a personal trainer regularly on a fitness plan.
The potential drawbacks
Flexibility is one of the strong suits of Agile - but it isn’t suited to every IT project. In businesses where the pace of change is slower, or in projects that involve old, traditional IT systems, methodologies such as Waterfall can be more practical and cost effective. A Waterfall process defines and documents all requirements before development starts, and where change is minimal or the pace of change is very slow this approach can prove successful.
For businesses with a long history of this kind of development, moving to an Agile approach also requires a profound change in the way teams are structured and operate. Getting everyone wholeheartedly understanding, bought into and involved in an Agile approach can take a lot of time and effort. The approach needs to be clearly understood by management and implemented throughout all levels of the company in order to reap the full benefits.
Each development methodology has its pros and cons and Agile is by no means a silver bullet. As with all things, success very much depends on those driving the project.
John Cooke is the founder and managing director of Black Pepper Software, a consultancy and software development company.