If you are struggling with concrete enough acceptance criteria, acceptance criteria that doesn’t specify the “how”, just the “what”, one technique that I find especially helpful is specifying “How will we demo?” to the story. This usually puts the product owner and the team in the right frame of mind for what we’re getting at with acceptance criteria something both specific and actionable. For instance, if you are designing a shopping cart, the question “How will we demo this” may bring up a discussion of one book from the catalogue being searched for and added to a shopping cart and displayed for view. Typically I’ll have this as part of the template for a story card. Part of the beauty of this method lies in the act of imagining what will count as done in the future. There is something about the act of forcing humans to “remember the future”, of what the screen or web service will look like in two weeks during the iteration demo, that helps substantially when trying to get enough detail to estimate or commit to a story.
How will we demo?
Restickable Glue Stick – Another reason 3M has a stranglehold on the Scrum Community
I like 3M post-it notes for sprint and release planning. It makes it really easy to have multiple people interact with stories and tasks. Unlike electronic tools, I don’t become a bottleneck for planning. However, I’m not against electronic tools. In fact they make sense for distributed teams and for backing up data that is on cards. So, what’s a girl to do?
This is where the 3M restickable glue stick comes in. It’s like regular glue stick, except you can use it to make anything into a repositionable sticky note. This means you can print your backlog from Excel, Google docs, Rally, VersionOne, etc. onto paper sheets or Avery card stock, slap some restickable glue stick on each story, cut them out and stick-em to the wall. When the product owner wants to change priority on a story, just pull it up and move it and stick it where you want it. Rather than hard to use clear Scotch tape, which is hard to unstick, or bright blue painters tape which may cover your story card, this is hidden and easy to use.
One stick of this stuff lasted me about 10 sprint planning meetings.I recommend a stick in every Scrum Master’s kit.
In a later episode, I’ll explain how I like to print out my backlog to Avery card stock to make planning easy.
David Anderson Speaks at Bay Area APLN
I attended a special meeting of the Bay area APLN chapter. David Anderson gave a talk on his recipe for success with Agile. Here are the notes. It was a good talk. I especially liked his description of how he pulled his development teams in to an all hands meeting on his second day on the job to give the teams permission to not write bugs any more. That is great servant leadership.
This reminds me of a similar struggle I had once with an individual on a development team when I was a team lead. The team wanted to try TDD and he was very opposed. He was the technical lead on the team, and we had a good relationship. After trying various techniques, tutorials, pairing with those who knew TDD, an “intervention” meeting with upper management, I realized that it wasn’t the lack of knowledge or clarity around our support for for TDD that was the issue. So in our one on one meeting, I asked him what is holding him back from endorsing this. After a long while of discussion, it came out that he felt that using TDD would slow the team down, and we wouldn’t deliver as much value to the client and might miss the date.
Aha! There was the tyranny of the schedule rearing its ugly head again. I realize that I had put him in a position where he had to both A) be in charge of the technical quality and B) was responsible for hitting a date with a fixed amount of functionality. I was the problem! So, rather than go into argument about why TDD is a good idea (he knew it was, but was under an impossible iron triangle problem) I told him that he was no longer in charge of making us hit the date. He was only in charge of delivering high quality software. I would take care of the delivery problem.
And you know what happened? The team embraced TDD, quality went up and we went faster because we stopped having to track and fix bugs from previous sprints. This all came back when David was discussing his slide on Giving Teams a Permission Slip for Quality.
Planning Poker Timer
Timers are valuable when you want to timebox a discussion. I’ve used this planning poker timer when I’m with a team and we are planning our iteration. I also use it when setting 30 minute work goals for myself. It has a nice bell when the time runs to zero, and changes from green to red, giving a nice visual cue.
Mickey Phoenix created this manual planning poker timer which I like even more, if you’re into analogue. kind of a Rube Goldberg contraption with a sand timer and a bicycle bell.
Distributed Cognition, marrying GTD with Agile Collaboration tools
This article by Francis Heylighen and Clément Vidal points out an interesting opportunity to leverage the concepts of external cognition tools like David Allen’s Getting Things Done methodology to assist in the working world for a collaborative environment that supports distributed cognition. While the paper describes a help desk ticketing system, when they discuss a points based system for organizing and estimating work, they are really talking about a system that we use in agile to do collaborative planning. I have often been toying with the idea of a connection between agility and GTD, but haven’t really figured it out until I read this article. What planning with sticky notes allows us to do is to get things out of our head, a GTD principle, and use distributed cognition to leverage the higher order intelligences of our mammalian brain, rather than our reptile brain. Rather than having to keep stories or ideas in our head, in a contentious meeting, for instance, we can collaborate together if we get all of our ideas onto sticky notes and put them on a wall. Now we are free to group and prioritize the ideas using multi-dot voting to come up with the best idea. Part of this process that is so compelling to me, is the idea that once you stop using your brain to remember things (and we probably only have a 2 week memory for events and experiences anyway), we can use physical reminders of things to remember stories, risks, features, vision so our higher order thinking can come in and consider alternate approaches or scenarios, without the concern of forgetting details.
Use Parallel tracks for user experience work
At the APLN Leadership Summit I was fortunate enough to attend a track led by Arlen Bankston and Jeff Patton that discussed some of the patterns and practices that are beginning to emerge for incorporating user experience into the agile process. One of these that I found particularly refreshing, and common sense, was the notion of using parallel tracks of development between the usability folks and the development team. Far from the stern warnings of “big design up front” that are proscribed by agile methods, this practice is lightweight, rapid and allows for the development team to hit the ground running with a well designed interface to code to when the sprint begins.
Parallel tracks basically tells your usability team to stay 1-2 sprints ahead of your development team. During this period, they are doing paper prototyping, interviewing users, creating personas, developing scenarios and rapidly iterating on rough mockups of the design with actual users to discover usability bugs. After a sprint of prototyping and developing, the usability team has a conversation with the development team about the stories that are going to occur in the next sprint. The stories are sized and negotiated between the product owner, the designer and the developer.
For example, A developer might point out that what would be a 13 point story for a search interface design, for instance, might be accomplished in only 3 points with a couple tweaks. This meeting might be called a product definition meeting, and could occur a day or so ahead of the sprint planning to give the design team a chance to change the design after the developer feedback. The development team then develops against the design for the next sprint. Meanwhile the design team is busy preparing the next top eight or so stories from the backlog that the team threw into their next two sprint’s lookahead plan. If the development team had delivered any functionality from the previous sprint, the user experience team can start engage in user testing on those stories.
This approach was discussed in an article by Desiree Sy who used this process at a company called Alias, which is now AutoDesk. I have a crude drawing of the approach described in the article, shown below:
Since we were in a modified Open Space format, there was a fair bit of anecdotal confirmation from practitioners attending about the value in this approach. The fascinating thing was that for the individuals in the room, some with many years of scrum experience, you could see there was almost a visible sigh of relief, as they realized that others were using this practice, and that it wasn’t “wrong”. However, as it worked with many teams who had not previously read about this approach, it is looking promising as an emerging best practice.
One of the reasons I believe that this method is consistent with the agile approach, is that if you consider the usability and user interaction designers as strongly allied to the product owner teams, they are actually using a common best practice which is to keep a backlog that is well groomed for the next few sprints. A good user interface design, far from being a cast in stone user specification, can be a tool that can demonstrate more succinctly the user’s goals and value from a system than words can.
Another reason I think it might work to produce really good user experiences, and I’m thankful to Arlen for this insight, is that it allows the design team to employ a type of set based design, where a number of options for the interface can be simultaneously explored at once, to create innovative designs, rather than the single simplest design that could possibly work. While this is a good practice for backend architectures, evolutionary design can only take a mediocre design to an OK design. To create compelling user experiences, you need to start from a good or great design and iterate to make it better.
This practice, taken with the other 12 practices that Jeff recommends can integrate more successfully with usability teams and create the kind of user interfaces that customers are now demanding.
Bucketing stories for quick estimation
So, you’ve been running a few sprints, you have a velocity and a backlog. The trouble is your team tends to estimate your stories in your planning meetings and it really drags the meeting on for a long time. Never fear, I learned a technique for taking a wily backlog full of unestimated stories and getting team estimates on them quickly called bucketing. Kane Mar and Chris Sterling both have good posts on this topic as it was discussed in the Scrum Trainers meeting (called affinity estimating). I hope I am not wearing the topic thread bare by repeating it here. I hope to say, it works! And that imitation is the sincerest form of flattery.
While planning poker is a good technique (I own a set of Mike Cohn’s planning cards myself) and may be used to get more accurate estimates, I’ve found bucketing to be more efficient. Plus, accuracy is not really what we’re after in this excercise, just a reasonable approximation of relative size. Here’s a technique I’ve used before to estimate a set of 80 stories in under 2 hours, called bucketing.
What you need to prepare:
- A backlog for the current release. These don’t need to be prioritized, but it will help if you are going straight into sprint or release planning.
- A printed version of your stories, either hand or printer printed. I printed my stories out onto Avery 3×5 cards and put 3M restick-able glue on the back of the cards to make them into post-its. You can just as easily do this with yellow 3M post-it’s or their genero-brand Staples cousins . (I like the super sticky variety, for longevity of stickyness, especially if you’ll be saving them for later use or sticking to a cork board).
- A bell or timer that one of your team mates can use to speed things up, if necessary.
- Scrum Master
- Product Owner
- Write these numbers and symbols on a whiteboard horizontally. 1, 2, 3, 5, 8, 13, 20, 40,60, 100, ?.
- Arrange your stories nearby the whiteboard. I like to stick them on Sticky Easel Pad paper. (No, I don’t work for 3M).
- Pick up the first unestimated story. Read the title of the story and any other information on the story card. You may have one of your team perform the role of reading off the card.
- Allow people to ask clarifying questions of the product owner.
- Have someone propose a bucket, or points to put the story into
- Ask if there are any strong objections to this. If not, put it into the bucket. Tell the team you can change this later (anytime during the event and at sprint planning) to reduce the fear of “getting it right”.
- Move the next story and repeat the process above.
If your team members get stuck on a story for a long time, feel free to put it into the question mark bucket. Or you may have a team member ask “Can I timebox this?” and set a sand timer down for 2 minutes. When the 2 minutes are up, ring a bell. Then ask if the team needs more time. (timeboxes that are hard stops are just more stressful and annoying than ones that have optional extension)
You may find you have to split, or group similar stories into one. That’s fine, and even helps get the backlog ship shape.
The point of this excercise isn’t to get the estimates perfect. You won’t be able to do that, even if you had all the time in the world. The point is to get them between 50% and 70% accuracy. The benefit of this is that now the product owner will have much better information about the relative costs of the stories she is proposing. And having gone through all of the stories for a release, you will have a much better understanding of the product.
- Use T-Shirt Sizes (S, M, L, XL) for stories if “size doesn’t matter”.
- Have folks silently group stories into buckets. This is called affinity estimating and as Kane describes here, is an even faster way to get quick estimates on the backlog.
This will prepare you much better for the next essay in this series, which will be release planning.
Agile Open Northwest
I attended Agile Open Northwest. It used a cool concept called open space. No set speakers, no powerpoints, no agenda. In the beginning, 120 people meet and some of them propose topics and then post the topic up on a wall with a room and a time. I proposed and hosted two topics:
- How to make standups effective (and fun)
- How Do I Conduct A Multiple Team Release Planning Event
Look who’s got a Lookahead Plan?
After seeing Mike Cohn’s presentation on Agile Estimation and Planning, I got very excited about a technique he described as lookahead planning. A lookahead plan is simply a quick look at the next couple sprints to determine what stories are coming up, typically done at the end of a sprint planning meeting.
All you do is after the team is committed to the sprint, just take 15-20 minutes with the team to move stories from the backlog into two quadrants (butcher paper or whiteboard squares) labelled sprint n+1, sprint n+2. Indicate the velocity your team has committed to (I will used the velocity we committed on as a team in the last sprint) in each quadrant. Then, just have your product owner and team move them into the sprint until the points from the story fill up your sprint velocity buckets. Bang, you’re done.
We just tried this after our normal sprint planning, and it worked pretty well. We noticed immediately that there were a few stories that were irrelevant, and a couple missing stories that we needed to get estimates on, one story that needed more acceptance tests filled out for it and one that needed a followup on a third party vendor. This kind of work we used to wait until a few days before the sprint to do, and made our sprint planning meetings take much longer than necessary. I suspect that doing it 30 minutes at the end of a sprint planning meeting will more than pay for itself by having a more tightly run sprint planning meeting next sprint, with all the lookahead work we’ve done. I’ll keep you posted.
The best part of this, is that for the longest time, I could not figure out how to keep my release plan up to date. It would look great after maybe one sprint, but after a few would become staler than tube socks in a high school locker room. With lookahead planning, it just take a few minutes to update the most important sprints (the next two or three) from the product backlog.
How I do standups
Everyone has their own flavor of standups. Some do it standing up. Some do it sitting down. Some do it in a club with a microphone. I’ve never been that brave.
For me, the scrum standup goes like this. I break it into 3 parts.
As you can see, the meeting begins before everyone joins. For me, answering the question “What did I do yesterday” can lead to me missing a few things. So I like to bring a list, written on a 3×5 card of what I did yesterday, what I’m planning on today, and what’s blocking. It helps me to remember, especially if it is the Monday after a weekend. Also, if anyone is out, I print out their standup report so I can read it aloud.
I like to have everyone stand around a circular table, where we have our conference phone. The team members should stand be fairly close together, not HR violation close, but close enough to hear the soft spoken introverts without having to repeat anything. We stand in the team open space, by our task board, whiteboard, burndown chart and our blockers board.
I will call into the conference call a minute or two before the standup begins. My product owner typically will join the call, since she is located off site. Note, it’s a good idea to turn off the conference call feature that makes callers wait for a chairperson. Otherwise, you’ll end up missing a standup one day and no one knows how to dial in the product owner.
For my standups, I actually standup and have all the team standup in the meeting. I find you reach decisions more quickly if you do.
Even though I’m the Scrum Master, I’ll typically stand with the team in the circle. I know Mike Cohn doesn’t, for fear that everyone will report to him, rather than eachother. However, I feel I that I’m a part of standup as much as anyone else, that since I’m asking others what they’ve done yesterday and will do today, I should be held to the same standard, even if it is just going to meetings, filing paperwork and sending emails.
We punish latecomers by making them dance or sing a song. I have yet to have someone sing a song, but have seen some very entertaining dancing (our SDET has graced us with the Madagascar dance “I like to Move It Move It!” a few times.) It’s a gentle way to reinforce that we start on time.
During the actual meeting, I’ll ask who would like to start. Rather than start with one person, I find it’s more democratic to let someone who is ready go first.
We’ll go clockwise. Once we tried to go in alternating order, like a pinball machine. It didn’t work. Perhaps if we had a “conch shell” ala Lord of the Flies it would.
What I do during this meeting is very carefully listen to people for any hidden impediments. Things that they are really stuck on, but they just mention it in passing. Jeff Sutherland came to speak to us at a company meeting a while back, and he said, that the most valuable part of standup is the impediments. Even if they are buried in the mass of status, these need to be pulled out and recorded.
Therefore, I actually have a pile of Post Its, a Sharpie and a block of butcher paper that I use to record impediments during standup. Any impediment that is not resolved by the end of the person’s report (allowing 1 minute to resolve issues max to keep things moving) goes on the “Blockers Board” . This has three columns. Impediment, Who, When. Typically, my impediments just have the name of the impediment (with a note about who reported it on the sticky) and a who (I go through and assign whos after standup). If the impediment will be there for awhile, or it has been there for awhile, I’ll assign a due date to it so there is more impetus to clear it. Occasionally we’ll go a few days with some stale impediments on the board, but the majority usually get cleared by the next standup. This helps individuals, I believe, to feel like there is value to them bringing impediments, because they will be actioned and someone held accountable.
We also record offline topics that come up during the standup on the whiteboard, along with who needs to stay to discuss. Folks are pretty good about taking issues that might extend standup past 15 minutes offline by asking “Can we take that offline”?
After the official standup, I’ll excuse the product owner and go through any outstanding impediments on the Blockers Board. Usually, I’ll tear off quite a few, but the ones that stay get a star so we can track how stale they are. Then, we’ll ask those who need to stay for offline topics to stay. If we are good, we’ll have kept the meeting to 15 minutes. If we are bad, we’ll have dragged on a few minutes after, but that is not so bad, as long as it doesn’t happen too often. If it does, people are de-energized by standup and do not leave feeling like they got something out of the meeting.
I’ve toyed around with the idea of ending with a catchy phrase like “let’s go get things done!” or “I love it when a plan comes together”. Maybe I’ll try this tomorrow.