Three Pillars of Agile
Agile projects especially projects following Scrum Methodology depends on co-ordination and communication of three important roles in the project, namely, Product Owner, Scrum Team and Scrum Master.
Product Owner looks after the scope of the project and that team delivers the most important features first in the project. Look at the below quadrant, a successful product owner will always try to deliver most valuable features first to end users.
Scrum Team consists of developers, testers and architect. Scrum team uses agile principles to deliver high quality, working software periodically to customer. Architect who is part of Scrum team, defines the technical roadmap of the project and guide team in order to deliver the highest quality product to end user.
Scrum Master makes sure team upholds agile principles and are able to deliver quality, valuable features periodically to customer.
It is unavoidable to have negotiations between these three roles as each of those looks after important aspects of the project i.e. Scope, Technology and Process. These three counter forces make sure that none of the aspect gets compromised while delivering the product i.e. quality does not get compromised due to faster delivery of the features. Similarly processes are followed and team improves consistently while delivery high quality working software to customer.
And then there is one More..
One of the principle in Agile manifesto is: Customer Collaboration over contract negotiations. This article is all about this principle.
Customer is the most important factor in success of the project, which is often looked over in project development. Customer brings the most important perspective of the project i.e. WHAT.
- What is the vision of the project?
- What defines the success of the project?
- What is the value of the project success?
Customer vs Product Owner
Ideally customer himself is best suited for the Product Owner role of the project as he knows the priority of the features, what a feature entails for end users, he is aptly suited to validate if the feature delivered is built as per expectations. While all this sounds good, in reality more often than not this role is handed over to one of the project team members. This could be due to one of the reason, -Availability : Product Owner is a full time role in an agile team. When working with a 5-7 member team, PO may spend more than half day discussing stories with team members, validating stories developed by team members and almost other half tending the backlog, defining stories for upcoming iterations. Since this needs a full time commitment from customer, which is difficult for customer in most of the project.
- Lack of Skill : Product Owner is a full time, real job position. That means anyone cannot perform this role and one needs to have demonstrated skill sets of PO. PO must know how to define stories properly, how to handle objections on the stories and must be well versed with agile development concepts. Customers lack such skilled employees most of the time and that’s why scrum teams as well as customers prefer to hand over this responsibility to one of the project team member.
- Financial Aspect : Customer manages the financial aspect of the project and wants to be aware of the project cost but project management teams usually want to control their side of project financials like resource cost incurred, profits made on the project. Hence, having a dedicated PO who can share this insight with customer transparently while protecting financial boundaries of project like scope creep, CR management is always useful and acceptable to both the sides.
Why is it essential to get customer involvement in an agile project?
All the discussion above leads to a question that what is customer supposed to be involved in and informed of if he is not playing a dedicated Product Owner role in the project. Customer is the fourth wheel of the car, which is equally important to reach the destination in time, without accidents. Customer must be available for,
- Scope discussions, changes in requirements so that team can make sure that they are delivering highest value features first.
- Requirement discussion for story writing and work closely with PO to correctly define the user stories, their acceptance criteria, assumptions, out of scope items.
- Provide quick turn around time for UAT, production environment. Access to data, systems as required by team so that team’s progress does not halt.
- Work with PO to get feedback of the stories from stakeholders and end users to make sure team gets useful feedback quickly and early enough to incorporate it in future iterations.
- PO is just a proxy customer for team, so it helps team to have a collaboration with customer directly to understand how the delivered features are impacting customer’s business, which can act as a huge motivation for team
In the end, even though customer is not a recognized role by Agile, customer is definitely one of the most important factor in success of the project. As much as scrum team is responsible to deliver a high quality working product, customer is responsible of supporting team with their early feedback and providing all the tools which will help team and project succeed.