Home | Login | Recent Changes | Search | All Pages | Help
ShortIterationsI met someone today who manages projects with 17-day iterations. That's 17 work-days, not calendar-days. I like the idea of 17 days, because you have a break between iterations to revisit the requirements if necessary, and you're not trying to make an artificial date like a Friday or a Monday. I've managed projects with quarterly release trains, where the quarter was a shorter iteration than before, and in some cases was still too long :-(. I'm practicing shorter iterations with my work now. I find that I'm much more likely to be able to cross things off my list because I broke them down into smaller pieces. Do you use iterations? How long are they? What do you find with your iterations? -- JohannaRothman 2003.04.01 I'm currently using one-week iterations, but that is really too short. Many of our stories take longer than a week to implement, but we still get about the same number of story points completed each week. My current project now has ProgrammersTwelveHoursApart, so "starting on Monday" means that some start 12 hours earlier than others. KeithRay 2003.04.02 I've used one-week iterations frequently, to good effect. We weren't building "story" based systems, so decomposed the system into chunks that did something meaningful that you could build in about a week. For embedded controls each chunk was something like: add the defrost algorithm, add high temperature throttling, etc. I have always found that there is a way to slice things so you get something new every week that's interesting, stable, and visible. Not necessarily "story." I have used one week ship cycles with 3rd party vendors, database-intensive products and software tools as well. I actually like the artificial deadline of a Friday as a form of social engineering.
Johanna said "release trains" which is more product-y, and brings up another point I sort of illustrated here. There's great value in having a stack of delivery cycles. The weekly systolic software builds for the heat pumps I mentioned above didn't go to "the customer" every week - we essentially delivered to ourselves. Pushing out to labs and acceptance testing was less frequent - about every 6 weeks. Bringing in the circle of product engineers was less frequent - about quarterly. It's really useful to have a stack of these processes that push different kinds of changes further through the process, depending. Goes nicely with IterativePlanning. -- JimBullock, 2003.04.03 A chunk that is interesting (to the user) and visible is an XP story. A UseCase as done by RUP can result in around 40 stories, I've been told. KeithRay 2003.04.04 Hi Keith. Is that last in re: my post? If so, that's interesting because as I've said, I've never had a problem finding chunks that are one week. Yet you said: I'm currently using one-week iterations, but that is really too short. I understood "too short" to mean that the stories didn't fit in a week. What am I not getting here? -- JimBullock, 2003.04.04 Jim- the problem with one week iterations is that most but not all chunks may fit. You may start backlogging on the 2+week efforts that just can't complete in the interval. If that happens, you need to change the length of the interval cycle (at least occaisionally). -- BobLee 2003.04.04 You're getting it. Many of my stories didn't fit within a week, and we didn't try to break all of them down to fit within a week. Longer-than-a-week stories are not too much of a problem... other than tracking being less predictable. You seemed to be saying that your "chunks" were not stories, but they seemed to fit the XP definition of stories. You may start backlogging on the 2+week efforts that just can't complete in the interval. It seems to me that you are claiming that you (Bob) sometimes have "stories" that can't be sliced into single weeks while still being "stories". So far, I have always been able to create chunks that are new, interesting, stable, visible, fit in a week, and between them cover all the functionality of the system. What's the determining distiction that makes some "stories" things that can't be sliced differently to fit in a week?
You seemed to be saying that your "chunks" were not stories, but they seemed to fit the XP definition of stories. If that's for me (jb) no. I don't know whether my "chunks" are "stories." I am suspicious that "chunks" and "stories" are somehow different because I have always been able to find chunks that fit in weekly deliveries, while you (Bob and Keith) are talking like that isn't the case for you with "stories". I don't yet know what meaningful distinctions might might be at the root of this. I am curious.
Longer-than-a-week stories are not too much of a problem... other than tracking being less predictable. " . . . Not too much of a problem . . ." does not fit my experience. "This week we're not going to get anything" has consequences in the social engineering items I named. Perhaps I have been in less mature and organized circumstances than you, or worked with different amounts of crossing organizations including balky vendors and prima-donna support organizations (dba's are at the top of my list right now, with LAN ops a close second.) The regular, repeated pulse of activities is an incredibly powerful synching function when some people aren't quite on the same page, nor do they want to be. Perhaps this is a "scope of the problem" issue? Regular, weekly deliveries are merely convenient (perhaps trivially convenient - I'm not sure) in the context of a tight, colocated software development team. For me, getting stuff done as in "shipped and in use" has always involved more than just a single, tight team writing code together. Even if "getting stuff done" is only about writing code, there are lots of ways to make that harder - distributed teams is a recently popular challenge, since more US companies discovered that India exists. The regular pulse of deliver helps immensely the minute we stray from "everybody's in the same room doing coding" which is most often the case. Perhaps there is a team composition or project state issue? I have recovered a lot of projects. Even a colocated development team that's been flailing has people who are underperforming (duh), some that shouldn't be in the job, some are fed up, some self-righteous, and some beaten down. It's amazing the clarity that happens with the simple assertion: "We're going to ship something at the end of this week. At the end of next week, we're going to ship something more. And so on." A related trick is what we're going to deliver that first week - a baseline build from the shared code / system repository, with no magic to make the build happen. It seems to me that a lot of the value of ShortIterations is in the effect they have outside the development team. For those effects, fixed, regular, short iterations have been way more powerful in my exprience. But that's just me. I could be wrong. -- JimBullock, 2004.04.05 My company's overall culture is not short iterations. So my doing them is a little alien to the rest of the company. For example, I haven't yet gotten QA involved in my project, even though QA should be involved from the beginning for true XP style. (I may getting QA involved next week, hopefully.) Our company had some salesmen from Rational give a presentation on RUP - incremental, iterative, and "architecture centric". Some of the execs said that we couldn't do iterative (even one-month iterations) because our customers don't work that way. Some of our customers are also Rational customers, so maybe that's incorrect. * sigh * KeithRay 2004.04.05 (Our electricity has been out :-(( from 4/5 to 4/7. ) What's the determining distiction that makes some "stories" things that can't be sliced differently to fit in a week? Usually, these were legacy refactoring problems - rescuing a system from technical debt. Until the system achieves a certain cleanliness, it's hard to do safe & useful work in short iterations. The company was on one month iterations, but relentlessly played "Damn the torpedos!" on mounting tech debt. Testing freeze consumed the last 2 weeks of each month (no test-first here!) My "outside the window" effort was to make rational sense out of an out-of-control build process that took 3+ hours -- reduced it to 35 minutes so people would build instead of "presume" that modules were unaffected. There were about 75 DLLs composed of 750 source modules. Perhaps the general thought is that accumulated code smells can be difficult, expensive and pervasive in short windows without aggressive refactoring along the way. --BobLee 2003.04.07 Well, first of all, JimBullock's iterations on this thread are a good example of what's wrong with building in too large chunks. Chunk it down, Jim, so you won't lose our attention. (Or, chunk it up and make it into an article - we'll put the article in the Articles section.) To me, the reason large chunks are a problem on a wiki is that I'm reading on a screen. This medium doesn't lend itself to reading large chunks. And that brings up my real point of this chunk - Choose an iteration size that fits for your situation. One of the strongest parameters from a project control perspective is that no iteration should be so big that you can't afford to throw it away if it doesn't come out right in the end. This helps avoid the temptation to keep junk "because we've got so much invested in it already." JerryWeinberg 2003.04.07
Updated: Tuesday, April 8, 2003 |