After deferring the commitment it is finally time to do the real work; Programming, integrating, testing, deploying and finally delivering. And this stream should be as fast as possible. When it is decided that something have to be done, it should be done quickly so that customer can provide feedback. And if you like procrastination; the faster you can deliver, the longer you can delay decisions.
Use short iterations where new, functional software is delivered to the customer in closely-spaced intervals to have limited number of requirements waiting for feedback.
Empower your team and use pull model where team and individuals pulls the tasks for themselves. Utilization keeps high as tasks are pulled as soon as there is capacity to do the task. On the other hand, team does not saturate under overwhelming workload. Saturation just leads waste in form of unnecessary task switching and partially done work. To prevent team saturation to be bottleneck, limit concurrent Works In Process (WIP). Make rule that there can only be X amount of features in development, testing etc. Kanban provides means for both pull system and WIP-limits.
Finally some practical points.
Automate anything you can.
Automate your delivery/deploy pipeline. It is more productive to use your time for programming and testing than going trough delivery checklists and manually copying files from servers. You also gain repeatability of process, delivery errors are reduced etc.
Use proper tools.
It is well worth of paying extra money for productivity tools and proper hardware. On software business we do not have to invest ocean-going cargo ships, but we have to invest on people and their creativity. On could do the mathematics and calculate:
10 builds/day * 30 seconds faster / build with new hardwareBut those 30 seconds can be essential to keep coder on the flow.
= 300 seconds / day => 1,5hours / month
Ilpo Kettunen
See also
“busyness is not good business” -- Alan Shalloway
No comments:
Post a Comment