The Purpose of life is to go toward the freedom and drop all the fears of life. - Upanishdas
About Me
PMLOGY

Agile vs Waterfall: project management

agile-waterfall

Agile vs Waterfall: Project Management

What is waterfall?

The waterfall model is a sequential uni-directional step approach, in which progress of each phase of project life cycle is seen as flowing steadily downwards like a waterfall through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance. As this process is sequential, once a step has been completed, developers can’t go back to a previous step – not without scratching the whole project and starting from the beginning. There’s no room for change or error, so a project outcome and an extensive plan must be set in the beginning and then followed carefully.

What are the positive sides of Waterfall Model?

  1. Well Structured Processes: To manage project using waterfall model we need to have structured processes with clearly defined input and output of each process. There is no overlap of phases and processes, as they are in sequence. At the end of each project phase, a review takes place to check whether the project is on right track or not. Many a time it is too late to know that we are not on right track.
  2. Easy to understand: Being sequential processes with clearly defined output and responsibilities it is easier for the project team to understand the processes and expectation from them.
  3. Documentation: Because this model is based on well-defined structured process where every process need to have a clearly defined input therefore this method highly relies on extensive documentation of requirements, design, test cases etc. These documents can be used to support or improve the product in future.
  4. Defined Requirements: In waterfall projects starts with well documented requirements or the first phase defines the requirement in detail and baseline the same.
  5. Customer Expectation: With this methodology the client knows what to expect. They have the idea what is the size, cost, timeline of the project.

What are the negative sides of Waterfall Model?

  1. No matter how much effort you put in defining the processes, if human has to follow those they bring their own dimension of interpretation at the time of implementation.
  2. In regular business feedback and early feedback are the key for success. Due to this reason processes are iterative in nature at the implementation level.
  3. Once the project is in testing stage, it is very difficult if not impossible to go back and change something that was not well thought out in the previous stages of product development.
  4. This model is not suitable if requirement, technology, infrastructure, environment, productivity or any of these factors is unknown.
  5. More the uncertainties in the project more redundant this method is for the project.

What is Agile?

As the name goes Agile means flexibility, elasticity, bounciness. An approach to manage project which is responsive to the environmental factors. That is why agile planning is also called Adaptive planning. Processes in this approach are not sequential and fixed but iterative and empirical. Agile is not only incremental development approach but beyond that. This approach ensures incremental delivery, value driven delivery, priority driven delivery. This approach works well when the problem you are solving itself may change during the development. Agile project management is based on the value and principles. These values are principles are defined in agile manifesto. There are many methods which helps implementing this approaching for the project management. Some of these approaches are engineering focussed, some management focussed, some business requirement and some other risk focussed.

What are the positive sides of Agile?

  1. Continuous Improvement: Agile method encourages the feedback from team members and clients throughout the project. This feedback helps the team to learn from previous delivery and improve the product and processes.
  2. Improved trust within the team: Agile is also notable for emphasizing the importance of motivated individuals who need to be trusted to get the job done.
  3. Strong communication within the team: Agile highlights the importance of frequent communication and face-to-face interactions. Teams work together and people are able to take responsibility and own parts of the projects.
  4. Change is welcome: Agile encourages introducing and accepting the change even at the last stage if the product is going be ineffective or of least value without those changes.
  5. Continuous Customer Involvement: This address early feedback, product ownership by customer, correction at lessor cost, sense of team and playing together to win.
  6. Improved Quality: The testing at the end of each iteration ensures that the bugs are caught and taken care of in the development cycle. They won’t be found at the time of product release.
  7. Fast delivery: In this methodology the product is delivered much more quickly and successive iterations can be delivered frequently, at a consistent pace.

What are the negative sides of Agile?

I do not see any negative aspect of the Agile but negative aspects how agile is understood (misunderstood) by different stakeholders.

  1. Documentation is neglected: The Agile Manifesto prefers working software over comprehensive documentation, so some team members may feel like it’s less important to focus on documentation. While comprehensive documentation on its own does not lead to project success, Agile teams should find the right balance between documentation and discussion.
  2. Highly Skilled Team: Since the agile teams are small, so they need to be highly skilled in various areas. They must be comfortable with the adopted Agile methodology. Generally, highly skilled people like designation and they do not want to be part of delivery team but of management team.
  3. Generalized Skill Team: Every team member should be able to do everything needed in the project to make it successes. It is difficult to find these kind of people.
  4. Product owner is the Key: The project can easily get taken off track if the product owner is not clear what final outcome that he or she wants.
  5. Time commitment from developers: Agile is most successful when the development team is completely dedicated to the project. Active involvement and collaboration is required throughout the Agile process, which is more time consuming than a traditional approach. It also means that the developers need to commit to the entire duration of the project. Many a time it is challenging for the organization to balance commitment of team members between various other on-going projects.
  6. High Level Planning can be less concrete: Because of entire team’s focus on the delivery of immediate goal sometimes focus on the release date may not be there or extra iteration of work need to be done make a market release of the product. But this can be managed if senior management and release management is doing there planning based on regular input from agile team.

What are the similarities between Waterfall and Agile?

There are not many similarities between Waterfall and Agile. Agile was created with the opposite approach to Waterfall. However, they both have the same goal to deliver quality products efficiently on time.

What are the difference between Waterfall and Agile?

Waterfall

Agile

Sequential and Structured process

Yes

No

Flexibility

No

Yes

Defined Requirements before starting the project

Yes

No

Documentation of requirements are must

Yes

No

Deliver quality product

Yes

Yes

Best for those who want continuous improvements

No

Yes

Suited for situations where change is common

No

Yes

Big bang approach

Yes

No

Highly collaborative

No

Yes

Involves customers

No

Yes

When to use Waterfall and when to use Agile?

Waterfall methodology is recommended when:

  1. You have the complete picture of the final product.
  1. Requirements should be well known before developing the product.
  2. The project should be simple and the team has done it many time previously.
  3. When clients won’t have the ability to change the scope of the project once it has begun.
  4. The project should be done in an orderly and predictable manner.

Agile methodology is recommended when:

  1. The project is on new technology and there isn’t any clarity that how the final product will look.
  2. The clients and stakeholders have the ability to change the scope of the project.
  3. The team is highly skilled and adaptable to any kind of change and can think independently.
  4. Rapid deployment is the goal

Which One Is Better? Agile vs Waterfall

Question should be what is suitable for my project? Can I apply agile project management approach to all project?

It is not about better approach. Answer lies in what I have and what I can offer to afford as a customer. As a customer I want “quality product” “earliest possible” with “least cost” and “least involvement”.

In a project where requirements are not fully known or they are going to change, technology is not finalized, business environment and market condition can change, product is unknown it is not our choice that anything other than Agile is better so implement it. It is extremely difficult to do fixed cost, fixed time, fixed feature, fixed technology project in agile. This works only in waterfall but for that purpose those should be fixed.

Hybrid Model:

At high level of the program or project have waterfall. At implementation of the project have agile practices. You should have high level plan and goal to know and track the direction. But deliver those using agile methods.

References and Useful links

Save

Want to add something?

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *

 

Loading Disqus Comments ...
1 Shares
Share
Tweet
Share
+11
Pin