Thursday, December 8, 2011

How to achieve Flow without a waterfall?

In Lean Software Product Development (see Don Reinertsen's video, for instance), Flow is one of the major principles and target states to be achieved. Flow, at the first glance, might trigger an association with our good old waterfall model. However, it is exactly the opposite way: you will have a very hard time achieving lean development and flow with a stage-gated sequential process including lots of horizontal handovers.

To achieve flow, you need to have a single view on the backlog of remaining work, i.e. requirements, user stories, and development tasks to schedule. In order to achieve a steady output at a sustainable pace which has an economic benefit for the software company, e.g. by providing supreme value to customers, you will also need cross-functional, interdisciplinary teams and decentralized control. These principles become even more critical as we enter large-scale development organizations with 10-100 teams and multiple aggregation levels, i.e. Scrums of Scrums of Scrums...

In large-scale enterprise software development effects known from systems and queueing theory come into play requiring to understand and actively manage these queues. As in most complex systems, the behavior of large software development units is not determined by the sum of all constituents, but rather by the product of its internal and environmental factors (see e.g. Russ Ackoff on systems thinking). Our recent cluster research project on lean tackles some of these issues. Results will be dicussed here...

No comments:

Post a Comment