I’ve recently had a lot of conversations with people who are thinking of iterations as batches. By definition that’s what they are. You sign up for a “batch” of stories, at the beginning of the iteration, and you deliver them by the end of that iteration. However, it is useful to think of requirements (stories) as units of work that flow through the value stream. Here is why I think so. What is a batch? “A batch is a group of items that will be processed at once as a single unit”. Items are usually batched to achieve “economies of scale”. This usually means… Read More »Iterations, Batches and Flow
I am an amateur photographer while I am not not hacking project teams and building custom software at ThoughtWorks. Photographers are known to have bouts of lens lust* time and again, especially at the beginning. I realize that some managers seem to have similar urges when it comes to numbers, metrics. They suffer from acute number lust. In ThoughtWorks, we believe in and encourage self organizing teams. BAs gather requirements, developers write code, QAs test and automate and the customer signs stories off in a flow. The Project Manager role is therefore reduced to making sure that nothing obstructs this… Read More »Number Lust
Although I am not in the thick of things right now (because I am onsite, alone, so far away from my team) I follow the very active kanbandev yahoo group. It’s a great resource for thoughts and questions on lean and kanban software engineering. David Joyce, a group member, posted about a presentation he gave and I found it really good. So here’s the presentation for anyone else interested. It’s definitely a long one but take some time to go through it. Good stuff David.
Once you have your wall in place, it’s time to start monitoring your progress through the project. Best done on a daily basis and best done with a “Finger Chart”. Here’s an example. A finger chart is basically your wall turned sideways so that your swim lanes are horizontal rather than vertical. Now what you track is the number of stories in each state (finger). This chart may not make sense to you immediately but there’s a lot of useful data hidden in here. Here are the different inferences you can make by looking at a finger chart. 1) BottlenecksThe… Read More »Cumulative Flow Diagrams
Starting a new project is always fun. For Agile/Lean teams setting up the story wall is a part of the fun. Some would say you are defining the process that you want to follow. The life-cycle of the user stories from being analyzed to delivered. But there’s more to a wall than defining the story lifecycle. In its wall the team chooses what it wants to monitor. The lanes on the story wall are statuses in which the story can be. An agile team wants to track these statuses to quickly find problems that are slowing the team down. These… Read More »Choose your lanes
Estimation, I think, has been one of the biggest problems of mankind. The Software development industry is no exception to this sad reality. We almost never seem to get it right. The problem with the word “estimate” is that it’s personal. It’s relative to the person who is estimating. Moreover, it’s a unit of time. That is why I prefer “sizing” stories rather than estimating them. Size is a non disputed (standard) unit, which measures the level of complexity involved in developing a piece of functionality, a story. The size is standard across a particular project team. Pizzas are a… Read More »Size or Estimate
After this post, I have had a number of conversations with people about what I really meant by setting functional targets instead of story point (velocity) targets. In one such discussion, I was given an example where someone set a goal to run for 90 minutes!! At first glance you might not find the last statement worth the exclamation marks at the end of it. But this is exactly the difference between functional targets and velocity targets. I think it’s wrong to set a target of running for 90 minutes. The real goal is to burn X number of calories.… Read More »Functional Goals
After working in week-long iterations for 2 and a half years, going iterationless left me a little confused on my recent project. Of course when I say iterationless, I mean using extremely small iterations to bring in a flow to stories. Lean? Distributed Lean, maybe? Firstly, I like the idea of trying something new. The team being small and the project being developed in ruby helps this experiment a lot. There are, however, somethings missing in this way of working. I’ll list them down and give my view on each of them in this post. To realize what we missed,… Read More »Iterationless…