Search

4 Tips To Become A Better Scrum Product Owner

A Scrum Product Owner is a person whose role in the project is to coordinate between the customer and the development team in the company. He/she needs to ensure that all the requirements mentioned by the stakeholder are implemented in the final product. An efficient Scrum Product Owner may or may not be proficient in the business aspects of the project but, he/she will be an expert in the various techniques of Agile methodology. There are various methods by which you can become efficient in Scrum Product Owner. They are: 1) Be available to the team A Scrum Product Owner needs to be available to his/her team as and when required. Since the Product Owner is the person who knows the requirements of the stakeholder inside out, they need to be available to the development team in order to clear their queries about the product. You also need to tread cautiously in certain cases. At times, the team becomes entirely dependent on the Scrum Product Owner. This can be dangerous as the team becomes incapable of carrying out even minute tasks in the absence of the Product Owner. Hence, ensure that you are available to your team within reason and do not spoon-feed them at all times. Ensure that you keep your team motivated and encourage them to take up new tasks. 2) Vision for the Product By being prepared, you have won half the battle. A Scrum Product Owner needs to have a clear vision on the various aspects of the product. They play a pivotal role in building the structure of the product. This includes preparing the various modules of the product, understanding the region where the product will be used, requirements of the customer. If these requirements are planned in the beginning of the project, it could save a lot of time in the later stage and ensure that the project takes the required form towards the final stages of the project. Any Product Owner worth his salt will know the entire project inside out. Apart from the requirements of customers, this also includes the business side of things such as the knowledge about the market for the product. This will ensure that they are in a position to give an informed feedback about any query about the product that the development team might have. 3) Augment Business value One of the main roles of a Scrum Product Owner is to define the value for a particular product. The definition should signify what value it gives to the stakeholders and other parties involved. Once the value of the product is defined, the Product Owner needs to identify the features of the product that will give the maximum value. This task becomes easier if the product owner has a thorough knowledge of the market and the needs of a customer. After assessing all these factors involved, the Scrum Product Owner should be able to convert the value of each feature into a monetary value. This practice has many advantages such as – the team will be able to understand how their contribution to the project is going to have an impact on the business, the top brass of the organisation will be contented knowing that the teams are giving more importance to tasks that provide maximum value to their business and the stakeholders will also be supportive of the decisions taken by the Product Owner as they are aware of values and constraints involved. 4) Tolerant Individual A good Scrum Product Owner understands the various processes involved in product development. They understand that the entire process cannot be completed in a day’s time and each process can be completed in the duration it is assigned. They also work together with the teams in order to make major changes to the product. One of the most important characteristics of the Scrum Product Owner is that they keep their cool when they encounter a problem they knew they could have avoided altogether. This is primarily because they are prepared to tackle that issue. He/she also holds sprint sessions as per the schedule in order to track progress and to maintain a good communication with the team. If you feel the need of a formal CSPO training in order to improve your skills as a Scrum Product Owner, join a certified Scrum product owner certification online or a certified Scrum product owner training classroom course of your liking. A CSPO certification could also lead to better opportunities at reputed organizations.

4 Tips To Become A Better Scrum Product Owner

1K
4 Tips To Become A Better Scrum Product Owner

A Scrum Product Owner is a person whose role in the project is to coordinate between the customer and the development team in the company. He/she needs to ensure that all the requirements mentioned by the stakeholder are implemented in the final product. An efficient Scrum Product Owner may or may not be proficient in the business aspects of the project but, he/she will be an expert in the various techniques of Agile methodology. There are various methods by which you can become efficient in Scrum Product Owner. They are:

1) Be available to the team

A Scrum Product Owner needs to be available to his/her team as and when required. Since the Product Owner is the person who knows the requirements of the stakeholder inside out, they need to be available to the development team in order to clear their queries about the product. You also need to tread cautiously in certain cases. At times, the team becomes entirely dependent on the Scrum Product Owner. This can be dangerous as the team becomes incapable of carrying out even minute tasks in the absence of the Product Owner. Hence, ensure that you are available to your team within reason and do not spoon-feed them at all times. Ensure that you keep your team motivated and encourage them to take up new tasks.

2) Vision for the Product

By being prepared, you have won half the battle. A Scrum Product Owner needs to have a clear vision on the various aspects of the product. They play a pivotal role in building the structure of the product. This includes preparing the various modules of the product, understanding the region where the product will be used, requirements of the customer. If these requirements are planned in the beginning of the project, it could save a lot of time in the later stage and ensure that the project takes the required form towards the final stages of the project. Any Product Owner worth his salt will know the entire project inside out. Apart from the requirements of customers, this also includes the business side of things such as the knowledge about the market for the product. This will ensure that they are in a position to give an informed feedback about any query about the product that the development team might have.

