Tag Archives: product-backlog

What should we build next?

Posted on by

Gathering ideasHow do you decide what to build next? Who comes up with the ideas? How do you decide in what order to implement them? How do you keep track of what you’re working on, and what you want to work on?

Here’s a behind the scenes look at how the Candy Crush Soda team comes up with ideas and decides what to build next!

read more »

Facilitating the Elephant Carpaccio Exercise

Posted on by

One of the best exercises I know of on how to learn and practice User Story slicing techniques is the so called Elephant Carpaccio exercise. At Spotify it is something of a staple as it it is (often) used when introducing new employees (now a days).

The exercise is about creating a quoting application which includes different markets, tax and discounts. If you have not done this before your initial slices will probably be pretty large. The aha moment is when you realize how SMALL you can actually make them. You can can dry run this exercise by only creating and discussing the backlog. It’s also very friendly to actually do it for real by programing the application; even excel can be used to do that.

Henrik Kniberg has written an excellent guide on how to facilitate this exercise. Here’s my slides based on that presentation to make it a little bit easier to remember and run it in a classroom.

“As a, I want, So that” Considered Harmful

Posted on by and

If you are working on an agile project, it is almost certain that you are using Stories to describe your backlog of work. It is another near-certainty that if you are using Stories, you write them down using this format:

As a <user or stakeholder type>
I want <some software feature>
So that <some business value>”

As someone who cares about the state of agile practice, I want to offer some alternatives, so that agile teams remember that the point of the story is in the telling, not the template. The shared understanding comes from the conversation, not the card. By offering you different ways to ‘tell’ the story in its short written form, I hope you will be able to re-ignite a greater level of meaning, interest and engagement in your team’s discussions about the work they are doing to build great software that matters to people.

read more »

Customizing the Google Spreadsheet Story Card Generator

Posted on by

