The purpose of this blog is to compare the traditional software development method with the most popular Agile methodology, and to find the difference between these two approaches to software engineering.
The main difference between traditional project management model and the Scrum framework is in the way the project is handled.
1.What is a project?
When we stop to consider the product of today`s information workers, we soon realize that nearly everything is project driven. In PMBOK (Project Management Body of Knowledge) the definition of a project is:
â€śA project is a temporary endeavor undertaken to create a unique product, service, or result.â€ť
The key to this definition is that a project is:
- Temporary meaning that it has a beginning and a predictable end.
- Unique speaking to the fact that a unique product, service or result that we are creating is meeting the requirements of our customers. We start a project when we want to create something new.
- Product, service or result. A project must produce something. That unique service, product or result is our deliverable.
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
Both Traditional Project Management and Agile have one thing in common and that is that they are the deliverables. The deliverable is what we are aiming for in both approaches. We are putting something in the customers’ hands that they will be able to use it successfully.
2. Project elements
When we look at the project as a whole, in traditional project management everything is about the aspects of our project: purpose, goal, deliverables, scope and risks involved in the project. All of these different aspects in traditional project management have to be addressed. Traditional project management is very heavy in documentation, upfront the beginning of the project. The whole idea for addressing upfront is because we have a body of stakeholders, customers, everything that may be affected by a decision or outcome of the project.
3. Triple constraints
The triple constraint theory, also called the Iron Triangle in project management, defines the three elements: scope, time and cost. They all measure essentially the same thing: a fixed budget, a fixed schedule or timeline, and a fixed set of expectations or deliverables. (Source:Â https://www.smartsheet.com/triple-constraint-triangle-theory)
They all come together to create quality delivery that is with the time and cost limit that the customer is willing to spend. We cannot affect one without affecting the others. If the customer changes the scope that doesn’t give us more time or money, that is affecting the quality.
4. Project Phases
Traditional Project Management defines five phases and in cases when the lifecycle provides a high-level view of the project, they are in fact the roadmap to accomplishing it.
- PHASE 1: PROJECT INITIATION
This phase usually begins with a business case. This is when the research has been done to see whether the project is possible and if it should be undertaken. Important stakeholders will do their analysis to help decide if the project is a â€śgo.â€ť
- PHASE 2: PROJECT PLANNING
This phase typically begins with setting goals. One of the most popular methods for setting goals is S.M.A.R.T. goals.
Specific â€“ To set specific goals, answer the following questions: who, what, where, when, which, and why.
Measurable â€“ Create criteria that you can use to measure the success of a goal.
Attainable â€“ Identify the most important goals and what it will take to achieve them.
Realistic â€“ You should be willing and able to work toward a particular goal.
Timely â€“ Create a timeframe to achieve the goal.
- PHASE 3: PROJECT EXECUTION
This is the phase where deliverables are developed and completed. This often feels like the meat of the project since a lot is happening during this time, like status reports and meetings, development updates and performance reports. A â€śkick-offâ€ť meeting usually marks the start of the Project Execution phase where the teams involved are informed of their responsibilities.
- PHASE 4: PROJECT PERFORMANCE/MONITORING
This phase is all about measuring project progression, performance and ensuring that everything happening aligns with the project management plan.
- PHASE 5: PROJECT CLOSURE
This phase represents the completed project. In this phase what went well in the projectÂ is evaluated and the project failures are identified. This is especially helpful to understand lessons learned so that improvements can be made for future projects.
Agile methodology is the other side of the coin.
5. What is Agile?
Agile is a group of development methods based on iterative and Incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.
In Agile we are evolving the deliverables. The customer may not have what they want as an end product but they know that they have a problem, they know that something needs to be done better. They know they need some help.
6. Agile Manifesto
In traditional project management, we have 75 processes that we follow. And this is before we know the deliverable. In Agile, itâ€™s not that tools and Techniques are not important they only need to be support for these individuals.
Instead of working software you can say Working deliverable. It is all about creating something to put in the customer’s hands. The Manifesto doesn’t say that we don’t document work, it says that we document after we created the deliverable.
In Agile we work daily with the customer. Itâ€™s more important to work with the customer, not just to sign a contract. We are working with the customer to understand their needs.
In traditional project management, we know what is the work that needs to be done for a couple of days/weeks. In Agile there is no plan. We are working with the customer, building with what is needed to fit their requirements.
7. Iterative and incremental development
Agile development environment is primarily created by iterative and incremental approach of development. It helps get the continuous feedback from the customer and other stakeholders. To understand the meaning of the Iterative and incremental letâ€™s go through three different approaches of making of Mona Lisa painting.
In the first approach, the complete work is divided into several pieces and then each piece is developed one by one. This is called an Incremental development approach. In the second approach, first the outline of the image is created on the basis of initial understanding of what should be done and then several refinements done in various steps, this is called Iterative development. The final approach, as you can see, is the combination of both of these. First the outline of the complete work is defined, then it was broken into several pieces and in each step these pieces developed with several refinements.
This approach of development facilitates end customer to have early deliveries which help him to provide valuable feedback in advance, so that at the end he gets the product which he really needed. This also helps the customer to launch the product in market at early stage and earn the profit at early stage while the development of the complete product is still ongoing. One of the main advantages to the project team from this iterative and incremental is that the focus on the quality remains throughout the project, as in every iteration, team analyze, develop, test and demonstrate working software.
8. What is Scrum â€“ Scrum roles
Agile is a framework of concepts. The one that is the most popular is Scrum.
It comes from the game rugby. Only one player owns the ball, but all the players are doing the tactic and the only purpose is to succeed.
When we do Scrum, everybody in the team is responsible for building the deliverables.
The fundamental element of Scrum is the Scrum Team, as seen here in its Organizational context. The Scrum Team is a small (usually between three and ten) group of people that provides useful Products and Results for Stakeholders. The Team is self-organizing and constantly trying to improve itself. The Team agrees to the amount of work it can do without undue influence from the Product Owner.
The most important role involved in Scrum is the Stakeholders, as the Stakeholders are the ones who have desires, wants, and needs, and are the reason the Team is developing the Product in the first place.
The most important person on the Scrum Team is the Product Owner (PO). The Product Owner guides the Team to build Products that satisfy the Stakeholders’ needs, wants, and desires. The Product Owner provides direction and goals for the Team, prioritizes what will be done, and orders the Backlog.
The Scrum Master’s responsibilities are to be a facilitator, moderator, and coach, with particular emphasis on helping the Team mature its self-organization. The Scrum Master manages the relationship between the Product Owner and the rest of the Team, and facilitates removal of Impediments for the Team.
9. Daily Scrum
When we use Scrum, every day we have a daily standup. This is the only meeting that the scrum team has while the customers are available. Each member of the Scrum team answers to three questions:
- What did I accomplish yesterday?
- What did I plan to accomplish today?
- What are my impediments?
This meeting is facilitated by the Scrum Master, but is only an update meeting, there is not any technical discussion here.
Traditional Project Management is very process driven, there is a team involved, but the team is focused on the documentation, development and building.
10. Different team approaches
When we compare Agile to Traditional Project Management, in the traditional teams we have a Project Manager who is responsible for the success of the project. The team members are chosen on the bases of their skills, capabilities and their knowledge. They all report to their Project manager. They are creating together the scope, cost and time baselines. The Project manager creates the Project plan that everybody follows it. Each individual in the team has certain activities he/she is assigned to. If one of the team members has only 5 tasks and those tasks are finished, then the team member is no longer needed. The work is finished when the deliverable is finished and there is no task left, then we are ready to show the customer the final product.
In Agile, on the other side, there are self-organizing and cross functional teams. There is no boss, Project Manager. The team as a whole makes the decision.
The Scrum Master who is a servant leader is there to assist the team. He helps when a team member needs help and when there are impediments. The team is provided with the power to choose, to work whatever they want to work, as long as it is working. Itâ€™s all about collaboration among the team. When one of the team members finishes with the work, he doesn’t leave, but instead he looks around and say – Who can I help?
11. Agile vs. Traditional Waterfall
Sequential development process where all required activities in the preceding phases are completed.
Software development method based on iterative and incremental development encouraging rapid and flexible responses to change Planning Implementation Testing Design Development.
Both approaches are extremely successful, both approaches have been used for many, many years. Agile and Waterfall are very different end products. Waterfall could be applied to almost all types of IT projects but both Agile and Scrum have their own restrictions based on the kind of project they are involved.
We cannot look in Traditional Project Management or Agile as competing approaches, itâ€™s like another tool in the tool box.
As we see, the difference between Scrum and Waterfall is significantly large. One method is based on the strict structure of the workflow, and the other provides lots of opportunities for flexible solutions.
Traditional project management works best for projects completed in a linear fashion and does not allow going back to a prior phase. Scrum is concerned with getting more work done faster.