Waterfall vs. Pull Processes

From apppm
(Difference between revisions)
Jump to: navigation, search
(Waterfall Process)
(Waterfall Process)
Line 54: Line 54:
 
'''Requirements'''
 
'''Requirements'''
  
Requirements: The first phase involves understanding what need to be design and what is its function, purpose etc. Here, the specifications of the input and output or the final product are studied and marked.
+
Firstly, the project team need an understanding of the project's function, purpose etc, the specifications of the input and output of the final product or service are studied and marked.
  
 
'''Feasibility'''
 
'''Feasibility'''
 +
In the feasibility phase, the target is about finding out all the potential problems. The problems should be evaluated and analyzed and considered for the  decision making process. 
  
 
'''Planning'''
 
'''Planning'''
 +
When the boundary conditions are clear and all parameters marked out, the project team can begin with the planning phase. In this phase all the next steps are described in detail, and are linked to each other. The team leader is pushing the future tasks to the team members.
  
 
'''Design'''
 
'''Design'''
 
+
The requirement specification is used to transfer the gathered date into a system design. At the end of this phase the members should know how the product looks like.  
System Design: The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The software code to be written in the next stage is created now.
+
  
 
'''Construct'''
 
'''Construct'''
  
Implementation: With inputs from system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality which is referred to as Unit Testing.
+
With the input of the last phase, the system design is implemented to the product - the product or service is constructed.  
Deployment of System: Once the functional and non-functional testing is done, the product is deployed in the customer environment or released into the market.
+
  
 
'''Test'''
 
'''Test'''
  
Integration and Testing: All the units developed in the implementation phase are integrated into a system after testing of each unit. The software designed, needs to go through constant software testing to find out if there are any flaw or errors. Testing is done so that the client does not face any problem during the installation of the software.
+
After the construction, all the parts have to be tested, so that the customer does not face any trouble.  
  
 
'''Turnover'''
 
'''Turnover'''
Maintenance: This step occurs after installation, and involves making modifications to the system or an individual component to alter attributes or improve performance.These modifications arise either due to change requests initiated by the customer, or defects uncovered during live use of the system. Client is provided with regular maintenance and support for the developed software.
+
Once the testing is done, the product is released into the market or deployed in the customer environment. After the release it is possible to make modifications to the product/service/system.
  
-> Push
 
 
[[File:Push Process.png|thumb|Push Process]]
 
[[File:Push Process.png|thumb|Push Process]]
 +
 +
With the waterfall model, the different sequences and the sequential relationship in mind, it is important to know that in this flow of processes, the tasks are pushed to the project team members by the team leader. Although it's resulting in a higher amount of workload, the tasks are handled step-by-step, even when the result is not used in the next phase anymore.
  
 
==Pros==
 
==Pros==

Revision as of 16:54, 26 February 2018

There are many different methodologies of project management, all of them are defined by different principles and processes. A traditional, sequential methodology, is the waterfall model. Within this model, the tasks of the project plan are sequenced and conducted in a linear way, one task must be completed before the next one begins - the process is smooth and continuous, like a waterfall. Therefore, this model is one of the simplest methods. However, the pull process-based methodologies are used to create the whole project plan more efficient and effective, it was created to eliminate confounding factors within the project and to avoid aimless work. Hence, the pull processes are used in the management style of Lean Project Management, typical pull processes can be find in the Scrum and Kanban methodologies. This article provides an introduction to the waterfall methodology, to understand the processes within a project plan in a better way. However, the article provides a comparison of the waterfall process (push process) and the pull process. Therefore, no other methodologies e.g. Scrum and Kanban are explained. For the comparison of the two different processes are pros and cons described and the relevance for the practical usage demonstrated.


Contents

Importance for Project Management

A project is divided in several phases (except the single-phase project), and five project groups.


1. Initiating Process Group:Those processes performed to define a new project or a new phase of an existing project by obtaining authorization to start the project or phase.

