 |
|
Unlike traditional project management, which
emerged from the construction, engineering and
defence industries and dates back to the 1950s,
APM was born in the twenty first century. In 2001,
prominent software developers from both IT and
software engineering domains, convened to arrived
at a consensus on how the software development
industry could produce better results. This meeting
produced the Manifesto for Agile Software Development,
which states that the "highest priority is to
satisfy the customer through early and continuous delivery of valuable software."
|
 |
 |
 |
|
"We are uncovering better ways of developing [products] by doing it and helping others do it.
Through this work we have come to value:
|
- Individuals and interactions over processes and tools
- Working [products] over comprehensive documentation
- Customer collaboration over contract negotiations
- 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."
|
 |
|
An Agile Project is made up of a number of iterations that are repeated over a time period with a
feedback loop after each time period work is completed. At the discretion of the client the last time
period may release a partial solution. Agile practices are suited for situations when most but not all
of the solution is clearly known or when the solution is known but not to the expected level of
depth.
|
 |
 |
 |
 |
 |
 |
- Incremental results early and often
- Client can review current solution for suggested improvements
- Can accommodate scope changes between iterations
- Adapts to changing business conditions
- Easily engages the client
- Gives immediate feedback on the effect of solution changes
- Does not waste time on non-value added work
- Avoids all management issues in addressing change requests
- Does not waste time in planning uncertainty
- Provides maximum business value within the given time and cost constraints
|
|
|
 |
 |
 |
 |
|
 |
Agile practices proceed from iteration to iteration based on very limited specification of the solution.
Each iteration learns from the proceeding ones and redirects the next iteration in an attempt to
converge on an acceptable solution. At the discretion of the client an iteration may release a partial
solution.
|
 |
|
|
This practice greatly reduces complexity, because it allows the team to focus on one feature and
only one feature at a time. For example, one team is working on Feature #5 and that's the team's
only focus. They don't concern themselves about Features #3-8. It is the business analyst and project
manager who ensure the next feature in the backlog is truly the next priority, based on business
value and risk. Typically, high-risk components or core infrastructure pieces are built first, and then
everything else is prioritized based on business value.
|
 |
|
|
The traditional project management approach is a linear approach where you try to get it all done at
one time. You do a lot of very detailed planning at once upfront and then deliver it in what's known
as the 'Big Bang'. That industrial age thinking has spilled over from software development to other
projects as well. This is the heart of the difference between Agile and traditional project management. |
The 'Big Bang' now comes from the greater flexibility and collaboration APM provides. "Just
enough" planning is done up-front. As each increment of the system is built, the team gathers input
and learns from customer feedback. Since the customer sees and/or experiences a working prototype,
he or she is better able to refine or redefine requirements and describe to the team what the
organization really needs.
APM development is conducted collaboratively, with a small co-located team. This core team usually
consists of two developers who write
code in pairs (for quality control), the
customer/end-user, IT architect(s), a business
analyst and a project manager. The
work is accomplished through a series of
sessions where the team writes code,
then tests working modules of the system
and repeats the process. There is minimal
documentation as the team relies almost
exclusively on informal internal communication. |
 |
 |
| This differs from the traditional approach
where a considerable amount of time is
invested in planning and a significant
amount of requirements documentation
is produced. The Agile team identifies and prioritizes the features based on business value, and after
high-risk components of the system are produced, works on the highest value features first. This
approach works if the solution can be delivered incrementally to the customer. If this is not possible,
features still can be built incrementally and then integrated into the first release of the system. |
|
| Click here to read about the concepts covered in Scrum |