This is part of a five part series on a recent McKinsey series of article on lean manufacturing. Other posts in the series: Introduction, Public Sector Lean, Lean in IT, Lean in China, Lean in Finance.
Applying Lean to Application Development and Maintenance
Noah B. Kindler, Vasantha Krishnakanthan, and Ranjit Tinaikar discuss how lean manufacturing methods can be applied to IT activities, specifically application development and maintenance.
Although lean principles were originally developed for manufacturing environments, they are increasingly and successfully being applied to service businesses. Application development and maintenance is a prime candidate for lean methods not only because it involves a great many processes with the potential to be optimized but also because large differences in productivity among organizations suggest that some are far less efficient than others. In our experience, applying the principles of lean manufacturing to ADM can increase productivity by 20 to 40 percent while improving the quality and speed of execution.
Similarly to the previous article, the authors do a good job of mapping traditional lean manufacturing to analogous attributes in IT.
Each category of waste in manufacturing has a counterpart in ADM, which can be thought of as a kind of factory that develops new applications according to business requirements. Changes to an application’s requirements are one common source of ADM waste, causing many of the classic varieties identified in lean: designers rework their specifications, coders wait for specifications to stabilize, testers overproduce as their testing environments have to be set up repeatedly, unmet requirements pile up in a large backlog. As in manufacturing, systematically eliminating these sources of waste improves the delivery time, quality, and efficiency of the ADM end product.
And then of course there are analogous methods to reduce those wastes.
Flow processing reduces overcapacity or excess inventory by aligning the rhythm of output with the flow of production. A release schedule helps prioritize projects, so it prevents the waste inherent in delays to accommodate new requests.
Load balancing forces the organization to make use of development staff across several locations, as well as outside vendors.
Standardization is common in most application-development organizations but can be more widely applied to reduce the waste that results when requirements are defined in an ad hoc way.
Segmentation of projects by complexity eliminates waste by helping managers to route projects to the proper resources and by avoiding unnecessary overhead for simple tasks.
Quality ownership should extend beyond the testing group to encompass the business, the designers, and the coders and testers. Unfortunately, in most application-development groups end-to-end quality ownership remains fragmented across multiple functional silos and is hardly ever tied to end-to-end performance incentives.
We’ve talked about applying lean to software development several times in the past. It can be difficult.
Applying lean to an application-development organization is a substantial transformation taking two to three years. From discussions with chief information officers (CIOs) and other executives at 30 companies across a range of industries, we have learned that three challenges are the most difficult to overcome: changing behavior, broadening the focus from specifics to general principles, and setting up the right incentives.
Those are the same types of challenges experienced by any organization going through a lean transformation. In fact, a two to three year timeframe is probably overly optimistic.