Thursday, July 26, 2012

Engaging the reluctant Product Owner


Product Owners are what drives a team.  They are the motivation and the catalyst behind any successful agile team.  For many struggling agile teams the biggest bang for the buck in improvement is an engaged product owner.  But how do you take a reluctant, absent product expert and convert them into a successful product owner?  You train them.  And how do you motivate these Product Owners In Training to engage?  You make it worth their while.


Product Owners, like all people, only repeat behavior that works for them.  Therefore, our job as agile team members and scrum masters is to provide that value to keep the PO coming back for more.  We provide that value through early and repetitive visibiltiy into what we are building, and the ability to easily change course when what we are building does not match their ever growing insight into what should be built.

A core requirement of a good product owner is to have the industry domain experience and the ability to fashion a vision of solving buisness needs within that domain.  However, PO's cannot be expected to nail this vision right out of the box; they need input to help aid with constant course correction to make that initial vision into a usable solution.  Think of the old artillery capabilities where an initial shot was fired, response was fed back to the artillery captain regarding adjustments, another shot was fired, and the process repeated until they were on target.  Modern systems rely on specific coordinates and GPS aids to directly target the first time, but PO's don't have a built in SatNav receiver.  They need this fire and learn feedback to adjust their vision.  Providing this feedback, and teaching them how to use it, is part of the value return for a PO.

And this feedback comes from working software.  We couldn't with honest confidence tell the artillery captain before the shot is fired "Your shot will land right at these coordinates, so you need to adjust accordingly".  In the same mode we cannot provide the needed feedback on product direction without those early shots given in the form of product demo's.  Invest in making those demo sessions provide that needed insight, and with a little encouragement your product owner will become an eager fan and no longer find reasons to skip your demo's.  Continue this process throughout the sprint and you are well on the way to building your own super PO.

Saturday, July 14, 2012

Inspect and Adapt

Think about one of our most useful inventions of all time; the wheel.  Do you think that first caveman sat down and thought through all of the facets of building a wheel, and got it right the first time?  No, he most likely had a need, and set about to fill that need through trial and error.  His first attempt was almost certainly very crude and didn’t work well, but he kept iterating through it until he had something that worked.  If he had sat down and scratched out his design in the sand and said “Ugg, that’s what I need” and built exactly that, we would still be using our feet to get around.  Instead, he started building with what he knew at the time, and used that knowledge to improve the next version, and the next, until he had something that worked.

In the same way, we need to be willing to start with what we know, and understand that we will learn along the way.  Hanging on to the need to understand exactly what will happen in the future just doesn’t work.  Customers change their mind, product owners learn more and adapt (at least, the good ones do), and designs need to change along with them.  Also, if we really could just write TDD”s and know that’s what we want, why have developers?  We could just plug our designs into code generators and push a button. 

As developers of software, we need to be able to do a little work, inspect that work, learn from it, and then do a little more.  That’s how our friend the caveman did it.

Wednesday, July 11, 2012

‘Estimating Session’ is a misnomer

I think the agile community might do itself a favor by renaming these to ‘Understanding Sessions’.

People new to Agile, especially coming from the waterfall/traditional PM role, struggle with the concept of agile estimation sessions.  How can slotting stories into piles of like size be of any benefit?  I need real numbers, not these Fibonacci things!  And then, inevitably, comes the dreaded question; “how many hours is a 5 point story?”.

Let’s think about the advantages of an estimation session.  Sure, we get story points associated to a story, which helps with release and sprint planning, but what’s the real benefit?  Think about how you get to a consensus on a story estimation, it requires discussion on the story sufficient to gain a group understanding, it requires compromise on what the story scope is (which helps further define the story), and it requires all aspects of the completion of the story to be involved (dev, BA’s, QA, deployment, etc).  A successful estimation session ends with the participants gaining further understanding of what is needed.

However, estimation sessions are not planning sessions, and this is where a lot of PM/Waterfall folks get frustrated.  Do we know exactly how we are going to implement this?  Do we have a detailed task list that needs completing?  Do we even have a clear picture yet on how we are going to test this?  No to all.  What we do have is an early agreement on our short term direction based on a ‘slotting’ of these stories into like piles.  It also presents an opportunity for a new team to start to gel around the work they are about to undertake.

I know there are many in the agile community that are starting to question the need for estimations as agile practices continue to mature.  I think they still have an invaluable place as Understanding Sessions, and will remain on my list of preferred practices for the foreseeable future.