Let’s face it
– an investment in software development can be one of the most expensive and risk-laden endeavors a corporation can make, especially when requirements volatility and uncertainty are part of the mix. In medieval times (of software development this would be pre-2000), customers and developers often jostled over requirements and clashed on issues of flexibility during strict waterfall development. Then after months of protracted requirements discovery, the construction process would be frequently disrupted by “unanticipated change”.
Fortunately, for everyone involved, innovative techniques flexible to change and offering shorter, more iterative delivery cycles emerged. Today, a myriad of choices exist that embrace flexibility and deliver high-quality software more effectively and efficiently than ever thanks to agile, XP, scrum, CMMI, project management and other concepts. Additionally, methods that worked well in other industries have been adapted and tailored for use in IT (six sigma, kaizen, TQM, theory of constraints, just-in-time, Kanban, etc.).
A few of the most fundamental
yet simple concepts of Lean/Kanban/Just-in-Time development (and other methods) include minimizing waste (non-value added activities), removing roadblocks/delays and limiting work-in-progress (WIP).
If we consider software development as a “pipeline” of constant flowing work packets, any unresolved blockages can end up clogging the entire system. As such, when life intervenes (as it always does) to interrupt or delay the flow of a work packet, approaches such as Kanban highlight potential blockages before they clog the entire flow. Teams can then identify remedial actions so that the right work is done at the right time, freeing up resources to concentrate on work where they can be highly productive. Moreover, while waterfall development commonly fills the pipeline beyond capacity (without realizing it), Kanban limits the input stream to match the available capacity. Once work is actively in the pipe, a critical delay (“one of these days…”) signals trouble and work can be removed (“none of these days”) until such time as it can be productively worked again or triaged to prevent ongoing delays. If we are serious about reducing waste (non-value added activity) or delays, IT should never tolerate proverbial “one of these days is none of these days” delays in process.
Unexpected events and delays are a natural part of life (and software development). The difference with Kanban and JIT is that there is a conscious response to bottlenecks and work stoppage rather than panic or blame reactions (OMG! What do we do now?) typical of waterfall development.
Can Kanban co-exist with Agile development?
I believe so (and perhaps this is the attitude of a naive believer in both). Can Kanban co-exist with Waterfall development? Again, I believe the answer is yes. What do you think?
Don’t forget to register (and tell your management to register!) for the upcoming FREE knowledge webinar on January 18, 2011 featuring
on Lean Decision Making, January 18, 2011 from noon – 1 pm Pacific Standard Time (3-4pm Eastern Standard Time). Here’s what this FREE webinar is all about:
Lean thinking assumes it is economically better to build a culture of trust in an organization of empowered individuals to accelerate decision-making and shorten lead times than to mitigate risk with bureaucracy and delayed delivery. Understand the economic model controlling the forces of risk, uncertainty, business value, quality, cost and schedule that affect decision-making and process policy setting. This webinar will show how lean thinking can translate into process and policy decisions more closely aligned with business goals.
Why not make 2011 the year that you make a difference in the world of software development by getting up to speed on Lean approaches? Plan to join us 3-6 May 2011 in Long Beach, CA, USA for the Lean Software and Systems conference (acronym LSSC11) – register today!