Does 6-sigma apply to software development?
Often, people will ask, “can I use 6-sigma for software development?” The short answer is yes. I explain why below.
Like any process, software development can be viewed as a sequence of activities, so process improvement techniques like 6-Sigma will apply. Below, I explain how two Statistical Quality Control (SQC) tools, design of experiments and control charts can be applied to software development.
Some may suggest that software projects should use Agile instead of SQC methods. Agile (choose your flavor of choice: Scrum, XP, Kanban, etc.) is great for project management but, other than promoting the practice of conducting retrospectives, Agile isn’t a process improvement tool.
Design of Experiments (DOE)
The most common statistical quality control tool I’ve noticed software companies using is design of experiments. Often, companies like Google and Facebook will talk about using A/B testing, where they define an objective for users of an application, then test variations on the user interface and see which variation results in the highest rate of users achieving the objective. Here’s an example from Adrian Vender at CardinalPath, A/B Testing with Google Analytics Content Experiments. A/B testing can be extended, using design of experiments methods, to statistically assess the impact that multiple proposed design changes and their interactions will have on an application’s fitness for use.
Control charts are a statistical tool that can be used to monitor product quality attributes for conformance to specifications. Control charts can be applied to monitor both product or process quality.
A product quality attribute is a measurable attribute like startup time, processing time (for a mathematical analysis application), color accuracy (for a photography application), or look up accuracy (for a mapping application). Control charts can be used to visually document the acceptable specification limits for an attribute and the ability of the product to perform within those specifications.
A process quality metric used by software development organizations is the rate at which defects are introduced into source code (perhaps, bugs per source code commit or bugs per line of code). Applying control charts to software defect rate may help a team determine if they are experiencing an increased or decreased defect rate, in which case it’s worth asking why, or if things are about the same.
Image source: Wikimedia Commons, Credit: Cmglee, License: CC-BY-SA-3.0