Agile software development is well understood when discussed from the perspective of the product owner, rather; agile product ownership. Agile software development is a collection of software development methods, methodologically based on iterative and increment development, in which product owners, stakeholders and developing team work together as a team through collaboration and effective communication ensuring that they come up with something more potent which is delivered on time.
As a reminder, agile software development heavily revolves around three fundamental philosophies namely:
- Adaptive vs. predictive
- Iterative vs. waterfall
- Code vs. Documentation
How Agile Product Ownership Works
A product owner in this context is an individual with a product vision but unfortunately doesn’t know the details of what his/her product is going to do. All the product owner knows is the problem that is going to be solved by his/her product.
In addition, the product owner knows why it’s important for their product to be developed and whom it’s going to be directed at.
Now the stake holders view each product as a story that needs to discussed, they (stakeholders) together with product owner in details tears into the product owners idea making it more easier to understand and later on determine whether it’s something practical or not.
Finally, these distinct stories are to be forwarded to developing team for it to be developed.
However, note that agile team doesn’t pile up ideas, they insist on releasing ideas as fast as they can. To do this, the team invests heavily on automated testing and continuous integration where every feature has to be subjected to automated acceptance test and most of its code to automated unit tests.
Since the stakeholders keep getting ideas from more product owners every week, and they only release only release a few, it possible for them to get overloaded with work. To avoid this, they only go through a few features and let the product owner to decide which features are to be released first. Doing this automatically creates a queue that may go up to a period of six months before the entire product is released.
To avoid these, product owners are tasked with the mandate of not accepting new features until the product is released, the product owner will decide which features to be released and which not to. In addition, the product owner also decides how it should be build (the sequence); what to be released now and what will be released later.
Work of Product Owner
Product owner uses their intelligence to ascertain the must have features and what can wait. This is achieved through guess work and indeed it’s a very difficult thing to do at the beginning of a new project but it’s inevitable. As time goes by, with the help from users’ feedback, it gets much easier to know which features need to be added and which ones need to be revised.
Note that, product owners job is not to spoon-feed the team with ideas but instead, make everybody understand what it is they are doing. Knowing what to feature to start working on is not something easy, in agile product ownership, it’s categorised as the most risky thing.
To minimise this risk, the team focuses on things like user interface prototypes and experiments, things that will make customers not too excited but still valuable and helpful.
Once the product has been released, the team now focuses on boosting customers’ trust on the product. This is achieved by first releasing highest value feature then later adding the bonus features.
Software Development Tradeoffs
The first trade off is the products’ value, knowing exactly which feature to start with can be a torturous task and team work is greatly needed here. Secondly is what is commonly known as ‘short term vs. long term thinking’.
Not what feature to develop next is also a headache on its own; usually, the team is faced with a crisis of whether they are doing the right thing or not and how they are to balance between one project and another. Often, during this period, the team usually spend too much time trying to make everything look perfect and may miss the market window or even run into cash-flow problems.
Speed is also something that keeps everyone in the team on toes, in order to remain focused, in agile product ownership; all concerned parties are expected to be fast and efficient so as not to lag behind. It’s argued that, short feedback loop accelerates learning and in turn keeps everything simpler
Finally, there is the trade off between the old product improvement and new product development. Note that a product never reaches its end, there is maintenance and improvements that are to be regularly done until the product is shut down or reaches end of life.
To avoid confusion, a team that starts a project is expected to handle it till completion up to maintenanceand such. Exchanging projects when halfway is an expensive and risky venture and is usually avoided at all cost.
Once in a while, the product owner will receive a call from stakeholders and is responsible for expectations management and more. Agile product ownership requires product owners to come up with prediction of when they expect to complete whatever they are working on.
Usually, product owners are expected to use empirical data when making the forecast and not wishful thinking. Product owners in addition, are expected to be honest and only talk about things they are certain about.
Common Agile Pitfalls
Agile like other software development methods also faces a few problems that make it somehow difficult for the team to implement. They include:
- Lack of sponsors support – without an effective sponsor, agile project operates at a high risk of failing and for it to be successful; enough funding is required to keep things going.
- Insufficient training – often, teams fall into the habit of assuming some important processes and this often lead to failure. It’s advised that proper training is prescribed to everyone before they are tasked into overseeing any project.
- Lack of test automation – as stated before, test automation is a principle aspect in agile software development and without it, everything becomes obscure delaying progress.
Other pitfalls include: excessive planning, piling up work, product owner not being well briefed of their role and many more.
Agile methods have been found to be effective and efficient in software and other product developing firms especially those dealing with technology. For effectiveness, all concerned parties are expected to obediently work on their part without being reminded to or coaxed.
Most importantly, for agile product ownership to work togetherness is the key thing; communication needs to be the pillar.