One of the first decisions a project manager working on a project usually makes is which development methodology hey should use. This topic is heavily discussed and is very essential to the project. A definition of development methodology is in order; simply put, it’s a way of categorizing the work of software development. There are two basic and more popular methodologies which I will discuss throughout this paper. These are waterfall methodology, which may also be known as the “traditional approach”. The second s the agile methodology which is a type of Rapid Application Development and is also more recent than waterfall and is often implemented using Scrum. Both have been used in project management for a long time and both have their own pros and cons.
The PMOK guide is a standard which is recognized for good practices in project management. It is mistaken that the PMBOK is just another aspect of the waterfall process, this isn’t the case. PMBOK is a manual of best practices for project management. The guide provides details of 42 processes that fall into five groups: Initiating, Planning, Executing, Monitoring and Controlling and Closing. Waterfall is a methodology with a sequence of events such as: Gathering and documenting requirements, design, code and unit test, perform system testing, perform user acceptance testing, dix any issues and deliver the finished product. In a typical waterfall development project, all of these represents a distinct state of development, each state generally finishes prior to the next one beginning. There is also a stage gate between each, for example, requirements must be reviewed and approved by the client before the design can begin.
There are many several to the waterfall approach these include, project managers and customers agree on what will be delivered early in the development lifecycle. This of course makes planning and designing easier. The progress can be easily measured, as the full scope of work is known in advance. Waterfall models typically encourage teamwork, various members of the team will be involved and continue to work with each other. Other than reviews, approvals, status meetings, etc., the customers presence is not needed throughout the process. Based on the fact that the design is completed early in the waterfall model, this approach lands itself projects where multiple software components must be designed for integration with external systems.
The waterfall methodology relies heavily on initial requirements, however if these requirements are faulty in any way the project will fail. If a error is found, or there are corrections that needs to be made, the project must start over with all new code. The fact that the product is not tested until the end this means if there are any bugs which are not found this could lead to a failed project. The last con would be the fact that the plan does not take into consideration the clients evolving needs. If the client realizes that they need more of the product than initially thought and demand a change this will impact the time of the project as well as the budget. With all this one brings the question when you should use waterfall methodology, this methodology should be used when there is a clear picture of what the final product will be. When the customer won’t have the ability to change the scope of the project once it has started. The methodology can also be used when definition, not speed is the key to success.
Agile came about with the aim to fix some of the disadvantages listed above. Instead of sequential design process, the agile methodology follows an incremental approach. With this approach project managers start off with a simplistic project design, then begin to work on small modules. This work is done in weekly or monthly sprints, at the end of each sprint, project priorities are evaluated, and tests are run. These sprints allow for bugs to be discovered, and customer feedback to be incorporated into the design before the next sprint is run. The process, with its lack of initial design and steps, is often criticized for its collaborative nature that focuses on principles rather than process. Agile methodologies allow for changing requirements over time by using cross-functional teams- incorporating planners, designers, developers and testers-which work on successive aspects of the product over fixed time frames.
As with the waterfall process agile has both advantages and disadvantages, these include, closer collaboration between project managers and the business, the software is delivered quicker and successive iterations can be delivered frequently and at a constant pace. Most changes to requirements can be incorporated at any point of the project, even if it is later stages in development. Agile provides the opportunity for ongoing improvement for live systems. The testing at the end of each sprint ensures that bugs are caught and addressed in the development cycle. A few disadvantages include the fact that agile methodologies are often harder to understand than waterfall methodologies. When agile is implemented poorly there can be extra inefficiencies introduced in large organizations. As the initial project doesn’t have a definitive plan, the final product can be fairly different than what was initially intended. The agile methodology can be used when there is a need for rapid production is more important than the quality of the product. The customer will be able to change the scope of the project. Agile can be used when here isn’t a clear idea of what he final product should look like or when the product is intended for a business with rapidly changing standards.
Inconclusion I will discuss the numerous factors to take into consideration when choosing between waterfall and agile methodologies. We must take into consideration the projects traits and factors which are dependent on the client’s needs and the kind of product needed. We must consider the customers availability, the scope, feature prioritization, the team, funding as well as the aimed outcome. For example, if the project requires the customers involvement only at millstones you can use a waterfall model, if the customer prefers to be available throughout the project then a agile would be preferred. These factors are not weighted instead access and depending on what the project circumstances are then one can pick between waterfall and agile. Once you decided which basic methodology to utilize, we can further finalize the process to best fit the project goals. Ultimately, although the way in which we do our project is important, delivering a solid and maintainable product that satisfies our customer is what really counts.
Schwalbe, K. (2016). Information Technology Project Management. (8th Ed.). Boston, MA: Cengage Learning.
Digital, M. (2017, March 28). Agile vs Waterfall – Comparing project management methods. Retrieved from https://manifesto.co.uk/agile-vs-waterfall-comparing-project-management-methodologies/
Waterfall vs. Agile: Which Methodology is Right for Your Project? (2017, August 14). Retrieved from https://www.seguetech.com/waterfall-vs-agile-methodology/
Agile & Waterfall Methodologies – A Side-By-Side Comparison. (n.d.). Retrieved from http://www.base36.com/2012/12/agile-waterfall-methodologies-a-side-by-side-comparison/
Learning. (n.d.). Retrieved from https://www.pmi.org/learning/library/agile-project-management-pmbok-waterfall-7042