At the University of Wisconsin-Madison where I work as a senior business analyst, we recently completed a third year of using Lean Six Sigma (LSS) to improve administrative processes. (LSS is a combination of Six Sigma ideas with lean manufacturing.) By using the LSS methodology, we were able to reduce wasted effort, minimize wait times, and improve overall process outcomes. Independent of that effort, we began slowly implementing agile programming practices and now recognize the improvements it offers within the context of software development. In this column, I'll explore the similarities between the effect of LSS on a process and the effect of agile programming practices on software development.Note: This blog post is also available as a PDF download. If we think of software development as a process, then LSS could be used to improve the waterfall software development life cycle. For this purpose, it is useful to think of processes in the context of its component pieces; LSS identifies five component pieces: suppliers, inputs, process, outputs, and customers. To help you translate a manufacturing process into a software development process, it will be useful to review Table A. Table A
|Software development||Stakeholders||Requirements||Development||Software application||Users|
The Agile Manifesto is an excellent starting point for understanding agile core principles. The Wikipedia entry for Agile Software Development provides basic information about the history, practice, and suitability of this software development discipline.
LSS defines two overall methodologies: one for developing a new project or process design and one for improving an existing process. Since the focus of this column is on improving a process, I'll cover the latter of these two methods.
The Define Measure Analyze Improve Control (DMAIC) methodology is commonly used to identify problems in a process, measure key data attributes of concern, analyze the resulting data, improve the process, and control the future state process to reduce defects.One of the standard tasks in this methodology is the assessment of process waste. Since waste reduction is also a core principle of agile software development, let's examine how the two methodologies (i.e., DMAIC and agile software development) address the eight areas of waste defined by LSS. Table B compares a poor manufacturing process to some of the failings of traditional waterfall software development. Table B
|DMAIC-identified waste category||Waste category definition||Wasteful manufacturing processes addressed by LSS||Wasteful software processes|
|Transportation||Unneeded movement of materials supplied as input to a process||Raw materials travel a great distance from the supplier to the manufacturing site.||Project team and customer fail to communicate directly with one another about business requirements.|
|Inventory||Materials queued waiting to be processed||Excess stores of raw material may cause some loss or decay of inventory.||Comprehensive waterfall software requirements specification document is produced for an evolving business.|
|Motion||Unnecessary movement of people and equipment in the production process||Worker routinely steps away from the production line to retrieve raw materials.||Members of the development team are not located in a shared physical work space.|
|Wait time||Nonproductive time waiting for a production step to resume because of shortages or downtime||Worker must wait for a previous step in production to be completed.||Developer fails to ask peers for help in addressing a thorny, critical path development issue.|
|Overproduction||Producing more output than is required (e.g., just in case it is needed)||Worker creates more output than the next step in the production line can handle as input.||Developer adds extraneous features to the software, thinking the customer might like the additional features.|
|Overprocessing||Excessive work to produce a product||Worker adds excessive refinement to the output.||Developer needs to rework portions of the software.|
|Defects||Return of output to correct flaws in the product||Customer receives a defective product.||Customer identifies defects in the production software.|
|Skills||Underutilized skilled staff or inadequate staff skills||Inadequately trained production workers cause safety concerns or slow the rate of production.||Inadequately trained staff slow software development.|
|LSS waste category||How agile "light" reduces waste|
In identifying and eliminating waste in a process, the disciplines of LSS DMAIC and agile development share many attributes. While agile practices focus narrowly on improving the software development process, the broad discipline of LSS DMAIC is often used to improve manufacturing and business processes. By highlighting these similarities, it may help you to bring agile development to your organization, particularly if LSS is well established in your organization.
Related TechRepublic resources
- Lean Six Sigma training courses
- Lean Six Sigma white papers
- Six Sigma: Changing organizations for the better