2. Planning Process Group: Those processes required to establish the scope of the project, refine the objectives, and define the course of action required to attain the objectives that the project was undertaken to achieve.

3. Executing Process Group: Those processes performed to complete the work defined in the project management plan to satisfy the project specifications.

4. Monitoring and Controlling Process Group: Those processes required to track, review, and regulate the progress and performance of the project; identify any areas in which changes to the plan are required; and initiate the corresponding changes.

5. Closing Process Group: Those processes performed to finalize all activities across all Process Groups to formally close the project or phase.


The project manager has to combine those phases into a flow and take into account the product or service, his team and the customer. To establish a real customer value the project should set up a scope baseline control, build a communication plan to improve the information flow, asses stakeholder needs and get the commitment of the internal stakeholder. As a result, there are many factors which have to be intertwine to each other. Thus, project managers are inclined to overlook something at the beginning of the project and this is when project wastes start building. It is important to align with the customers to establish the customer value, but if the customer is deflect the project team members it will be end in scope creep. As an interim conclusion, the project planning has to consider a lot of things simultaneously, but it is also very important to ponder in which way and rate the steps are executed.

Impact of Variable Based on Project Time

A project life cycle displays typically four characteristics:


1. The costs and staffing level starts at the beginning of the project low, increase when the work is carried out and decrease quickly when the project is going to close.

2. Not all projects describe a typical cost and staffing curve, they may require resources early in its life cycle and therefore higher expenditures.

3. A project starts with a high amount of risk and uncertainty and run low during the ongoing life cycle.

4. The influence to the final product/service starts on an high level with low costs. At the beginning of the cycle the vision can be adjust rapidly and economically, changes at the end of the project will cause high expenses.


With this description of the characteristics of a project life cycle, we can have a look to the different life cycles, which are designed for different purposes. The main difference of the waterfall model and the pull processes is the influence of the stakeholder and the degree of flexibility. Adaptive life cycles keep stakeholders in the loop and let them influence the project in a higher degree than a predictive life cycle (waterfall). Since, the project plan within a adaptive life cycle is more flexible the costs of changes are lower.

The importance to think about the way how to execute the project and how flexible and influenceable it should be is enormous. Therefore, the following chapters will provide some clarity about the choose of process styles.

Waterfall Process

The waterfall model (also known as predictive life cycle or fully plan-driven) is made of a waterfall process, which is defined by sequential relationships. A phase, consisting generally all five process groups, starts only when the previous phase is complete. This approach reduces uncertainty within the project life cycle, but it requests a high amount of tasks. As a result, this process is defined by a huge workload. In addition, the project scope, and the time and the cost required to deliver that scope, are determined at the beginning of the project life cycle. Therefore, the project is inflexible and changes are related to high costs. The waterfall model is preferred when the product or service to be delivered is well understood and the following processes describe the waterfall model.

Sequential relationship


The waterfall sequential model

Requirements

Firstly, the project team need an understanding of the project's function, purpose etc, the specifications of the input and output of the final product or service are studied and marked.

Feasibility In the feasibility phase, the target is about finding out all the potential problems. The problems should be evaluated and analyzed and considered for the decision making process.

Planning When the boundary conditions are clear and all parameters marked out, the project team can begin with the planning phase. In this phase all the next steps are described in detail, and are linked to each other. The team leader is pushing the future tasks to the team members.

Design The requirement specification is used to transfer the gathered date into a system design. At the end of this phase the members should know how the product looks like.

Construct

With the input of the last phase, the system design is implemented to the product - the product or service is constructed.

Test

After the construction, all the parts have to be tested, so that the customer does not face any trouble.

Turnover Once the testing is done, the product is released into the market or deployed in the customer environment. After the release it is possible to make modifications to the product/service/system.

Push Process

With the waterfall model, the different sequences and the sequential relationship in mind, it is important to know that in this flow of processes, the tasks are pushed to the project team members by the team leader. Although it's resulting in a higher amount of workload, the tasks are handled step-by-step, even when the result is not used in the next phase anymore.

