This has been the year of agility. We are going to build systems faster, cheaper, and better using an Agile methodology. There are some great elements of an Agile approach, however there are some things that you should be aware of before making the final decision.
What's All the Hype?
First of all, Agile is not really new. It began in the mid 1980s at DuPont. Responding to frustrations with the heavyweight and often bureaucratic processes associated with waterfall methodologies, 17 practitioners came together to write the "Manifesto for Agile Software Development" in 2001.
In the manifesto they agreed to four core values:
* Individuals and interactions over processes and tools
* Working software over comprehensive documentation
* Customer collaboration over contract negotiation
* Responding to change over following a plan
Two of the primary benefits of Agile are the opportunity for more robust stakeholder engagement and the flexibility to change and adapt throughout the lifecycle of the project. In a quest to improve project outcomes, mitigate risk, and avoid increased costs, the market is shifting to Agile.
Preparing for Agile
Moving to an Agile methodology is not just a technical decision. There are significant business implications and cultural changes for any organization. If you decide to make this change, it is critical to understand the challenges and to have a plan for how to manage them. Some potential mitigation approaches include:
Planning. The planning activities will provide a more accurate reflection of the investments needed, schedule, and resource requirements for implementing the solution into the business environment. Key activities for the planning phase include:
* Establishing Executive Sponsorship--Necessary for funding, human capital needs, and ultimate decision-making. If the organization doesn't see clearly the value and importance of the work, other priorities will interfere and make the process unsuccessful.
* Establishing a Governance Structure--This should include the right combination of business and technology teams, managing the project holistically, and providing continuity across iterations. This group should be responsible for evaluating organizational readiness for use of Agile.
* Developing a Project Charter--A project charter establishes boundaries for scope and to provide a basis for an architectural design. The charter has to be used to weigh and consider changes that evolve so...