3) Augment Business value

One of the main roles of a Scrum Product Owner is to define the value for a particular product. The definition should signify what value it gives to the stakeholders and other parties involved. Once the value of the product is defined, the Product Owner needs to identify the features of the product that will give the maximum value. This task becomes easier if the product owner has a thorough knowledge of the market and the needs of a customer. After assessing all these factors involved, the Scrum Product Owner should be able to convert the value of each feature into a monetary value. This practice has many advantages such as – the team will be able to understand how their contribution to the project is going to have an impact on the business, the top brass of the organisation will be contented knowing that the teams are giving more importance to tasks that provide maximum value to their business and the stakeholders will also be supportive of the decisions taken by the Product Owner as they are aware of values and constraints involved.

4) Tolerant Individual

A good Scrum Product Owner understands the various processes involved in product development. They understand that the entire process cannot be completed in a day’s time and each process can be completed in the duration it is assigned. They also work together with the teams in order to make major changes to the product. One of the most important characteristics of the Scrum Product Owner is that they keep their cool when they encounter a problem they knew they could have avoided altogether. This is primarily because they are prepared to tackle that issue. He/she also holds sprint sessions as per the schedule in order to track progress and to maintain a good communication with the team.

If you feel the need of a formal CSPO training in order to improve your skills as a Scrum Product Owner, join a certified Scrum product owner certification online or a certified Scrum product owner training classroom course of your liking. A CSPO certification could also lead to better opportunities at reputed organizations.

KnowledgeHut

KnowledgeHut

Author

KnowledgeHut is an outcome-focused global ed-tech company. We help organizations and professionals unlock excellence through skills development. We offer training solutions under the people and process, data science, full-stack development, cybersecurity, future technologies and digital transformation verticals.
Website : https://www.knowledgehut.com

Join the Discussion

Your email address will not be published. Required fields are marked *

1 comments

Bradly Cummiskey 02 Feb 2017

I used to be recommended this website via my cousin. I am not certain whether or not this put up is written by means of him as no one else understand such special about my problem. You're amazing! Thank you!

Suggested Blogs

Why CSPO Certification Is Important For Your Career

