Does every item in the product backlog require a User Story?

At a recent workshop on agile requirements, I was surprised by the number of attendees who had been told that EVERYTHING in their product backlog had to be written in the form of a user story, and specifically in the format described in Mike Cohn’s great book User Stories Applied for Agile Software Development: As a <type of user>, I want <some feature>, so that <some goal>.

Now, I’m a huge proponent of writing user stories. So-called “Requirements” are the hardest part of software, and a user story, when done right, is a great way to make requirements a little bit better. Like many tools, they are most useful when used as intended, namely a quick way to describe a requirement with a bit of context, so that the team knows who to talk to for more details and what problem the feature is trying to solve. They are not the only tool we can use to make our requirements a little better, we have other things like Acceptance Criteria (actually an important part of a user story, the “confirmation” of the three Cs: Card, Conversation, and Confirmation). We have Story Maps, Use Cases, User Persona, and a host of other great tools to use. User Stories are probably the easiest to understand and teach, and maybe for that reason, they are the most common agile requirements tool. I love to use them, as well as the other tools.

But I am also lazy. I abhor anything that smells faintly of “busy work”. Writing a user story for every item in a product backlog smells pretty strongly of policy over pragmatism, or to put it another way, Processes and Tools over Individuals and Interactions. So jump the break and let’s look at when to use the User Story hammer and when to leave it in the toolbelt.

Continue reading…

Measuring the success of an agile adoption

Over the past several years scrum has grown to become the most commonly used product development method at Adobe Systems. Large desktop software products like Premiere Pro and After Effects, Platform tools like Adobe AIR, and Software as a Service products like Acrobat Connect and Omniture SiteCatalyst are using scrum to become more effective at delivering the right solutions to customers with higher quality. In 2011, I presented a paper at the HICSS conference that describes some of the things Adobe teams try to measure when they move to scrum. Details after the break… Continue reading…

The benefits of the Daily Scrum part 1: Building Trust

The daily scrum is one of the most recognized parts of the scrum framework. Even for non-scrum teams, it is a simple practice that can bring a lot of benefit to a project.

There are lots of great things that an effective, quick daily scrum does for teams and individuals. Some of these are obvious, like:

  • Keeping the team in sync on how things are going
  • Providing an opportunity for small course corrections within the sprint

Some of the benefits are less obvious, but are every but as valuable:

  • Building trust between team members
  • Encouraging personal planning

I’ll cover the building trust portion after the break, and other benefits in coming posts.

Continue reading…

The Heart, Mind, and Tactics of Agile

At the Scrum Gathering in Atlanta this week, my friend Petri Heiramo (@pheiramo) and I were discussing the different agile frameworks, how they were similar and how they were different, and which parts of those frameworks were most important to success. The conversation included lots of sketches on napkins, revisions, and iterations. Eventually we worked out together what we think is a pretty good way of thinking about what Agile is, how the different agile frameworks are similar, how they are different, and how to decide which parts to try in which situations. This blog post clarifies my thoughts based on those notes. We’ll look at Agile in three ways, what we call the Heart of Agile, the Mind of Agile, and the Tactics of Agile.

Continue reading…

Time, Priorities, and Innovation

Does your team constantly feel under the gun to deliver more stuff faster? Are you often told that “these features HAVE to be in by the deadline” (or it will trigger the apocalypse, I presume). Oh, and by the way, please be innovative, right away. Let’s take a look at some of the core agile principles, and see how, when applied correctly, they can help companies create a culture of innovation.

I was recently reading this article from the Wall Street Journal. One of the paragraphs says:

“Instead of saying “I don’t have time” try saying “it’s not a priority,” and see how that feels. Often, that’s a perfectly adequate explanation. I have time to iron my sheets, I just don’t want to. But other things are harder. Try it: “I’m not going to edit your résumé, sweetie, because it’s not a priority.” “I don’t go to the doctor because my health is not a priority.” If these phrases don’t sit well, that’s the point. Changing our language reminds us that time is a choice. If we don’t like how we’re spending an hour, we can choose differently.”

This got me thinking about how this applies to our work lives equally as much as it does to our personal lives.

Time in Agile
According to the Principles of the Agile Manifesto, “Agile processes promote sustainable development. The sponsors, developers, and users to maintain a constant pace indefinitely”. This means that once teams figure out what “sustainable pace” means for them, the amount of time we have to work is roughly fixed, with occasional exceptions for urgent & critical business needs.

