Becoming Agile is about changing the way we think and act. Many organizations train their people to operate in a “command and control” environment, where the decision making and control lies with the managers. Design managers, test managers, project managers, program managers…etc. What is built and how it is built is defined by the business teams and architecture teams. The size, scope, feature content, overall structure of the solution is defined with estimates provided not necessarily by the people doing the work. The work is then carved up into pieces and distributed across the different functions to be implemented, which amounts to a structural decomposition of the product is mapped to the structure of the organization that will do the work of building the product.
These organizations measure performance and progress of functional groups discretely. They optimize within teams, within organizations, within the boxes they work. Incentives are awarded on the basis of these optimizations. This is the traditional method of operating for many enterprises. Agile methods and Lean thinking demonstrate that this creates waste and slows development velocity. Wasted time, resources, and knowledge (e.g. knowledge lost during handoffs between teams).
Lean Thinking is at the heart of Agile. Lean Thinking is all about looking at the path from quote to cash and eliminating anything that does not provide value to the customer. One question of Lean Thinking is:
“If a customer was in front of me, would he/she gladly pay me for what I am doing at this moment?”
Every step in the process should create value. To achieve this, management control shifts from controlling the work, to controlling the process. The development teams self-organize around the work. In this way, the organization is built around the work to be done, rather than organizing the work to fit the organization.
Lean is about excellence in processes and process control. But Lean Thinking comes from manufacturing. How do we translate Lean thinking into the world of software development? A white paper from Mary Poppendieck, called “Principles of Lean Thinking” maps the ideas of Lean Thinking to the world of software. You can find it here.