Introduction: This article looks at how and why the CSPO® Certification is increasingly becoming important for today’s Product Owner (PO). The article briefly discusses on the responsibilities of the PO, how the role is becoming mandatory within the organization in today's Agile landscape, what makes a great PO and about the CSPO Certification.Who is a Product OwnerThe Product Owner is a member of the Product Management / Business team who works closely with and is a part of the Agile team throughout the Sprints/Iterations. The responsibilities of a Product Owner(PO) spans across the aspects of People, Product and Process.PeopleThe PO is a conduit between Business and Engineering teams, acting as the “Voice of the Customer” and “Voice of the Business” to the teams,Is one of the members to create the Product vision and constantly communicates the same to the teams, and Is able to interact and communicate well with all stakeholders (Customer, Engineering , Sales, Marketing, Support etc.)ProductDefines and maintains the team’s Product backlog, Can answer “Why” a requirement has found a place in the product backlog, “Why” it is prioritized and “Why” the Customer wants the features, Can provide insights into what customer problem the requirements aim to resolve, Can provide Customer Journey Maps, User Personas and Real Life Examples, and Can determine the value that the product delivers to stakeholders and identify which product backlog items would deliver the most value.ProcessPrioritizes the product backlog and is able to provide the reasons and justification of prioritization to the teams, Is part of the regular Product Backlog refinements to refine User stories and Acceptance Criteria, Is available to the team throughout the iteration and provides continuous feedback, Seeks continuous feedback from Customers, and Is able to review the features and approve User Stories once they are completed.Significance of the PO roleTraditionally the Business/Product Management teams have suffered with constant shortage of time and conflicting priorities between dedicating time for Engineering teams and Customer facing responsibilities. Usually, the Customer facing responsibilities understandably end up as the higher priority,   leaving very little time for the teams.Earlier, the time dedicated by the Product Manager to Engineering teams was very little and elusive, sometimes limited to only email interactions. The Business teams were located at the customer sites and used to visit the Engineering teams occasionally, interacting with them through email or phone calls. As a result, the product and productivity suffered immensely.With the advent of Scaled Agile Frameworks and industry wide adoption of Agile, the role of the Product Owner has been laid out as a mandate and demands the increase of manpower in Business teams. Dedicated Product Owners are becoming increasingly indispensable and significant within teams. The role of the Product Owner role has come as a big relief for Engineering teams, because they are constantly in touch with the Business stakeholders as well as the team, and can smoothen and streamline communication channels.POs are often co-located with the Engineering teams, attending Daily (Stand up) Meetings, Refinement meetings, Sprint Review, Demos etc. in person with the team. They are also available anytime for quick feedback and queries doing away with time-zone difference and delays. The POs closely work with their Customer facing counterparts in the various customer locations, serving as the liaison between Business Teams and Engineering teams.The PO ‘s role is key for the success of the Agile way of working. It has become a “Must Have” role within the Agile landscape rather than a “Good to have” role. This has created a good demand for the PO role in the Software Industry. With the surging demand for POs in the industry, there are many professionals taking up the discipline of Product Management.  There are professionals from other functions like QA/Project Management/ Development etc. moving into the Product Management discipline as well.Who makes a “Great” PO?Although a PO satisfies all the roles and responsibilities required of his/her role, there are some traits and characteristics that set apart a great PO from the crowd.A great PO has conviction in the Product Vision and knows the priorities of the Business very well, and is able to articulate the same to the Engineering teams. Shows commitment in completing the team’s goals by providing early and timely feedback. A great PO is excellent in communication, able to understand the nuances of the various stakeholders and speaks in each one’s language (Customer, Engineering, Sales, Marketing, Support etc.) Does not take sides but does what is right for the given situation and for the Customers. Is able to say “No” and has the reasons for it.Is not a task master who dictates to the team but a great Influencer who has the answers to “what has to be done” and “why it has to be done”.   Trusts the team to know best on “How” things will be implemented. Negotiates well with the team for the Business but is fair in all interactions with the team winning the team’s trust. Is always curious in terms of the product implementation but does not interfere in the team’s approach of building the product.To really excel at the job, the PO has to constantly upskill and sharpen the tools he/she has to offer. The PO is required to have keen knowledge of the various practices and techniques that are being used by his/her peers in the industry, in order to stay ahead of the competition. The PO needs to be part of a “Community of Practice”, grow his/her network outside the organization and be clued into all the relevant trends in the industry.CSPO CertificationWith the growing demand for the PO role in the market, the Industry naturally creates ways to benchmark standards, uphold quality and nourish promising talent. The CSPO Certification is one such mark of standard and quality. It equips the Product Owner to become better at the job and helps certified individuals to stand out in the crowd. The CSPO course and the CSPO community offers the right environment for the Product Owner to excel in his/her job. The curriculum of the CSPO course is outlined below for your reference.ContentsScrum Basics Understand the Scrum Framework and workflow so that the PO   Agile Principles and Scrum Values Roles and Responsibilities Product Owner role in detail Scrum Master role at high level Team role at high level Product Vision Importance of Product Vision Creating the Product Vision Just enough preparations before creating the Product Vision Qualities of Product Vision Relationship between Product Vision and Product Road Map Estimation Estimation Levels and Techniques Accuracy is more desirable than Precision in Agile Estimation What can go wrong with Estimation   Difference between Estimating and Committing Product Backlog   Understand what Product Backlog is and is not Product Backlog Grooming Prioritization Importance and Benefits of Prioritizing Product Backlog Why everything cannot be Mandatory or Highest Priority Who should Prioritize Prioritization based on Multiple Factors Applying formal approaches to Prioritization   Giving leeway to teams to sequence work after prioritization Release Management Goal Iterative and collaborative Release Planning Quality and Technical Debt Releasing Software early and frequently Measuring velocity and Release Burndown chart Forecasting future releases Sprints Product Owner’s role in Scrum Meetings Collaboration between PO and Scrum Team, between PO and Scrum Master Team Commitment Understand why Sprints are Timeboxed and Protected from other distractions Concept of sustainable paceCareer Prospects and GrowthExisting POsFor people who are already wearing the Product Owner’s hat, the CSPO certification is like one more feather in their resume. Going through this course and certification will fine-tune their skills and help add multiple tools in their toolbox.Aspiring POsIn certain organizations, there might be team members exhibiting and playing the roles and responsibilities of a Product Owner without the role title. They would have acquired all the necessary skill-sets but not the formal official title yet. By attending the CSPO course and earning the CSPO certification they convey their readiness to play the role; and this gives the thrust necessary for their formal recognition into a Product owner’s role.Salary AspectsThe CSPO certification has global recognition and so will result in an increase in the pay package for a certified professional PO.What next for an accomplished CSPO?An accomplished CSPO can further his/her career prospects by taking up the Advanced CSPO course and certification. It will set the stage for the product owner to progress in their career path and play the role in a wider scope. Depending on the Organization type and structure it could be the role of a Product Manager, Product Portfolio Owner/Manager— and for the more adventurous, even the CEO of a startup! Some Product owners might choose to diversify into a Business Analyst role as well.In conclusion, the CSPO has become a benchmark certification for Product Owners in the Software Industry. It will definitely help existing and aspiring POs to sharpen and upgrade their skillsets. It is also a badge of accomplishment and achievement for a Product Owner, not only to set them as a class apart in their own organization, but also in their wider Product Management community.
4218
Why CSPO Certification Is Important For Your Caree...

