The DMAIC methodology is at the base of all things Six Sigma. The steps in the methodology are what organizations utilize whenever there is a need for process improvement. This is no different for software development companies, especially in regards to the software development life cycle.
The software development cycle as a whole is complex, so it wouldn’t be feasible to apply Six Sigma to all of it. However, the principles of Six Sigma can be used to improve high-problem areas that are critical to the reduction and/or elimination of defects that affect the entire process.
For instance, these problems areas could be where:
- The frequency of defects and regressions are higher than normal
- Delays happen too often
- There are constant misunderstandings among team members and/or with customers
Once these areas have been identified, the DMAIC can be used.
How DMAIC Can Help With the Software Development Life Cycle
Suppose that somewhere along the software development life cycle you’re experiencing a high number of bugs on a weekly basis. The first step, which is Define, would be to identify and define the problem clearly and concisely. This will include the steps to replicate the bugs as well.
The next step would be the Measure phase, where important metrics and key performance indicators (KPIs) would be collected. These include:
- The number of hours developers work daily, as well as the total lines of code written
- How many hours teams spend in meetings a week
- How frequent the project requirements change
Then, the data will be examined in the Analyze phase to find patterns. For instance, the data can show that team 1 is meeting all their deadlines (other times even hitting them well in advance) while team 2 keeps missing theirs. Team 2 is always a day or two late about 50% of the time, causing major delays.
Learn about more six sigma white belt program
At a glance, it would appear as if team 2 needs to step up to match the performance of team 1. But on closer inspection, management discovers that even though team 1 is usually behind with their deadlines, they produce fewer bugs than team 1. It is further revealed that team 1 is being tasked by management to resolve the bugs produced by team 1 because management feels team 1 shouldn’t be wasting their valuable time on fixing bugs.
Next is the Improve phase, where management will try to rectify the situation. Moving forward each team will be responsible for resolving the bugs they create. The change is implemented, even if team 1 vehemently objects.
In the Control phase, data is continuously collected, measured and analyzed to see if the change produced the desired result. The desired result being fewer bugs produced and hitting of deadlines by both teams. This is done perpetually, whether the change made leads to a positive or negative result.
As you can see, Six Sigma can help with software development. However, it needs to be focused on specific problem areas rather than the entirety of the software development life cycle. By applying the DMAIC methodology there, management can gradually improve their software development efforts.