Project management is about practicing, initiating, planning, executing, controlling and closing the work of your team. It is about delivering the final product on a timely basis. Products are temporary, but business is permanent. If you want to run your business efficiently, it is necessary to have a PMT differing from product to product.
What is the Waterfall model?
The waterfall is a project management approach. It is called the waterfall approach as in this approach the project is completed in distinct stages and moves step by step like a fall. The final step is to release the project to customers. You have big plans for your project, but you execute it in a linearly assuming there won’t be any changes in the planned approach.
Take the traditional project management approach and apply it to the software development you will get a Waterfall. Waterfall project management approach is not an invention just a name given because of the methodology. There are other ways to manage a project like the Agile approach or Iterate approach.
Waterfall approach was first used in the manufacturing and construction industry as they cant iterate. Once you have built your bridge, you can’t go back to change your foundation. The software is well known for frequent changes. Waterfall approach doesn’t react well to frequent changes. Therefore has a bad reputation in the software industry.
Water method is a linear process where there are several phases. Each phase should begin and end on time. Stage 2 cannot start before Phase 1 is completed. Once you have finished a phase-only, then you can start the next phase.
Waterfall methodology sounds strict because the roots of this method started from its implementation in non-software industry. This system was built for the manufacturing industry out of necessity. You can’t undo a concrete foundation.
After looking at all these criteria; it is necessary to implement the waterfall system with proper planning. Each team member should be transparent on the requirement of the project and their role in the project.
All information related to the project must be thoroughly documented and distributed to everyone on the project. All this information must be carefully recorded and distributed to the team members involved in the project. Outline this information in a flowchart as shown below.
Understand the waterfall project starting with this template. This will act as the reference document for your team. This document is the guide for the creation of your product. So it has to be adequately followed for the desired results. Thorough documentation is a priority in a waterfall methodology. You need to document every step and every phase making sure that everyone is on the same page even after the sequential progression in the project.
Phases of a waterfall project:
The specific system varies somewhat from source to source. But it usually includes the following steps-
The first stage of the project “requirement,” where you need to gather comprehensive information about the requirements of the project. There are various ways to collect this information like interviews, questionnaires, interactive brainstorming. At the end of this phase, the project requirements should be precise. Your document should be ready to distribute to your team members.
Using the paper showing the elements, the team of software experts decides the overall procedure of the design of the final product. They directly don’t start coding, during this procedure they determine the programming language or hardware requirements. This shows that they establish a spec in the system design phase. The experts choose technology, create diagrams, and plan software architecture.
In the coding phase, your team tries to figure out how to solve problems and write code. Codes are typically implemented in small pieces. Programmers will use information from design phase to create a functional product. These codes are integrated at the end of this phase or the beginning of next.
Once the programming team has done all the coding, the QA team can begin with the screening of the product. Testers will find and report problems. If any severe problem arises, your project may have to go back to phase one.
This is the delivery phase. Your product is complete and at the delivery stage. In this stage, the code is deployed to the production environment and provide support.
Once you have delivered the product, the client will start using the product. Issues may arise, patches and updates may occur. Your team may need to address them. If any significant problem comes up you will have to start all over the back from phase one.
As you can see the Gantt chart below, it looks something similar to a waterfall. You will see that you spend 20-40 % of the time on requirements, 30-40% of the time in coding and rest of the time in testing and operations.
As you can observe phases on waterfall project cannot start before the previous phase has ended. The only problem while using waterfall project management technique is that you cannot assume the exact time required and software keeps changing.
So as each phase is dependent on each other once you are late in one phase the entire activity on the project is delayed.
Comparison between Waterfall and Agile techniques
Whatever methods you use change is not good. Change leads to additional scope, delay, and expenses. Agile is better as it reacts in an absorbing way to change. Agile minimizes the effects of change. Teams following Agile methodology are used to the changing culture. But if you look at the two methods carefully, you will see that both the methods are very similar to each other.
Once you start breaking down any workflow, you will get a set of activities that follow one another that resembles a waterfall. Treat waterfall like a smaller phase of a big project and you will end up with Agile.
Using Agile or Waterfall wholly depends on your client. Whatever your client is comfortable using becomes the method of project management. In waterfall projects, the client decides on zero iteration. While agile is quite the opposite, the client decides the number of iterations.
Agile can fit in the traditional approach only the point view changes. Treat each iteration a single phase instead of treating it like a single project.
The actual difference between waterfall and agile is that in the waterfall the client is fully engaged at the beginning of the project and withdraws the engagement after that. While in agile the client is continuously involved in the project.
This means that no organization follows any pure method. Agile and waterfall PMT depends on the work culture an organization follows. It also depends on how they execute the work. Maximum organizations follow the division method, where they divide the project into two parts. These parts are Waterfall milestone but work as per agile principles between those milestones.
Advantages of The Waterfall Model
- Extensive documentation – You can’t go back to the previous activity. Therefore, this requires extensive documentation from start to end of all event.
- Keeps training simple- Due to the extensive documentation, this method can ensure the success of your project even after any changes in the organization. You can quickly add a new team member in between of any project as it will be easy for him to understand. There is need of any Intuit of any absent programmer as his work is recorded in the documentation. New team members can refer to the documentation to speed up the project.
- Better time management by the team members- Everyone is aware in advance on what they will work. Therefore they can be assigned multiple projects at the same time.
- Easy to understand- Projects are easily divided into understandable and distinguished phases. As a result, the project management becomes very easy to understand even to non- developers.
- The client knows what to expect- Client knows in advance the time limit and cost of the project and can plant his future cash flow statement accordingly.
- Client input is not required- When it comes to after requirement stage client requirement is minimal. This means that you don’t have to wait to take the clients approval at every stage.
- Easy to measure- You can easily measure your progress by directly looking at the Gantt chart.
- Better design- During the design phase products have better unity as you know everything that has to be taken into account. You don’t have to do one feature at a time.
Disadvantages of The Waterfall Model
- No going back- Once you are done with the activity, it is tough to go back. You need to start from phase 1 to solve any error. This can be ruled out by extensive and proper planning.
- No room for error during requirement phase- Everything depends on the requirement of the stage. If you make any mistake, you bring doom to the project.
- Deadline creep-One activity is late rest all the events are late including the timeline for the project.
- QA too late to be useful- Testing is the phase at the end of the project. That means the developers cannot improve on how they write the code by the QA feedback.
- Bug ridden software-As the testing is done at the end of the project, most teams rush this department to deliver the project on time. This is just a short-term solution degrading the quality of the final product and creating long-term problems.
- Unexpected issues- Humans design the project and they surely can’t foresee any unexpected problem. But it is likely that every project may have to phase unexpected problem and it becomes tough to fix them.
Types of the project for which you should use waterfall
- When the requirements of the end product are fixed and time and money are in the variable position you should use waterfall.
- You estimate the work accurately
- You can’t afford to iterate. e.g., you are building a heart rate monitoring software.
- Projects of low risk, e.g., you are building a clone of something that already works.
When you should not use waterfall
- You are working on a project where the prototype is essential than quality.
- When you can’t assume what the final product should like.
- Where the client is confused about his exact requirements
- When the product is made for some industry that is changing rapidly.
You choose agile or waterfall it doesn’t de[end on you it depends on the type of customer you get. Make your project management choice wisely with thorough analysis. A correct project management choice will give a successful and error-free product at the end phase. Use a combination or single technique whatever suits your customer the best.
Which project management technique do you use? Let us know in the comment section below.