Login Form

driving your projects to success

Jul212010

Are you Agile ?

PDFPrintE-mail

 

cheetah

IT project are traditionally seen as unreliable, unpredictable with a success rate ranging from 16% to 40% depending on the study. With a need to secure success for their projects, more companies are switching from traditional project management approaches to a more result driven family of methods called agile methods.

Issues with traditional methodologies

There is quite a large amount of analysis about IT projects success rates and methods efficiency. In summary, the major issues that are usually pointed out are :

  • Long delay between initial investment and earned value
  • Gap between the expectations and the actual delivery
  • Quality issues

The agile response

To address these major issues, in the 90's some IT professional started to create promote more lightweight methods of building and delivering software, such as Scrum or eXtreme Programming.

In 2001 the principles behind these methods were fixed in the Agile manifesto that laid the foundations of Agile development methodologies :

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions

over

processes and tools

Working software

over

comprehensive documentation

Customer collaboration

over

contract negotiation

Responding to change

over

following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Although there are today a number of agile methodologies, they all more or less share four characteristics:

Iterative approach

Quality driven process

Individuals and communications

Continuous enhancement

Lower risk by short and frequent iterations delivering fixed scope perimeter.

Requirement reprioritization after each iteration based on actual feedback.

Each iteration delivers a functional version of the software  that can be used by the business.

Working software is the primary measure of progress which gives a far more accurate measurement of productivity and actual, valuable progress.

Customer / user is part of the development process as he is the only one that can assess business-centric quality of the software.

Daily face to face engagement help to secure that requirement are understood and issues unraveled earlier.

Project are delivered by individuals. They do not purposely produce bad quality and should be trusted for not doing so.

 

Team are self-organized to deliver what they have committed to deliver.

Lesson learnt at the end of each iterations enable to continuously enhance the development process and project organization.

Agile adoption

After being confined to a circle of gurus and university researchers in the 80/90's and going through a hype a couple of years ago, agile methods have now reached maturity and a great number of organization have made a move towards them : 17% of US and European companies are already using them according to a 2007 Forrester report.

The key benefits that those organization have been able to reap adopting agile methods are :

Frequent deliveries enable a more accurate visibility into the actual progress of projects.

agile_value_proposition_1

 

agile_value_proposition_2

source : www.versionone.com

Agile is designed to easily adapt to requirements changes throughout the project lifecycle

Incremental and iterative approach sets the focus on delivering business value earlier.

Test driven approach and iterative delivery lower risks of gaps between expectations and delivery.

While there is a large number of methods and variations, up to date the most widely used are SCRUM and eXtreme Programming.

Agile and off the shelves solutions

Most of the methodologies that have been described are focused on software development. Yet agile principles and practices can be applied to implementation projects of commercial of the shelves solutions (COTS) :

  1. Deploy vanilla : solutions usually come packed with generic best-practices functionality which should be put to work quickly for immediate benefit where possible.
  2. Deploy gradually : deploying in a staggered manner - department by department or function by function - will allow the organization to gradually master the benefits of the solutions. This of course comes at a price, because temporary integration will be required, but project complexity would be dramatically reduced, increasing the chances of success.
  3. Focus on value : not all requirements add value, but all of them consume it. A requirement adds value if it is aligned with project goals. So like in any IT project time and effort must be spent to define the objectives before jumping into the requirements. 
  4. Avoid heavy customizations : even though customization can't be avoided, maintenance costs of a heavily customized solution are considerable. In order for the solution to sustain and survive any long-term or high-impact change, it should be kept it as close to standard as possible.
  5. Integrate where product is not absolutely necessary: boundaries between the solution and everything else  must be understood and clearly defined. Integrating a solution with external applications might be less costly, and bring more value, than customizing the product to the world's end.