The Waterfall model is the earliest Software Development Lifecycle approach that was used for software development, long before the Agile approach was embraced.
As the Waterfall Model illustrates the software development process in a linear sequential flow, it means that any phase in the development process begins only if the previous phase is complete. In this model, the phases do not overlap.
This way of working is quite different from the Agile one, as the main philosophy of Agile is centered around the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. In Agile, the software development phases overlap, as each iteration progresses.
Given this, one might think why not always use Agile, given that value is delivered faster.
There are certain types of projects which could be more successful using the Waterfall model or, why not, by combining Waterfall with Agile, to give us what?s most suitable for a specific project.
Some situations where the use of the Waterfall model is most appropriate are:
The organization is more traditional and prefers a linear process
The requirements are very well documented, clear, and unlikely to change
The technology is understood and is not dynamic, for example on a project consisting of building a website, there are already multiple coding languages that can be used and the project team can choose the appropriate one from the beginning
The project has ample resources, with the required expertise available to support the product
Although we are starting to see mass adoption of various Agile methodologies in all enterprises, even more, traditional ones, like public institutions and federal agencies, there are still many organizations that are slow to make the change. It is also very common for an organization to transition into more of a hybrid approach that combines aspects of both Agile and Waterfall.?
Waterfall is not the fastest way to work. Deliverable results will only show at the end of the development cycle, so it could take months or even years before the customer sees the final product, as well as proving hard to keep the development team engaged, given that the release process is not incremental. As Agile shortens the delivery time and makes it easy to gather feedback in the early stages, one successful recipe would be to use Waterfall with a spice of Agile.?
Let?s think of an example of a technical project, consisting of developing software. In this example let?s use a website for a public institution.
Some of the main reasons for using a combination of Waterfall and Agile models are:
In a public institution, the adoption of the Agile culture might prove problematic, as this kind of organization is heavily relying on defining the scope upfront and on a thorough paper-based approval process. Thus, using the Waterfall model, with some elements from Agile will prove to be more efficient.
It shortens design, analysis, and planning, but lets the organization define project frames including budget and time of delivery, compliance with standards, and enhancement collaboration.
The blending of waterfall and agile should occur at the beginning of the project, as both the customer and the team will start with this mindset from the beginning, not jeopardizing engagement. For example, in the Waterfall model all requirements must be defined and approved, and in the Agile – Scrum way, a product backlog must be prepared. A key success factor to blend these in a technical project is to define the customer journey upfront. In this way, the entire team can participate in this phase and engage with the customer from the start. Let?s say we agree with the customer to deliver a batch of requirements every 3 weeks. In a Waterfall world, we would have said that the requirements and design phases will be completed after delivering all batches. And we could do all this by adding spice from Agile, as iterations (batches) were used to deliver the requirements, keeping an Agile mindset inside the team.
Another way of combining Waterfall with Agile could be to do the planning, design, and requirements definition with Waterfall, but development and test in short sprints using Agile (Scrum). In this approach, the development team gets to keep working Agile, using iterations, and does not have to wait for the entire project to end in order to see the result of their work. This approach proves to increase the team output, as well as keep the customer involved, by providing feedback at the end of each development & testing iteration.
Most importantly, let?s not forget that customers want to see their products yesterday. In today’s competitive world, time to market is a key factor for success. Basically, our customers want the speed of agile, combined with the predictability of a thorough and traditional project schedule from Waterfall, that eases their anxiety in launching new products and services to an increasingly demanding customer base.?
Some think that these roles or positions if you will are one and the same. That a ScrumMaster can easily fill the role of a Project Manager and vice versa, however, a closer look reveals some large differences in mindset and execution. Let?s dig in.
Unlike a Project ?Manager? a ScrumMaster is a servant leader, not a manager. The ScrumMaster is responsible for ensuring that the project is carried out according to the agile framework and values.
On the other hand ? the Project manager?s duties are broader and not always clearly defined. Some responsibilities include: building and managing the team, managing the timeline, the scope, the budget, and risk. This diversity of tasks makes the manager?s focus a desired commodity for all stakeholders on the project.
Main Project Manager?s responsibilities
Managing the scope ? i.e. the total amount of work; defining all of the deliverables and the WBS (work breakdown structure). Understanding which tasks are within the scope and which are outside of the scope?s boundaries.
Managing the timeline ? ensuring that all tasks are started and completed on time, controlling and extending the task duration if necessary. Also ? taking care of tasks ordering and interdependencies.
Managing the resources (the budget) ? this is a complex process, involving: estimation of required resources, planning (procurement) of resources, and resource control/ monitoring ? how are they spent during the project lifecycle.
Managing the people (team) the Project Manager should always be helpful, honest, and transparent, and put the well being of his team ahead of his own. Also he should assist the team to achieve predetermined milestones.
Managing the risk can be abundant and very complex. It can negatively impact all three project components the budget, the timeline and the quality of the outcomes. The project manager should anticipate the risk, estimate the consequences and propose risk mitigation strategies.
The Project manager should also resolve issues that obstruct the team?s progress. He can do this by removing them himself, enlisting others to take care of them, rallying the team to overcome them, and/or introducing a change in policy or rules in the organization.
Main ScrumMaster responsibilities
The most important task of the ScrumMaster is to ensure that Scrum is well-practiced. He doesn?t have to conduct Scrum ceremonies but it helps. He engages with the team, connects with stakeholders, and, most importantly he is an example by living Agile thus actively proliferating them with the organization.
Another important duty is to organize and attend all Scrum ceremonies (daily Scrum meetings); he should carefully consider the scrum artifacts, and let the team optimize the process and their performance step by step in every subsequent sprint.
Also, an important duty is to build the capacity and agile maturity of all team members. It is important to improve their skills in using Scrum. If the ScrumMaster overlooks this, Scrum will not be applicable and will lose its power in effecting change as well as outcomes.
An advanced task of the ScrumMaster is to use Scrum to improve the creativity, learning, and abilities of the entire team. This is not an easy task and requires large support from senior management. And this is the responsibility that has the best chance of making a long-term and meaningful impact.
Soft Skills of Both roles
The successful ScrumMasters and Project Managers will always try to create a new management approach. It is well explained by the experts that the ScrumMaster should be the conscience of the whole team, and the Project Manager should be a leader.
Both of the roles are demanding and not easy. You should be patient, kind, passionate, hungry to learn, and to ask for support from others. If you want to become a ScrumMaster or Project Manager, adopt a curious mindset ? this will make your future role so much easier.
vs and Project Manager
Basically, the ScrumMaster?s duty is to improve the team’s effectiveness and productivity. This is opposite to the focus on managing the project which is done by the Project Manager. Other differences between the ScrumMaster and Project manager include (not an exhaustive list):
Assist the team to use Scrum efficiently, and not managing the team;
Remove impediments (of all types), instead of removing only difficulties tied to the project deliverables and timeline;
Provide help to others in the facilitation of the key Scrum phases, instead of leading the status updates and giving direction;
Concentrate on the team’s progress, instead of focusing on the project plan;
Hold the team together after the project, instead of working with a group of individuals for the duration of the project, and then working with others for the next project.
However, this is only a shortlist of differences. There are other interesting concepts to note, such as the roles and responsibilities of a typical Project Manager. They are split between the ScrumMaster, Product Owner, and Team Members, but that?s for another article.
The best project teams, whether practicing an agile development framework or not, work together. They are focused on what?s best for the team and the project. Whether ScrumMaster or Project Manager the main goal is to deliver a product experience that exceeds customer and market expectations.