Introduction: This article looks at how and why th... Read More

User Stories and User Stories Examples

In this article, you will learn about User Stories, 3 C’s of a user story, who writes it, how to write it, how to INVEST in user stories and different types of user stories with examples  What is a User Story? User Story is a tool in which requirements are captured in an easy to understand plain language, and is written from the perspective of an end user. “In software development and product management, a user story is an informal, natural language description of one or more features of a software system. User stories are often written from the perspective of an end user or user of a system” In Agile software development, user stories are used to express the requirements from an end user perspective.  The format of the user story is: As a   I want to   So that   - is the end user or the role of the user in the application software – “As a net banking customer”  - the action the user is performing on the application software – “I want to add beneficiary in my account”  - outcome, desired value, the user expects out of the action performed – “so that I can transfer money to the added beneficiary”The larger sized stories are called as “Epics” which are then decomposed to “Features” and then further decomposed to a “User Story”.  Epic example: As a Bank, I want to provide net banking to customers, so that they can perform various transactions. The above Epic can then be decomposed into multiple features: few examples: As a Bank, I want to provide funds transfer feature to customer, so that they can transfer funds from one account to another account As a Bank, I want to provide account summary for all the customer’s type of accounts. As a Bank, I want to provide credit card details to customers. Now each feature can be decomposed further into multiple user stories. User stories, based on the estimate size, are taken for implementation in an iteration. User stories should be granular enough that they can be completed within an iteration and cannot be continued in the following iteration. If a story cannot be completed within an iteration, the same should be split logically. User stories are prioritized by the product owner based on business priority and are available at the top of the product backlog. The dev team pulls the stories into an iteration backlog and implements them. The Definition of Done(DOD) for user stories are decided by the team which includes acceptance criteria, processes that need to be followed like unit testing, regression testing, code review etc. The story is said to be “done” only when it meets the preset Definition of Done. Who writes user stories? So, whose responsibility is to write user stories in an agile team?  Generally, the notion is that only the Product Owners should write user stories as they are the ones who elicit requirements from the stakeholders. However, in practice, any member of an Agile team may write user stories, though the overall responsibility is that of a Product Owner. The product owner should go through the stories and prioritize them in the product backlog. Over the course of an agile project, every team member is encouraged and expected to write user stories. When are user stories written? Are user stories written at the beginning of the project in a traditional way?  User stories are written throughout the lifecycle of the project. At the start of the project, user stories are written in Sprint '0', also called as pre-sprint. Initially the product owner elicits the requirements from the stakeholder and they are stored as EPICS, Features and User Stories in the product backlog. The requirements in agile software development are progressively elaborated and hence the need for writing user stories will arise throughout the project. These are written mainly during the backlog grooming session where the product owner decomposes epics/features into granular stories. Dev team writes stories along with the product owner during this session and also gets  involved in the 3 C’s (the next section describes this). confirmation in the 3C’s of user stories “Card”, “Conversation” and “Confirmation” is a model that captures the components of a user story.  This is popularly known as the 3Cs model that helps in planning and estimating the user stories by the Agile team. Card – denotes a Post It note or physical card, typically 3”x5” size, where the important information of a user story is captured. The card should contain enough information (not too less or too much) that the team is able to understand in order to plan & estimate on the story. “Conversation” – this is the conversation that happens between the product owner and the dev team to discuss on the story and get into the details. This may also be a conversation with the users of the system. This conversation also brings out the creativity of the dev team and uncovers any unstated needs of the users. “Confirmation” – this brings out the acceptance criteria for a story based on the above conversation.  This criterion will be used to evaluate the story by the stakeholders when the user story is implemented by the dev team.  The 3 C’s of the user story generally unfold during the backlog grooming session when the dev team and the product owner discuss the stories that needs to be groomed. The user stories are written during this time as well on the card by the dev team and product owner. Just enough information is captured in the story that enables the team to discuss and get into the details, uncovering any hidden or explicit information in the process. The team then negotiates with the product owner and arrives at the acceptance criteria for the user story.  Next, the dev team estimates the user story with the available information. The conversation continues between the dev team and product owner until a consensus is reached with respect to the details and acceptance criteria and until the team can size the same. This round of conversation may happen again during the iteration/sprint planning session. The dev team then implements the story in an iteration which is reviewed by the product owner or stakeholders at the end of the iteration. They will then accept the story based on the acceptance criteria defined for the story. Why create user stories? What are the benefits that a team will get by documenting the need of the stakeholders in the form of user stories? It enables the team to understand the requirements from a user perspective. The focus is on the user to provide value to them; the user story clearly describes the expected outcome of every action performed. This manner of capturing requirements provides opportunities for the team to collaborate more with the product owner and business users. By having conversations (in 3 Cs), the team is able to uncover the hidden requirements and also come up with creative solutions. Provides a shared understanding of the requirements to the team so that everyone is aware of the outcome/goal of the story and is on the same page. User stories help the team to achieve smaller product increments. User stories are more understandable by all stakeholders (technical/non-technical/business/operations). User stories help the team to implement features in smaller iterations ranging from one week to one-month durations. User stories enable the team for progressive elaboration, where they can defer the story until more clarity is obtained. User stories help create transparency of the priorities defined by the product owner and the customer. User stories help the developers, product owner and business owners to reach a mutual consensus as they discuss the details and agree on the acceptance criteria. This helps prioritize the product features by the stakeholders and also helps to take the right decisions at the right time. INVEST in User StoriesThis is an acronym for a set of attributes or criteria that helps us to assess the quality of the user story. If any of the attributes falls short in a story, it means that the team may want to consider rewriting the user story. Independent – User stories should be independent of other stories. There should be no overlap between them. They can however follow one after the other in a sequence, in a way that makes it easy to schedule and implement them.  This is one of the challenges that the team faces especially when they have just started adapting agile ways of working. They may have a story which is dependent on something else which may be done by another team. The teams may hope that they can run the two stories in parallel and by the time the first team is done, the dependent team will also complete their part of the story.  This is not the right way of running user stories, as it can result in a lot of confusion and blame. The advantage of having independent stories is that there is no blame game across teams. It also allows to consider the dependencies and come up with innovative ways of removing them to become independent. Negotiable – The story should not be written in so much detail that it becomes a requirement document. If it is in too much detail, it does not give an opportunity for the dev team to have any conversation with the product owner or the business. The story should be written with just enough detail so that it paves the way to open discussions with the product owner or business, and helps to elicit details or come up with creative solutions. By negotiating on the story with the relevant stakeholders, teams can come to a common understanding. Valuable – The story should be valuable to the customer. It should clearly state why we are doing this? How is it going to produce value to the customer? What value will the customer realize by implementing this story?  The only reason why user stories should be part of the product backlog is that they add value to the customer, right? Estimable – The user stories should have sufficient detail for the dev team to understand and estimate them. The conversation in 3 C’s helps the team to uncover the details with the product owner and stakeholders, so that they can size the story. If the story is too big and not sizeable, then the story should be refined or decomposed further. Whatever information the team may require should be available in the story for them to estimate it. In case there is a part of the story where the team has to do research, then a “spike” story may be created while the rest of the story can be estimated and taken for implementation. Small – Good user stories should be small. This does not refer to the size or number of words written in a story. A small story is of the right length so that the implementation team can complete the story within an iteration. It should be small enough that the story is “fully delivered” during an iteration.  A small user story helps the team to develop and test quickly and easily.  Testable – A good user story should be testable in order to be “Done”. This is supported by the “Confirmation” in 3 C’s where the team comes up with acceptance criteria for every story after the detailed conversation with the stakeholders.  The customer should be clear about what he should test during the review. If he is not clear, then the story is not good enough to be implemented. The team works together in a collaborative way to INVEST in good stories. The team learns to write good user stories as they work together and also proactively think about the values and criteria that are laid out in INVEST. Types of User Stories We can classify user stories into functional and technical types: Functional – Normally, a user story is written based on the functional aspects of the application software, while focusing on the user and the value of the functionality provided to the user.  Functional stories concentrate on the product features which the customer will be testing at the end of an iteration based on the acceptance criteria defined for the story. Technical – Technical stories are written to be able to support the functional stories. Technical stories can be classified as Infrastructure stories – any infrastructure addition/modification that may be required to support the functional story Refactoring – this type of story is written to maintain the code and address technical debts. This can be used for designing and automation needs as well Spikes – stories that require research on architecture and design which may in turn help achieve the functional need of the customer. Examples of user stories Let us see some examples of user stories (Epics, Features and User Story) in this section. IDEPICSE1As a Sales Professional, I want to generate reports so that I can take a decision on the marketing strategy for the upcoming quarterE2As a Banking Customer, I want to access net banking, so that I can access my account and make transactionsE3As an Administrator of the software, I want to access master records so that I can make changes to customer dataIDFeaturesE2F1As a Banking Customer, I want to access Savings account so that I can view/make transactionsE2F2As a Banking Customer, I want to access Credit Card page, so that I can view and make transactionsE2F3As a Banking Customer, I want to access Loans page so that I can view my loansE2F4As a Banking Customer, I want to transfer funds, so that I can move my funds to different accounts within my bank and other banksIDUser StoriesE2F1U1As a Banking Customer, I want to access/view summary of my savings account, so that I know my balance and other detailsE2F2U1As a Banking Customer, I want to Login to Net banking so that I can view credit card detailsE2F4U1As a Banking Customer, I want to transfer funds within my own accounts so that I can move some balance across my accountsE2F4U2As a Banking Customer, I want to transfer funds from my account to another account in another bank, so that  I can send money to my family and friends who have accounts in other banksE2F4U3As a Banking Customer, I want to add beneficiary to my account, so that I can transfer funds to the beneficiaryTechnical StoriesE2TU1As a Net Banking Administrator, I want to have the customer’s data backed up so that I can restore it any time in case of issues  E2TU2  As a Net Banking application, I want to shake hands with another bank using a specific formatted XML so that funds can be transferred based on the customers’ needs  Conclusion Transformation of documentation on user requirements in a Functional Requirements Document (FRD) or Software Requirement Specification (SRS) in a traditional project management, towards User Stories in Agile project management, is a massive step. It helps  shift the mindset of how teams can understand and collaborate with the customer in a better way, by shifting their focus of implementation towards value that the customer may realize from the story. This shift has worked very well in terms of meeting the requirements and expectations of the customer. 
9443
User Stories and User Stories Examples