One opportunity to get more effective time is to examine how often team members are asked to multi-task or context switch. We know that multi-tasking can have as much as a 40% penalty on how productive we are. One of the purposes for the rule about not adding new stuff to the current sprint is to provide the team a chance to focus on the work without distractions. Many teams are also implementing the Kanban principle of limiting Work In Progress (WIP) during the sprint to help cut down on this problem.

Priorities in Agile
Taking the recommendation from the article, we may want to practice changing our language from “We don’t have enough time for that”, to “that’s not a priority for us”. How we communicate that to stakeholders asking us to do their thing may require a little finesse, or we may simply refer to our “Priority Information Radiator” aka the prioritized product backlog, showing the priority of the request, and explain the timing of delivery of their item in terms of our average sustained pace (velocity). There can be some benefit to good politics here, trying to keep the stakeholders happy without setting unrealistic expectations, but having a logical plan behind your prioritization allows you to explain WHY things are in the order that they are. A stakeholder will always want their thing first, but being able to clearly explain the reasons for the priorities as they exist can at least provide context of why they may have to wait. In addition, Luke Hohmann recommends that every release (or every quarter for rapid-release teams), product owners prioritize such that every key stakeholder gets at least one thing. This seems wise to me.

Innovation in Agile
I also hear from teams that they are concerned that Agile might stifle their creativity or innovation. In Tom DeMarco’s great little book Slack, he describes an all-too-common anti-pattern of trying to do more stuff, faster, more efficiently all the time, and how eliminating all slack in an organization leads to an organization that cannot change. If you are seeking to “fully load” all of your employees, first of all, as soon as conditions change they are now overloaded (see above on limiting WIP), and second of all, there is no slack time, no down time to dream up great new ideas, to reinvent processes, to experiment:

“…in the superaccelerated corporation, change of direction is almost impossible. The very improvements that the Hurry Up organization has made to go faster and cheaper have undermined its capacity to make any other kind of change. An organization that can accelerate but not change direction is like a car that can speed up but not steer. In the short run, it makes lots of progress in whatever direction it happened to be going. In the long run, it’s just another road wreck.”

Teresa Amabile writes of this challenge in her article “Creativity Under the Gun“:

If you’re like most managers, you have almost certainly worked with people who swear that they do their most creative work under tight deadlines. You may use pressure as a management technique, believing that it will spur people on to great leaps of insight. You may even manage yourself this way. If so, are you right? Based on our research, the short answer is “no.” When creativity is under the gun, it usually ends up getting killed. Although time pressure may drive people to work more and get more done, and may even make them feel more creative, it actually causes them, in general, to think less creatively.

One of the simple Scrum rules is that the scrum team owns the speed of development, and works on items from the product backlog in priority order at a sustainable pace. If a team decided it wanted to make innovation a priority, and Adobe’s leadership is asking us to do this more explicitly than at any time in my 10 years at the company, I can think of at least three approaches within an agile framework to help this succeed.

  1. Build in slack – the development team owns the speed of development. What if a self-organizing team decided to take a page from 3M and gold,  and pull in sufficient work to still allow them to take 15 or 20% of their time to work on things that they were passionate about? This would need to be agreed to ahead of time with the team and product owner to feel comfortable to me, I don’t think teams should do this in a sneaky way.
  2. A product owner could insert a product backlog item, time boxed, to “work on something you’ve always wanted to” in each sprint. This is similar to suggestion one but makes it more transparent that we value this enough to put it in the backlog.
  3. A team could decide to give a certain amount of time back to the team – there are several ways to do this. The After Effects team does “JDI days” between some sprints, where the team can work on whatever they want whit whomever they want for a day, they just need to demo it at the end of the day. Atlassian (makers of Confluence Wiki, Jira, etc.) do a similar thing company-wide once a quarter. Mike Cohn was telling me about a team that has taken the 20% time approach to their sprints, where every fifth sprint, the team are the product owners and can work on whatever they want- they just have to follow the normal quality guidelines.

All of these approaches would fit nicely within a scrum/agile context. You may read this and say “well, my (Product Owner/Manager/Leadership) would never go for that – we need to get all of these features in by the deadline”, you may be working an environment similar to that described by DeMarco – a Hurry Up organization. Since this may be at odds with most company’s (including Adobe’s) stated philosophy of Innovation first, it may be appropriate to raise this concern with said Product Owner/Manager/Leadership.