At my current project we use a Google spreadsheet to manage our backlogs. This works really well for storing and sharing the backlog, but it’s not very good for visualizing it. So we print out the stories on cards by copying and pasting each row into a document table cell and reformatting, adding extra labels, and manually inserting priority. Well, that’s what we did the first couple of times, until I found David Vujic’s fantastic Index Card Generator for Google spreadsheets (http://davidvujic.blogspot.se/2011/06/visa-vad-du-gor-eller-dude-wheres-my.html).

Except, we have multiple backlogs in one sheet, our column names aren’t the same, and we use a different layout for the cards. Here’s how we customized David’s script! read more »

Establishing the first common product backlog

Posted on by

The past few days at my current coaching assignment have been great. We created a new backlog for all work they need to accomplish in the months ahead. The meetings where we laid the foundation for the future were marked by a high degree of collaboration between the participants and energy. It has been really fun to work with them so far.

read more »

The Product Owner team

Posted on by

In my opinion, the Product Owner (PO) role is the most demanding one in Scrum, since the PO needs to have so many talents and you rarely find all of them in one single person.

You need to know

  • the business (what makes money for the company)
  • the end users (what makes them spend their money)
  • the stake holders (what drives them)
  • the development team (how software is made).

You also need to know how to translate all of the above into user stories. On top of that, many POs are also responsible for finding funding for their product and development team within the company.

It’s very difficult to find one single person that does all this well, so in my current team we formed a PO team instead.

Our Product Owner team consist of two people: a business analyst and a project manager. This has turned out to be a really good combination.

The business analyst specializes in turning customer and stake holder needs into requirements. In our case, requirements are expressed as user stories, usually in the popular form “As a <role> I want to <do something>, so that <explanation why>”. Writing   user stories doesn’t come naturally to everyone, it requires practice and skills, so it’s really good to have the business analyst working with the stake holders documenting requirements this way.

To be able to write consistent user stories, our business analyst, working with the stake holders,  has made a domain model explaining all the concepts used and their relations. This model is not a data model for implementation, it’s more of a dictionary defining what we mean when we discuss various aspects of the application. This has proven to be very useful.

In essence, in our PO team our business analyst is responsible for the content of the product backlog. Every time requirements are captured and put into user stories they are reviewed (or written) by him.

The project manager in the PO team also works with the stake holders, but discusses priorities, funding and external dependencies (such as roll out of new functionality in the organization). This requires a different set of skills compared to doing business analysis. This is about in which order and when things are done and delivered.

In essence, in our PO team, the project manager is responsible for the release plan in the product backlog as well as ensuring funding for the user stories. In this organization it’s the stake holders that have the budget and not the PO.

Our PO team works in pairs having two different types of backlog grooming meetings with the stake holders every week.

The first meeting is about the content of the product backlog. They go through all the user stories clarifying, adding and removing stories as new opportunities come up and other become obsolete.

The second meeting is about prioritizing the product backlog and making a release plan for the next three sprints. Market windows, campaigns and product launches are taken into account when creating an absolute priority for each user story (that will last at least until the next meeting).

As I have described in an earlier post, the product backlog is posted on a wall and stored electronically in a PowerPoint document.

Having the PO team working as a pair has proven to be very successful. Each member contributes with his skills and as we know from pair programming two heads think better than one.

Q: Who has the final word about the priorities?
A: The project manager, since he is responsible for the release plan and funding.

Q: Are the ever confilcts between the two?
A: Not more than usual when two people discuss.

Q: If the team receives a task/user story by someone outside the sprint, who do they talk to?
A: The project manager, since it’s a priority issue and it affects the current sprint and the release plan.


Where to store the product backlog and the release plan

Posted on by

In my present team we have tried many formats for the product backlog and the best one so far is – PowerPoint!

We started out with Excel. Excel documents are nice because they are easy to distribute and almost everybody has the ability to read and edit them. You can sort the backlog by rearranging lines with cut and paste, but it’s a bit complicated. If you’re not careful you may lose lines/stories. Another drawback is that the the product backlog easily becomes really large. A 200 lines Excel document is a small one, but a product backlog with 200 user stories is huge, especially considering that we do about 15 stories per sprint.

Next we tried out Trac. Trac is a ticket system much like Jira. We liked the idea of having the product backlog in the ticket system where user stories/tickets never get lost, are versioned, accessible via a web interface and can have attachments.

Unfortunately it’s a pain to prioritize in a ticket system if you want an absolute priority order and not just categories like High, Medium, Low etc. You have to add a numeric filed with a priority number and sort the list according to that. Sooner or later you will end up having to manually renumber several stories just to be able to squeeze in some new stories between existing ones.

By now you probably understand that rearranging and prioritizing the product backlog is really important in our team. Our stake holders work very close to the market changing the priorities of upcoming user stories as market windows open and close.

It was with some excitement we tried out ScrumWorks. In ScrumWorks you can rearrange the product backlog using drag and drop. There is a fat client and a web interface and it doesn’t cost any money to get started. We tried the basic and the pro versions. However, there was no success for us. Perhaps it was the need for a fat client to be installed (and in this organization people usually are not permitted to install software on their own machines) or that people needed to learn a new application (Excel and Trac were already known and in use). As it turned out nobody used the application, for whatever reason.

So far, none of the applications we tried out had a natural limit for the number of user stories you pour into the product backlog, which in all cases lead to a very large backlog. That’s a bad thing since it’s only waste to have items in the backlog that won’t be implemented for the next two years, especially in a fast moving business. Unfortunately we didn’t quite have the discipline to keep the backlog small, so we needed something that would help us in this area as well.

Finally, our business analyst Magnus Almkvist came up with the idea to use PowerPoint – one slide per user story. At first it sounded strange, but it actually works really well.

A PowerPoint slide reminds a lot of the original index card that you read an learn about on all Scrum and PO courses. Whatever you write has to fit on a limited space and it’s easy to rearrange the order in the backlog in the slide sorter view in PowerPoint using drag & drop. Color is used to mark user stories that belong to the same epic/theme and different layouts (backdrop/font color) are used to indicate the readiness of a user story (approved, implemented).

The printouts (6 slides per page) are posted on a wall in the corridor where everybody that works with our team can see them. The wall is updated at least once per week, but the original PowerPoint file is stored in Subversion on the intranet and is available for reading to anyone who want the electronic version. We also have a link from our wiki to make the backlog really easy to find.

In our backlog grooming sessions (once or twice per week) where out PO team meets with the stake holders to prioritize, add to and remove from the product backlog, the printouts are put on a big conference table (no chairs). The user stores are arranged in the order all can agree on and as things are moved around, removed or added scissors are used and new stories are written on pieces of paper. This hands-on way of working is greatly appreciated.

At the end of the session, the original PowerPoint file is updated to document what’s on the conference table.

A PowerPoint file with 200 slides is huge, so there is a natural desire to keep the number of slides/stories to reasonable number. Also, the wall where the stories are posted and the conference table used in the grooming sessions make natural boundaries for the size of the backlog.

The release planning is illustrated in the product backlog by inserting head line slides with titles like ”Sprint 23”, ”Sprint 24” etc. The slides following ”Sprint 23” contain the user stories planned for that sprint, until the next head line slide. Normally we plan three sprints ahead and after that we have a head line slide ”Bad hair day” (referring to the fact that the last part of the backlog in not groomed very well).

On our wall where we post the user stories, each forthcoming sprint is represented by a column of user stories. This makes it very easy to see when a particular user story is planned to be released.

What about attachments and additional documents?

Well, you can paste almost anything into a PowerPoint slide – and we do. Sure it turns out really tiny because we have a limited space for additional info), but in MS Office all information from the original document is preserved when you paste into another document, so usually you can see all the details by double clicking on the pasted item and zooming.

So far, this scheme with PowerPoint has worked really well for us. It’s a nice mix of working with physical items (the wall and the conference table) and being able to share with people in other locations (wiki link to Subversion) and finally we have one indisputable original with versioning thanks to the version control system.

We haven’t let go of Trac completely though. We don’t use Trac for the product backlog, but for the sprint backlog. When the sprint starts each user story in the sprint becomes a ticket in Trac. We like the traceability we get when we check in code in Subversion with reference to a Trac ticket. We can see exactly what code changes each user story caused. And of course we use Track for bug reports and team wiki as well.