Before going through how to use Agile in Project Management, let’s first briefly have high-level insight into Traditional Project Management and the Agile Project Management Philosophy.
Traditional Project Management Phases
Regardless of the scope, any project will follow a sequence of actions / Phases which will be controlled and managed. the typical project management process includes the following phases:
- project close
this is used as a roadmap to accomplish specific tasks, these phases define the project management lifecycle.
Yet, this structure is too general. A project usually has a number of internal stages within each phase. They can vary greatly depending on the scope of work, the team, the industry, and the project itself.
Traditional Project Management Methodologies
Based on the above-described classic framework, traditional methodologies take a step-by-step approach to project execution. Thus, the project goes through the initiation, planning, execution, and monitoring straight to its closure in consecutive stages.
Often called linear, this approach includes several internal phases that are sequential and executed in chronological order. Applied most commonly within the construction or manufacturing industry, where little or no changes are required at every stage, traditional project management has also found its application in software engineering.
It has been a dominant software development methodology “There are two essential steps common to all computer program developments, regardless of size or complexity. There is first an analysis step, followed second by a coding step … This straightforward implementation concept is in fact all that is required if the effort is sufficiently small and if the final product is to be operated by those who built it – as is typically done with computer programs for internal use.”
The Waterfall model has a strong emphasis on planning and specifications development, which takes up to 40 % of the project time and budget.
Another basic principle of this approach is the strict order of the project phases. A new project stage does not begin until the previous one is finished.
The method works well for clearly defined projects with a single deliverable and fixed deadline. The Waterfall approach requires thorough planning, extensive project documentation, and tight control over the development process. In theory, this should lead to on-time, on-budget delivery, low project risks, and predictable final results.
However, when applied to the actual software engineering process, the Waterfall method tends to be slow, costly, and inflexible due to numerous restrictions.
In many cases, its inability to adjust the product to the evolving market requirements often results in a huge waste of resources and eventual project failure.
Agile Project Management Philosophy
As opposed to a traditional approach, the Agile project management philosophy has been introduced as an attempt to make software engineering more flexible and efficient. It has quickly become the industry standard for project management. It is estimated that about 95 % of organizations have adopted Agile in one form or another. At the same time, there’s a lot of work left to make the practice mature.
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.”
The agile philosophy has come to be a universal and efficient new way of managing projects.
Agile methodologies take an iterative approach to software development. Unlike a straightforward linear Waterfall model, Agile projects consist of a number of smaller cycles – Sprints. Each one of them is a project in miniature: it has a backlog and consists of design, implementation, testing, and deployment stages within the pre-defined scope of work.
At the end of each sprint, a potentially shippable product increment is delivered. Thus, with every iteration new features are added to the product, which results in the gradual project growth. With the features being validated early in development, the chances of delivering a potentially failed product are significantly lower.
Prioritizing flexibility and rapid turnaround, the Agile approach offers the following benefits, according to recent research:
- Ability to manage the changing priorities (87%)
- Increased team productivity through daily task allocation (84%)
- Better project visibility due to the simple planning system (82%)
Let’s summarize the main Agile aspects:
Flexibility: The scope of work may change according to new requirements.
Work breakdown: The project consists of small cycles (known as Sprints in Scrum).
Value of teamwork: The team members work closely together and have a clear vision of their responsibilities.
Iterative improvements: There is a frequent reassessment of the work done within a cycle to make the final product better.
Cooperation with a client: A customer is closely engaged in the development and can change the requirements or accept the team’s suggestions.
Agile Frameworks, Practices, and Methodologies
Agile is an umbrella term for a vast variety of methodologies and techniques, that share the principles and values described above. Each of them has its own areas of use and distinctive features. The most popular frameworks and practices are Scrum, Kanban, Hybrid, Lean, Bimodal, XP, and Crystal.