My thoughts on scrum TDD and getting the balance between doing software right and adding business value at the same time
Wednesday, June 23, 2010
Monday, June 21, 2010
Kanban in Lean manufacturing distilled
You’ll find a lot of terminology in Lean software development comes from Japan and from the Toyota Production System in particular. Kanban translated literally: “Kan” means visual, and “ban” means card or board.
Picture yourself on a Toyota production line. You put doors on Priuses. You have a stack of 10 or so doors. As you keep bolting them on, your stack of doors gets shorter. When you get down to 5 doors, sitting on top of the 5th door in the stack is a card — a Kanban card — that says “build 10 doors.” Well it may not say exactly that — but it is a request to build exactly 10 more Prius doors.
You pick the Kanban card up, and run it over to the guy who builds doors. He’s been waiting for you. He’s been doing other things to keep busy while waiting. The important thing here is that he’s NOT been building Prius doors. He takes your Kanban card and begins to build doors.
You go back to your workstation, and just a bit before your stack of doors is gone, the door guy comes back with a stack of 10 doors. You know that Kanban card is slid in between doors 5 & 6. You got the doors just in time. The whole thing sorta works like magic. Only you wish you had the door-building job. That guys seems to have a lotta free time on his hands.
Kanban cards are used to limit the amount of inventory the factory builds. It doesn’t do the Toyota factory any good to build doors faster then they can assemble cars. It just wastes money on excess doors, and parts of doors. Excess work in progress is considered to be waste in Lean manufacturing. (It’s probably waste in non-Lean manufacturing too.) In the above completely made up example, you’ll never have more than 15 finished doors hanging around. (Mudha is Japanese for waste. Learn it to impress your Lean friends.)
Sunday, June 20, 2010
TDD from the start
Thursday, June 17, 2010
The new user story backlog is a map
Building the Perfect house with Scrum.. or my scrum analogy story
2. You know what type of rooms you want and you have an idea of what furnishing and fittings need to be in the rooms
3. You are the customer (product owner) and you deal with the workers (Scrum Team) directly
4. You have a list of rooms and features you want (Backlog and stories)
5. The workers tell you how many bricks, windows, fixtures, electrics and plumbing (velocity)
they can do in 3 weeks (a sprint)
6. You decide what rooms on the list you want done first and present them to the builders (Sprint Planning 1)
7. The builders agree to doing this, this then becomes their blueprint for their next 3 weeks (Sprint Backlog)
8. They work out how best to give you what you want, and create all the necessary plans and drawings needed(Sprint Planning 2)
9. During the 3 weeks you meet and talk with the workers everyday
10. At the end of the 3 weeks they give you a room with a floor a roof walls plumbing electrical that you can live in
11. The builders are paid and you have a liveable room with all the features and fitting you wanted
12. At this point you decide what the next room is you want and you go through the same process
13. If after five sprints you run out of money, you have five full rooms complete
Why SCRUM
And introduced it into an industry where 90% is unknown and 10 % is known.
In the building industry, there is a project manager who has all the knowledge, setting schedules and committing to the client
In the software business the project manager has the least knowledge of what it takes setting schedules and committing to the client
So 90% of software development projects are over time and over budget.
Stardate 20100618
Project management in software development is one of the dumbest things ever invented.