Tuesday, October 06, 2015

Stories and Maps

I conducted a user story mapping session with my client last week and it proved to be a very effective way to help them see the big picture. The idea came from Jeff Patton. You can find more about it here.

If you're not familiar with user story mapping, it is something like this: first you think about the high-level functions and features you're going to be delivering and you prioritize that horizontally from left to right. Then you take your user stories for each of those features and you prioritize them top to bottom. Here's a picture to help you see it.

What I had seen with my customer was that we had gotten too focused on one of the features and spent almost a whole iteration getting it perfect, rather than prioritizing all the stories across all the features. By setting up a story map they could see all the work that still had to be done, which help them decide on what stories were really needed for the first release and which were just window dressing.

There's this idea of the walking skeleton, which is the bare-bones minimum that you could include into a release and still have it functional. Story mapping helps you identify the walking skeleton because you're looking across all the features. Going back to our picture, we would draw a horizontal line through the user stories. Everything above the line is part of the walking skeleton and would be delivered in the first release with the stories below the line coming in future releases.

So if you're having trouble prioritizing your stories try using the story mapping approach to help you get the big picture.

Monday, August 24, 2015

The System Shall...

I’m currently working with a client that is adopting agile, which really means there are people around that have done agile, but it’s not widespread nor is anyone on my particular project experienced with agile. As is common in these situations, I’ve gone through at different points to try to help them develop their agile mindset. My developers are well-versed in agile, but the client is acting as the product owner, so their understanding of agile is important to project success.

Before my team started development, the client started working on a “requirements document.” It’s full of statements like “The system shall allow the user to select a need by date” Now while each snippet can help provide information, the document as a whole is about impossible to digest in order to understand what we’re supposed to build. I’m going through the document and working with the client team to extract user stories. 

As I’m working with the client, I am also trying to build the agile mindset within them. Agile isn’t just about following a different process. It’s about thinking about what you’re doing, inspecting and adapting as you go. In order to do this effectively, you need to know the why behind your actions. Why are we writing user stories instead of requirements documents? Why do we work in short iterations? Understanding this will help them become more agile, even after my team and I leave...and maybe they'll no longer be writing "the system shall..."

Thursday, July 23, 2015

Lean Climbing

I’m on my way to Colorado for a weekend of outdoor adventures, climbing and mountain biking. As I was looking over the route for the climb (Kelso’s Ridge up Torrey’s Peak and a possible double with Gray’s Peak) I remembered an article I recently read on applying the principles of lean climbing to business (here).

I’ve done a couple 14ers before, so this will be my third and maybe fourth, all with my son. We plan on being lean on this climb. Enough water and food, but not much more. Our timebox is getting down the mountain before the afternoon thunderstorms. 

My current client seems to get lean. As we were working through the user stories for the project, they made the decision to prioritize and pull out the lower priority stories without any prompting from me. With so many of my clients, there are many discussions before they think about taking any stories out of the backlog for the current release. 

I think if I could take my clients on a climb, with each user story represented by a small rock in their backpack, they would soon realize the benefit of keeping it lean. There’s a cost with each user story, and being able to defer some stories means you get up the mountain sooner. 

Tuesday, June 09, 2015

Morning Routines

I’ve come across a number of articles lately that have talked about the importance of a good morning routine (like this one), so I have been trying to practice some of these techniques.

One practice is to start the day with meditation, not checking any electronic devices. I'll admit, sometimes when I'm working from home I'll turn on the TV while making my morning coffee before heading up to the office, but I don't start responding to email first thing in the morning.

Another recommendation is to journal. Your mind is the most sharp in the morning so that is not the time to waste responding to emails. Instead figure out what your top two or three priorities are and try to get those accomplished first thing in the morning. Journaling can help you figure out where to start your day.

I have also found that I can change my evening routine to be more productive as well. I find when I'm traveling and staying at a hotel, that if I skip the TV and put on music instead, that I'm more focused and get more work done.

So is it time to change up some of your routines?

Thursday, April 30, 2015

Time for a Demo?

When I first learned Scrum, the idea was to have 30-day (4 week) iterations with a demo at the end of each iteration. Today I see teams that have iterations from 1 to 4 weeks, or in the case of Kanban, no iterations at all. So the question is, how often should there be a demo?

I’m a believer of getting sign off on a user story once it's done. This usually comes from the person who wrote it, who may be a proxy to the product owner. So when we get to the end of the iteration, all the stories that are completed have already been reviewed by someone on the business side but not necessarily the product owner. 

So the questions is, If it’s a short iteration, does it make sense to have a more formal demo of the stories? I think in some cases the answer is “no.” 

On one of my projects where we were using Kanban, we planned the demos every 4 weeks. This allowed us to finish a set of stories that were part of a feature, so the demo was more complete. I think this approach works with short iterations as well, only conducting the demo after every second or third iteration, depending on how long your iterations are and how complex your features are. 

There's also another consideration. I work with clients building applications that will get rolled out to the organization. On these projects, we need to consider organizational change management. The demos serve as a way to help introduce the new application to the end users. So from this perspective, there may be a large number of attendees at the demos. This is another argument for less frequent demos.

So while a demo can be held at the end of every iteration, even for short iterations, there are some reasons to hold them less frequently. 

Monday, April 20, 2015


When I was young, I had a riding lawn mower. We had a big yard out in the suburbs and the riding mower made the job quicker. Today I live closer to downtown in a house with a smaller yard. I’m currently using an old fashion reel mower…no motor, just foot power to make it work. For the yard I have, it’s all I need.

With all the technology around us, it’s easy to get caught up in the latest thing. Tools can make us more effective, but sometimes they can be distractions. 

Take project management tools. There are a plethora of them around and I have used them effectively on projects. But I have also run projects with just a white board and stack of post-it notes, not letting the technology get in the way of interacting with my team.

The Manifesto for Agile Software Development says it should be “Individuals and Interactions over Process and Tools” so ask yourself if the tool you are considering is going to help you or could it just be another distraction? Put another way, A fool with a tool is still a fool."

Friday, April 10, 2015

Minimal Viable Product

I have a customer with a challenge. We've been working on an application and finished our first release. The business folks looked at it and came up with a list of "must-have's" they want before going live. The IT folks are pushing back, trying to keep additional work to a minimum before going to production. They even threw out the phrase "minimal viable product" or MVP as a way say what's the least that can be done.

However, MVP isn't about doing the least amount of work and calling it done. When taken in context of Lean Startup, it's part of a process. First you build the MVP and hypothesize what you think will happen when you go live, you measure against your hypothesis, and ideally learn something that takes you to the next step.

When I work with customers used to a more traditional approach to projects, I often see resistance to the MVP approach. They think they have one chance to get what they want, so they ask for everything. If they truly thought in terms of MVP, they would be able to think about it as what do they want first, knowing they get a chance to ask for more.

In some cases, the next step may not be in the same direction. In Lean Startup, there's the idea of the pivot, making a more fundamental change in direction. Groupon started as an online activism platform and PayPal started out building security software for handheld devices (think Palm Pilots, not smart phones). There are plenty of other examples out there of companies that didn't get the results they expected and made a pivot. Lean Startup is about getting to that point as fast as you can.

For my customer, we're going to time box another round of development, make them prioritize the must-haves, and then hopefully go to production, so they can see it they are moving in the right direction. Are you ready for your next step?