Pros

Developers and customers agree on what will be delivered early in the development lifecycle. This makes planning and designing more straightforward. Progress is more easily measured, as the full scope of the work is known in advance. Throughout the development effort, it’s possible for various members of the team to be involved or to continue with other work, depending on the active phase of the project. For example, business analysts can learn about and document what needs to be done, while the developers are working on other projects. Testers can prepare test scripts from requirements documentation while coding is underway. Except for reviews, approvals, status meetings, etc., a customer presence is not strictly required after the requirements phase. Because design is completed early in the development lifecycle, this approach lends itself to projects where multiple software components must be designed (sometimes in parallel) for integration with external systems. Finally, the software can be designed completely and more carefully, based upon a more complete understanding of all software deliverables. This provides a better software design with less likelihood of the “piecemeal effect,” a development phenomenon that can occur as pieces of code are defined and subsequently added to an application where they may or may not fit well.

Cons

Here are some issues we have encountered using a pure Waterfall approach: One area which almost always falls short is the effectiveness of requirements. Gathering and documenting requirements in a way that is meaningful to a customer is often the most difficult part of software development, in my opinion. Customers are sometimes intimidated by details, and specific details, provided early in the project, are required with this approach. In addition, customers are not always able to visualize an application from a requirements document. Wireframes and mockups can help, but there’s no question that most end users have some difficulty putting these elements together with written requirements to arrive at a good picture of what they will be getting. Another potential drawback of pure Waterfall development is the possibility that the customer will be dissatisfied with their delivered software product. As all deliverables are based upon documented requirements, a customer may not see what will be delivered until it’s almost finished. By that time, changes can be difficult (and costly) to implement.

Pull Process

Overlapping

LEAN Overview - Define Value - Map Value Stream - Create Flow - Establish Pull - Pursuit Perfection

"Let the customer pull value from the project team" Not just the customer is "pulling"-> (Der nachfolgende Schritt gibt den Impuls wann es weiter geht)

Kanban + Scrum

By adding out of scope functionalities, you can expect that it will impact negatively your project triple constraint. If you make more work than required at a certain time, it will be pilled in waiting to be expedited to the next step. You should also avoid here to execute project management activities in a batch. Indeed if there is any product change request then you would end up with obsolescence and therefore waste.

Pull Process

The challenge here is to avoid delivering value before the customer request it. Also you should not provide to the customer more than the agreed initial scope. In manufacturing, we let the customer pulling the flow by means of a Kanban system. Kanban allows the implementation of a just-in-time system. It uses cards to signal the need for an item by triggering the movement, production, or supply of a unit.

Unlike a “push” system, where work is given to a person and put onto a massive “to-do” list, pull systems allow the person doing the work to pull in tasks as they are ready. This prevents people from feeling overloaded and forces teams to prioritize. This means that project managers and team members can focus on the right tasks at the right times while reducing wasted time or effort. Kanban control systems can significantly increase productivity and speed up task delivery.

The purpose of pull planning is to design a project-based production system in conformance with lean principles. Like all aspects of Last Planner, it is a collaborative approach that includes those who are directly responsible for supervising the work on the project. People mistake merely scheduling a phase of work from the end working backwards for the intent of pull planning. One of the keys to success in designing a production system based on lean principles is to get all of the work experts who are supervising the work, we call them last planners, to engage with each other to collaboratively work out a plan for the phase that includes the best of the alternatives available to them. Facilitating that conversation can be a challenge if you aren’t starting out with the right question. What question?

Pros

It supports the continuous flow of work

Work is done as a team

There is a clear indication of state of work

Work in progress is limited for each status

There is a lesser burden on individual backlog

It allows better planning and prioritization of work

It allows improved continuous delivery

Kanban system implements the pull model for continuous delivery by eliminating the waste and focusing on continuous improvement.

Cons

Waterfall vs. Pull

Summary pros cons. Workload image

Push vs. Pull workload

Annotated Bibliography

References

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox