This post originated from an RSS feed registered with Agile Buzz
by Laurent Bossavit.
Original Post: Coke machine projects
Feed Title: Incipient(thoughts)
Feed URL: http://bossavit.com/thoughts/index.rdf
Feed Description: You're in a maze of twisty little decisions, all alike. You're in a maze of twisty little decisions, all different.
"Coke machine" is my tag for a category of projects. I can't believe I haven't blogged this before.
The joke goes like this - this blonde walks up to a coke machine, puts in fifty cents, gets a coke. She does a little dance, grabs the can, puts it on the counter nearby. Opens her purse, puts in another fifty cents, gets a coke. Puts the can away, starts all over again. Meanwhile as it's a busy time of day, a small queue is forming behind her. People want to have a go and start to get equally annoyed and amused. "Lady, when do you think you'll be done here ?" And she answers, of course: "Hell, buster, as long as I keep winning I intend to keep playing !"
(I know it's a sexist joke told like that. The first time I heard it, in French, it was about a Belgian. The geek way to tell it would be "this [insert favorite stupid stereotype] walks up to a coke machine...".)
Anyway, I've come across projects which are exactly like that. The business keeps paying, and as long as the business keeps paying the developers keep developing.
In these situations, you won't need the exact same scheduling practices you would use in a project where "predicting the end date" is an important concern, or even knowing what will be in the product by a certain date. For instance, I'm OK if this kind of project keeps a small "planning horizon" (the number of iterations which the team is capable of planning ahead), such as one iteration. Or uses a continuous scheduling tactic, such as kanban.
As the name implies I feel vaguely uncomfortable about this kind of "project". For one thing, it contradicts the common wisdom that projects are well-defined endeavors with limited resources. I like it better when even long-running efforts are cut up into major milestones which have the feel of a distinct "project". If nothing else, that gives the team defined opportunities to create "generations" of their product, opportunities to cut loose from a design grown too old for instance. That's a topic for another blog...