In this article, you will learn about User Stories... Read More

Waterfall Vs Agile – Must Know Differences

In this article, my focus is to the bring out the differences between Waterfall and Agile methodologies based on my experience as a PMP® and Agile Coach.  What will you learn in this article? In this article, you will learn the definition of Waterfall and Agile, key differences between the two, advantages and limitations of each, how to make the right choice for your project and an example on Waterfall and Agile methods. What is Waterfall Methodology?  “The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce, although Royce did not use the term waterfall in that article….The earliest use of the term "waterfall" may have been in a 1976 paper by Bell and Thayer” This methodology describes a linear and sequential approach to Software Development. It is termed “Waterfall” as the life cycle phases in the Software Development cascade from one phase to another systematically from top to bottom. After the completion of every phase, the subsequent phase is expected to start and there is a stage-gate or kill-point review at the end of each phase. Progress of the project is evaluated during this stage-gate review and the decision is made to continue to the next phase or cancel the project. For example, the entire requirements for the project are elicited by the project team from the stakeholders and documented. The team can proceed to the next phase –Design- only after the evaluation of the requirements during the stage-gate review is completed, and a “Go” decision is made. This is also known as Traditional or Predictive approach in project management, as it applies a predictive planning strategy which uses baselines and milestones to control the project.  What is Agile Methodology? “The appearance of Agile methods has been the most noticeable change to software process thinking in the last fifteen years [16], but in fact many of the “Agile ideas” have been around since 70’s or even before. Many studies and reviews have been conducted about Agile methods which ascribe their emergence as a reaction against traditional methods” This approach of software development is also known as Adaptive approach. Agile Methodology promotes an iterative & incremental approach throughout the entire software development life cycle of the project. This focuses on the values and principles defined in the Agile Manifesto which states Agile Manifesto: Individuals and Interactions over processes and tools Working Software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace, indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity–the art of maximizing the amount of work not done–is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly. Key differences between Waterfall and Agile MethodologyRequirements: In traditional approach, an extensive business analysis is performed (typically by the business analyst) in order to meet the requirements of the product, service or result. Requirements are fully documented and signed off by the key stakeholders. The business analyst walks through the requirements to the project team which then performs the design, development and testing of those requirements. Since requirements are elicited at the beginning of the project and subsequently baselined, it is possible that requirements may decay over a period as the business dynamics keep changing in today’s world. In Adaptive approach, the requirements are progressively elaborated and stored in the requirements backlog or product backlog. They are stored in the form of Epics/Features/User Stories in the product backlog.  The entire agile team collaborates on grooming the requirements later.   Responding to Changes: Waterfall methodology tries to control the amount of change within a project. It is very rigid to any change in the project and has to go through a process of change requests. Change management plan is well defined to handle any change in a systematic manner to avoid scope creep or gold plating (doing something extra for the customer without them actually asking for it). Welcome change is a powerful tool in adaptive approach. The agile approach to planning, executing, prioritizing, grooming etc allows the agile team to respond to change quickly. Changes are considered as opportunities to provide value to the customer. Please note “responding” to changes does not mean “accepting” all the changes. It is rather “welcome changes” as the agile team collaborates with the customer more from the value perspective.  Project Team: There is no specific team size limit in the traditional approach. It can go from a few team members to hundreds in a huge project. This limits the collaboration between the individuals involved in the project, especially in a big-sized team. Team members may be allocated from different functional units and may not be seated together. In Agile methodology, team size is limited to achieve high collaboration through co-location (team sitting together in the same workspace). Each agile team comprises of a cross-functional team who can produce a working software increment in every iteration. Development Life Cycle: In Waterfall methodology, the software development life cycle goes through a series of phases like requirements, design, coding, testing and UAT, sequentially. The entire product or working software is available at the end of the project phase. In Agile methodology, the development happens in iterations/sprints, and the duration of the iterations ranges from two weeks to a month. The phases of analysis, design and development happens within an iteration and the team is able to produce a working software increment in every iteration. Feedback cycle: In Waterfall methodology, the feedback of the project is received at the end of the project when the customer conducts the validate scope process (UAT). In Agile methodology, feedback of the increment is received by the team at the end of every iteration. Multiple feedback loops provide opportunities for the team to learn quickly. Testing: In waterfall methodology, testing cycle or phase starts after the development phase is completed. Test plans are finalized at the beginning of the project and test cases are written for the product of the project while the development is in progress. Development and test teams are looked at separately within a project team. In Agile methodology, every iteration planning includes planning for test and test cases are written for those prioritized features or stories for every iteration. Testers and coders work in an integrated manner to deliver the product increment. Focus: In waterfall methodology, the focus is more on producing the project deliverable as defined and baselined. In Agile methodology, the focus is more on collaborating with the customer and welcoming changes that provide value to the customer. Documentation: In waterfall methodology, due importance is given to formalized documentation which helps in monitoring and controlling of the project for the project manager. In Agile methodology, minimal documentation is prescribed as working software is preferred over comprehensive documentation (as per Agile Manifesto). Roles: In waterfall methodology, there can be many roles defined like Project Manager, team lead, developer, tester, business analyst, design architect, quality analyst etc., In Agile methodology, roles are very limited. Especially in Scrum framework, there are only 3 roles. Scrum Master, Product Owner and Development Team (cross functional team). Project Management: In Waterfall methodology, project manager is responsible for managing the project and is accountable for the entire project. Project manager manages the project team by assigning work to the team members and getting the task done. In other words, project manager “pushes” the work to the team. In Agile methodology, the team manages the project themselves as they are a self-organizing team. The team “pulls” the work from the product backlog into the iteration backlog. Team Empowerment: In waterfall methodology, the project manager is directly answerable for the outcome of the project and team members are not empowered to take decisions. In Agile methodology, the agile team is empowered to take decisions and hence they are collectively accountable for the outcome of the project. Project Metrics: In waterfall methodology, the project team measures the project progress using techniques like Earned Value Management and Schedule compression to compress the schedule in case of any deviations. In Agile methodology, the metrics are derived in terms of velocity (how many story points the team produced during an increment cycle) and other metrics like sprint burndown/burnup charts to monitor daily progress within an iteration. Advantages and Limitations of Waterfall MethodologyAdvantages:Ability to apply due diligence in planning for well-defined requirements and scope Dependencies are managed effectively as the entire requirements are known well in advance Well defined processes pave the way for quality deliverables Phase-gate reviews allow stakeholders to eliminate any ad-hoc changes and unplanned additions to the project Works well for small projects for a well-defined requirement that is very well understood, and is not likely to change over the duration of the project Avoids scope creep with systematic implementation of change management process Simple and easy to understand Scope, time and cost baseline helps the management to monitor and control the project accordingly Limitations:Requirements are expected to be defined well prior to development which delays the project Less flexibility in changes makes it difficult to manage Feedback is received from the customer at the end of the project and hence any negative feedback or defects proves costly for the team to fix  Does not accommodate any changes due to market dynamics and its rigid approach to changes Cost of change is more as the defect is identified by the customer at the end of the project Ineffective team collaboration as the team works in silos (dev, testing etc) Integration is considered at the end and that prevents identification of any technical or business bottleneck Advantages and limitations of Agile MethodologyAdvantagesFocusses on business value as developers and business work together Stakeholders are engaged effectively in every iteration Motivated and self-organizing teams that manage themselves Predictable and ensures less variations in the project Harnesses change and is more customer centric Working software is the measure of progress. Feedback is received from the key stakeholder during every iteration and the cost of change is very less Teams retrospect every iteration to look at improvement areas and finetune themselves Provides transparency through the process Focuses on Minimum Viable Product to release to the customer Due attention is paid to specific customer needs and changes are accommodated even late in development Limitations Not suitable for all types of projects May not work well in a large traditional organization due to its flexible and less formal processes Minimal depth in requirement analysis and frequent planning may derail the end project goals Self-organizing and empowering teams solely depends on team’s maturity level at handling decisions and may backfire Working software over comprehensive documentation is misunderstood and hence teams may not focus even on necessary documentation that is required Waterfall vs Agile Methodology – Which is right for your project? A typical question that is raised before the software development starts is “which approach should we follow, Waterfall or Agile?”   The following table can be used to determine the approach (please note all the factors do not carry equal weightage)     Waterfall (works)Agile (works)Well defined scope and changes are very limitedScope/FeaturesWhen scope is not known in advance or changes are expected as the project moves onWhen uncertainty is low and low-level riskRiskWhen uncertainty is high and high-level riskWhen market is stableMarket dependencyWhen market dynamics change/evolve frequentlyWhen customer involvement is required only at certain milestonesCustomer FeedbackWhen customer is available and requires involvement throughout the projectWhen the focus is on planning, monitoring and control and predictabilityFocusWhen the focus is on innovationWhen conforming to requirements as agreed upon in the contractProduct FeaturesWhen minimum viable product (which gives more value to the customer) is implemented first and we can implement the low valued features laterWhen a large sized team with minimal collaboration or handoff is requiredTeamWhen small team with high collaboration is requiredWhen the budget is fixedFundingWhen the budget is not a constraintWhen it is less important and not urgentTime to MarketWhen it is critical, important, and urgent to meet the desired outcomeExamples of Agile vs Waterfall: How is the software developed?  Waterfall Methodology: (example) Scope: To provide an employee timesheet software having the following features: Ability to login Ability for the employees to describe the task and enter the number of hours spent Ability to submit for approval to the manager Manager Ability to login Ability to add a resource to a project Ability to link project to a resource Ability to assign task to a resource Ability to approve/reject the timesheet Administrator Ability to login Ability to add/modify/delete users  Ability to add/modify/delete projects Reports Report on individual user timesheet data for a specified period Report on project timesheet data for a specified period Report on approved/rejected timesheets for a project for a specified period Let us assume the above is the scope and timeline for completion is given as 6 months. Requirements Phase: Detailed requirements on individual features are discussed and elicited from the stakeholders until they are well understood and documented. The requirements document is then signed off by the customer. Scope is identified and baselined during this phase. Project manager comes out with the detailed plan for the entire project and assigns team members accordingly to perform the task. The scope, schedule and cost are baselined considering all the other project constraints like resources, quality, risks, stakeholders, communication etc. Design and Development Phase: Development team works on design and coding all the requirements stated above and delivers to the testing team. Testing phase: Testing team validates the deliverables to see whether they conform to the requirements. They raise defects and the development team works on them. Testing team signs off on the deliverables once they work as per the requirements. UAT Phase: Customer validates the deliverables and signs off. Raises defects in case there are issues or requirements are not meeting the expectations Agile Methodology: (example) Scope: To provide the following features for an ATM Cash withdrawal Check balance Change ATM Pin Print statements Deposit Cash Deposit Cheque Product owner elicits high level requirements from the stakeholders and documents them in the form of features/user stories in the product backlog. Product Owner then prioritizes the features based on value that can be realized by the customer. Minimum viable product is finalized. 80/20 rule may be applied to find which 20% of the features give 80% value to the customer. In this case, Cash withdrawal and Check balance features are selected as the first increment to be implemented. Agile dev team along with the Product Owner sizes the features and stories and comes up with the release planning for the MVP identified. Product owner grooms and prioritizes the user stories in the product backlog. Agile team pulls the work in the iteration backlog and starts defining goals for every iteration until the features are completed. Meanwhile Product Owner continues to progressively elaborate the requirements for other features. Key business stakeholders, along with the Product Owner review the product increment created by the agile team and provide feedback. The team retrospect after each iteration with respect to people, process and product and finetunes accordingly. This iteration cycle goes on until the first implementation is complete and then the agile team takes up the next available set of features. Summary: As we have seen, Waterfall and Agile methodologies have their own set of advantages and limitations. While waterfall approach is more methodical and predictive, agile approach is more adaptive and dynamic in nature. Depending on the project circumstances and using the table provided under Waterfall vs Agile Methodology, the project team can decide which works better for them. 
8583
Waterfall Vs Agile – Must Know Differences

In this article, my focus is to the bring out the ... Read More

Useful links