Archives For Agile

Last Thursday night I was fortunate enough to see Marty Cagan of the Silicon Valley Product Group speak at an event just around the corner from Atlassian in SOMA. I thoroughly enjoyed reading his book – Inspired: How To Create Products Customers Love – so seeing him speak was great!

On Thursday Marty spoke about the importance of building a strong product culture within a company. He explains that a strong product culture is one where the company is constantly developing and delivering new revenue streams.

Marty went on to describe a number of areas that strong product cultures excel at, I thought of these as similar to design patterns – ie, formalised best practices that you should implement in your organisation. That of course means there are also anti-patterns. Lets start with one of those:

the single biggest reason for product failure is gathering requirements. don’t confuse what the customer asks for with what their problem is.

A product managers role, and the role of the whole team, is to invent a solution on behalf of the customers. A successful solution is one where you have a number of happy reference customers for the MVP.

Now we will turn our attention to some patterns of strong product cultures.

Define Success Upfront

How does a product manager ensure that they are going to have happy reference customers for the MVP? Define success upfront. Build a hypothesis that you want to test and specify the success criteria prior to writing any code. Let’s take a look at a simple example of a login page for a consumer SaaS:

We have a user story:

As a user I would like to log in with my Facebook account so that I only have to remember one username and password

This user story will also have acceptance criteria:

  • display the Facebook logo on the login page,
  • return to the login page if incorrect username & password are supplied,
  • provide error message
  • etc

The acceptance criteria is there to ensure the team is clear about what they are delivering to the customer.

Now, let’s add success criteria to that user story:

  • ‘new user signups increase by 30% due to the simplified signup/login process’
  • ‘requests to the forgot my password page cease’
  • etc

Thus our user story has acceptance criteria and success criteria.

Instead of rolling out this change to all customers at once we will extend our definition of done to include meeting the success criteria. The team will then A/B test the user story with our customer base to ensure that the success criteria is met by the cohort that sees the new login page.

Assuming the cohort that sees the new login page leads to 30% increase in conversion and no password requests we would then consider the user story ‘Done’ as it meets both the acceptance and success criteria. We would roll the user story out to all customers. Of course, if our success criteria was not met then we will reject that story – perhaps leading to a subsequent hypothesis in another story.

To visualise that these user stories have not met the definition of done yet you may have a board like the following, with a column for ‘In A/B’:

This approach to defining the success criteria upfront is a great method to ensuring that features which are released to customers are actually worthwhile, actually used, that they provide value to the customer.

Product Discovery

Product Discovery is an approach to quickly testing and validating our ideas. Every product manager I have ever spoken with has more ideas that they want to build and provide to the customer than they could ever possibly deliver. While this is intertwined with Defining Success Upfront (above) it is really in the pre-user-story stage such as when we are aiming for an MVP. We don’t want to write production code for all of the ideas that we want to test as that is costly and leads to a lot of waste. Instead, we can do one of the following:

I won’t got into detail on the paper prototypes here as I’ve linked to a great intro video above. You can also read a follow up post on usability testing with paper prototypes which gives some examples.

The live data prototype is similar to the A/B test that we put the user story through above. The key difference is that we are not writing production quality code – no unit or functional tests, for instance. There are two questions that the live data prototype will help us answer:

  • Could the customer use the functionality?
  • Would they use the functionality? If not, what would it take to get them to use it?

It is key that you are asking the customer whether they would use the functionality – for instance, would they pay for it? If not, why not?

Product Managers have a tonne of ideas they want to try out. This Product Discovery process is essential to finding out what resonates with your customers, what they can use and what they will pay for.

Product Discovery Team

Finding new product opportunities takes time and energy. Having a Product Discovery Team dedicated to this task will enable existing product teams to focus on optimising the value to their customers while still allowing the company to approach new ideas for testing and validation. Of course, this depends on the size of the company – perhaps you’ve got time to cover these alongside existing products or perhaps you’re a new company trying to find the MVP for your product.

In either case the Product Discovery Team will require three roles:

  • Product Manager
  • Lead Designer
  • Lead Developer

Together these three come up with a solution to the customers problem. It is rare to find two of these roles in one person – hard too as they are probably out doing their own thing already.

One takeaway for me, from Marty’s talk, was that you should lead with UX as it is likely more important than engineering. I’m starting to see the constraint on UX, there are not enough good people and they are the bottleneck for many teams.

