“Hitting the wall” with your Agile Adoption? Try adding technical practices…

This is a great post that uses the familiar metaphor of the gym and physical fitness to apply to adopting Agile. I’ve seen the pattern described here too often.

Developers start out the first three sprints and produce production ready software every iteration. It seems like everything is going well. Then under the gun of the ScrumMaster to keep their velocity high, they build up technical debt (like sprinters developing lactic acid) by not paying attention to technical excellence and practices that will maintain a sustainable pace. This slows their speed to a halt until they clean up their technical practices and adopt test driven development, continuous integration, mercilous refactoring.

The question for me is not whether or not this pattern occurs, but how to best introduce Agile so teams can recognize when it is happening and address it.

On the Scrum side, folks like Mike Cohn suggest introducing Scrum first (using the iterative or requirements first pattern described in his outstanding Agile Adoption presentation). This has the advantage of allowing the team to self organize around the practices needed to maintain agility.

On the XP side, folks like James Shore recommend introducing the 12 XP Practices first (Mike Cohn describes this as “Technical Practices First” Pattern). The tradeoffs to Jim’s approach is that it is costly to start with all 12 practices from day one. Teams may reject the approach altogether, while getting none of the benefits of the practices. But the teams that do will have sustainable pace and agility.  The benefits to Iterative first or requirements first are that the teams learn how to self organize and undergo the cultural change necessary for bottom up commitment based planning. The downside is that somce Scrum is silent on engineering principles, and focuses on developing a self healing system rather than prescriptive practices. The down side to this is that teams may fail. Yet if they are using the retrospective and sprint review effectively, however, effects of failure are minimized (since they can inspect and adapt) and teams will have the added benefit of becoming a self healing system.

My experience is that the end state of having Scrum teams that us XP is a great combination. The paths to getting there are varied, and I’d rather a group learn how to think for itself then think implementing a set of practices will make them Agile. It’s the mind set shift to Agile principles that is important in my opinion, not the discrete practices used.  This prevents Agile and Scrum from becoming yet another prescriptive methodology that says “do these steps in these ways and you will be guaranteed success”.   What do you think? Have you experienced the pattern described above?

Posted in Uncategorized | Tagged , , | Leave a comment

The connection between sailing and software

I wrote this post about sailing “inside” vs “outside” the boat. I learned much from participating as a crew member on a sailing team. It positively influenced my work with software teams, as I’m sure any team sport would.

Posted in Uncategorized | Tagged , | Leave a comment

Bay Area Agile Philanthropy Group

A group of folks interested in using agile values and principles to give back to the community is going to meet in January to charter the Bay Area Agile Philanthropy User Group (BAAPUG). This will be on January 17 at Tacit Knowledge headquarters and we will define the community, the mission, vision and values of the group. If you’re interested in attending the chartering meeting, or discussion what we’re about further, you can join the Yahoo! group here. This group is based on inspiration from Bob Payne at Code Green Labs, creating events where people could both participate in an agile project and help out a non-profit at the same time.

Posted in Uncategorized | Tagged , | Leave a comment

How will we demo?

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.

Posted in Uncategorized | Tagged , | Leave a comment

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?

3M Restickable Glue

3M Restickable Glue

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.

Posted in Uncategorized | Tagged , | Leave a comment

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.

Admission Ticket for Quality Work

Admission Ticket for Quality Work

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.

Rolling the Dice on Quality

Rolling the Dice on Quality

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.

Posted in Uncategorized | Tagged , , , | 1 Comment

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.

A homemade planning poker kit, timer and Mike Cohn's Planning Poker Cards.

A homemade planning poker kit, timer and Mike Cohn's Planning Poker Cards.

Posted in Uncategorized | Tagged , , , | Leave a comment

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.

Posted in Uncategorized | Leave a comment

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:

Parallel Tracks

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.

Posted in Uncategorized | Tagged , , , | Leave a comment

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.

Bucket

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.

Attendees

  • Developers
  • Scrum Master
  • Product Owner

Instructions

  1. Write these numbers and symbols on a whiteboard horizontally. 1, 2, 3, 5, 8, 13, 20, 40,60, 100, ?.
  2. Arrange your stories nearby the whiteboard. I like to stick them on Sticky Easel Pad paper. (No, I don’t work for 3M).
  3. 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.
  4. Allow people to ask clarifying questions of the product owner.
  5. Have someone propose a bucket, or points to put the story into
  6. 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”.
  7. 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.

Bucketing stories for quick estimation

Variations

  • 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.

Posted in Uncategorized | Tagged , , , , | Leave a comment