Is it proper for my ninetieth post to be about a talk I held today at the monthly MS Community Istra gathering on the topic of "The Lean software development process"? I don't know but well it was a wonderful evening.
There were some news around it. It was the first talk I held as an independent consultant since I left Labirint/Cenosco earlier this month.
And second it was the first talk I held by using only my browser as the presentation medium using the amazing Prezi service and YouTube. Prezi is presentation re-imagined, it allows for a more dynamic and spacial orientated presentations and is easy to use. You can see my work in the frame above this text.
There were around twelve people present which was nice. I started the talk with some ground rules and my estimate how long the talk will run. I said one hour and half, it took me one hour and twenty minutes.
The talk was broken into four sections :
- Lean and muda
- The cycle
- The steps
- The practices
In the first section "Lean and muda" (muda is an Japanese words meaning waste, but in Croatian it means "balls" so figure it out ... are balls a waste? ) I introduced the basics of lean in production by focusing on the Toyota production system and the seven wastes (transportation, inventory, waiting,motion, over -processing, over-producing and rework) and their correlation in software development.
I also introduced the seven principles of lean in software development and the key principle of kaizen whose examples I talked about in the whole talk.
The second section was the most fun for me. I talked about the basic lean software process I used trough out my carrier what are its rules and how can it be constructed. The principal accent was made on limiting cycles and steps into cycles be value delivered not time (time is important but the first delimiter is value not time, time is used to remove the fat of the value delivered to deliver first what the client wants to see more).
There is a note in the second step which is not visible in the prezi, squares represent big chunks of work and circles represent smaller chunks of work.
The third section covered each step in a typical cycle : requirements, architecture, development and deployment. This was the most fun, since I elicited input for the public. For example when I discussed architecture I did a quick collaborative high level architecture diagram about a system for tracking cargo loaded. I asked do we need a database and got answers : " A small database, Oracle, SQL server ". So we picked SQL Server, then we picked stored procedures as a way to interact with the database and then Silverlight as the UI technology. For each decision I asked a dozen questions to show the group that architecture decisions matter and define how the rest of the project will progress.
In the final section I covered the practices of doing daily standup meetings and pair programming which I consider real important practices.
After the prezi was done I showed a clip on you tube which was a satire on the "Fall of Hitler" movie about an agile project going wrong oh so typically. This video is not about my political, or religious beliefs and its intent is only to show how agile projects often fail not to offend any one,