Random Tidbits

  • Bring at least three customers into the office each week, watch them use the product and use this as an opportunity for product discovery. It can’t help to bring customers closer to the team either.
  • You want a Founder / CEO that demands excellence. Better that than someone who doesn’t care about the product or customer and is only interested in the bottom line. Demanding pixel perfection is excellence – a real eye opener for me.
  • Really, there is no reason not to test something these days – you can run a test over a few days and have the metrics handy when you have a discussion with the Founder / CEO.

Recommended Reading

Conclusion

How can we come up with an experience worth building with the evidence to validate this?

At the end of the day the Product Managers role is twofold – customer discovery and product discovery. A product managers job is not to be right, it is to find out how to get to right, fast. Getting a new product into the hands of customers isn’t simply a matter of building something. It is much more than that, as we’ve explored above.

Once the product has launched the product manager will switch to an optimisation role – where the process is more iterative and defining success for new user stories is vital.

“think in leaps, iterate in steps” – Google

Build and deploy incrementally and iteratively, but make sure you have a compelling product vision. You don’t want to go faster and get nowhere – so make sure you have a vision.

There is an interesting discussion on the kanbandev Yahoo Group exploring how best to plan and track UX work that impacts all of the features of a product. This would certainly impact the regular flow of the team if some UX work was going to have to be switched live on Day X. There are a number of constraints that Jose shares:

  • UX people are part of the team, their work must be visualised with the rest of the team
  • UX workflow is different to the user stories, no dev necessarily as it may just be investigation for future stories

In some respects you can leave a UX task like this on the board for a long time. Similar to an extended Sprint Zero.

I think a whole product UX revamp can still be broken down into manageable chunks such as Phase 1 / 2 / 3 / etc. You could then decompose that further into Design, Validation, User Testing, etc. Rolling out all of these changes on Day X can still be achieved although it would be difficult to batch up all of that work. Not to mention the waste as it sat there in the source code, unavailable to users.

Some suggestions:

  • use feature flags to roll out features one at a time and get feedback from beta customers
  • capture the value behind this feature flag until all of the features are ready to switched on
  • keep the whole UX revamp story on the board in a different class of service, visibility is key for the whole team
  • split out cycle time for this class of service so it doesn’t impact the rest of the board

Fun times revamping the whole UX for a product!

Speaking of which, GreenHopper 5.9.1 is available today. Our team has been hiding features from mainstream customers and only making them available for our beta customers. We slowly role new features out to all customers as they ‘solidify’ – not the whole product at once, although over time it will end up in a whole product UX revamp. So, I understand where Jose and the others on kanbandev are coming from.

Today I received an interesting email from a GreenHopper customer. Thushara Wijewardena of Exilesoft and her team were wondering if we have a visualisation similar to the following:

At first I was unsure how to interpret the chart, suffice to say it had high information density. Thushara explained that the goal of the above chart is to provide visibility into a product, in this case a feature release roadmap. Thushara could easily do this on a physical wall, although the cost and effort involved in keeping it up to date for four teams in different geographies would be significant. Hence the desire to pull the information from GreenHopper and JIRA, as the information is readily available.

What does it all mean?

  • The circles represent time periods. In this case each circle represents a 3 month timeboxed feature release. The inner circle is the current release, and then there are four future releases in the planning stage.
  • Outside the largest circle is the unplanned wish list of features. The order of these items on the backlog is not shown on the chart.
  • Each section of the circle represents one component. This shows the distribution of work across various components of the product so that you can see at a glance if you are spending too much time in one area.
  • Red notes represent those stories that the team has not estimated yet. Red can also mean that the team has a problem with those stories and they need the product owners attention.
  • The order of the items on the backlog is not shown in this chart.

I think this is a really neat visualisation. The sections remind me of epics, spanning many releases, and the distribution of stories within each epic quickly shows me how much I am spending on each. Until the email today I always thought that a parking lot diagram was the best way to display this information. While the information density above is greater I can see value in both approaches. An example parking lot diagram from Agile blog Leading Answers is shown below for comparison.

How do you visualise progress on your epics? Let me know in the comments below.

Neither GreenHopper or JIRA contain a visualisation like this today. With the new REST API’s and Alex’s recent writeup on the new architecture of GreenHopper I can’t imagine it will be long before we see something on the Plugin Exchange.