"Quality" is a word software developers are hearing more and more of -- and an issue that has long plagued the industry. Today some software development and IT organisations are taking a page from manufacturing and adopting (and adapting) the Six Sigma process improvement methodology to reduce software defects and improve quality.
Motorola, which led the way in Six Sigma for manufacturing, is also an early adopter of Six Sigma for software. "Right now the culture is to test in quality. But we're asking our engineers to design in quality," said Tricia McNair, director of Motorola's Software Design for Six Sigma (SDFSS) program and chairman of the Software Development Consortium and Six Sigma Software Academy. McNair spoke recently at the WCBF's Second Annual Six Sigma in Software and IT conference in Boston.
According to Jeannine Siviy, deputy director for Carnegie Mellon Software Engineering Institute (SEI) Dynamic Systems, software organisations can use the Six Sigma methodology both tactically and strategically. Tactically, Six Sigma can be used "as an analytical engine for process improvement," she explained.
"There are unique challenges in software like availability and quality of data, and the frequency in which projects go through the lifecycle," Siviy said. "But with the data you do have, such as product performance and reliability, etc., you can use analysis methods to uncover the root cause of different issues and lead you
Taking a different slant, Six Sigma "can be used strategically to enable the implementation of what I call domain-specific improvement techniques. CMMI is an example," Siviy added. [The SEI's Capability Maturity Model Integration (CMMI) is a process improvement framework.] Organisations implementing Six Sigma determine their highest priority problems, she said, which can be used to get what she calls a "stickier" CMMI or Information Technology Infrastructure Library (ITIL) implementation. Six Sigma combined with CMMI or ITIL "grounds the process definition into real business problems."
For those who argue that software development can be more art than science, Siviy would argue that reaping efficiency through repeatable processes frees up developers to do more creative work.
"The way we like to frame it is if you apply a process improvement methodology such as Six Sigma and CMMI to the problem or opportunity where it's well-suited, it frees up time and energy to go after those creative things," she said. "Instead of engineers scratching their heads about why they're having cost problems, scheduling problems, or so much rework, they can apply that free time to innovation and to deliver more functionality. And things that can be done in an efficient methodical manner become part of the DNA of the organisation."
Still, it's early for software organisations in terms of adoption, Siviy said. Some are layering the traditional Six Sigma process of define, measure, analyse, improve, control (DMAIC) on top of their development methodology. Some are adopting DFSS, an offshoot of Six Sigma that uses more systems engineering techniques and drives customer requirements into the product development. And some use Six Sigma along with other methodologies such as Lean or Agile. In addition, while Six Sigma may be mandated through other parts of an organisation, it is often a grassroots effort today in IT.
Six Sigma use at EMC
At EMC, which had its roots in storage and today is one of the largest software companies in the world, the leadership "embraced" Six Sigma but didn't mandate it, according to Rich Boucher, the Lean Six Sigma deployment leader for IT. "We have a grassroots deployment of Lean Six Sigma in IT," Boucher said during his address at the Six Sigma conference. "We looked at the IT organisation. It was functionally organised, and we saw an opportunity to go cross-functional."
Boucher said EMC embarked on Six Sigma training in 2000 and in 2002 rolled out Six Sigma throughout the enterprise. Then in 2006 the organisation merged Lean and Six Sigma approaches. To make the methodology more familiar to IT and less threatening, Boucher said they aligned their current waterfall method with the DMAIC steps.
Six Sigma helps EMC with its commitment to Total Customer Experience, Boucher said. To date, the IT organisation has embarked on Six Sigma projects to address interoperability issues, help desk efficiency, data centre capacity issues and others. For example, prior to employing Six Sigma tools, he said they didn't have the ability to measure data centre capacity, and they found through their analysis that their customers were having the same problem. Boucher said his organisation was able to share that information with the sales team to better serve customers.
In addition, when employing Lean Six Sigma methodology, EMC found that highly skilled and highly paid software developers were involved in solving help desk incidents (89%). Through process improvement, now only the most difficult incidents are elevated up to the developers (24%).
In terms of employing Lean Six Sigma to the software development life cycle, EMC is just beginning, Boucher said. They are looking to remove the disconnect between business requirements and tighten the cycle and make it more agile "to deliver fast and right," he said.
How Motorola employs Six Sigma
At Motorola, the product development lifecycle is integrated with Software DFSS (SDFSS), McNair said. Motorola is implementing SDFSS for several reasons:
- To address major performance flaws in requirements and architecture
- To improve on-time delivery and reduce defects
- To improve robust design and performance benchmarking
- To employ metric-based decision making for product development
- To utilise templates and criteria to support rigorous gate reviews
- To enable leadership to realistically set high expectations and demand evidence
- To provide tools, tasks and deliverables that clarify and support meeting those high expectations
Motorola's four-step process of requirements, architecture, design and integration (RADI) includes high-level reviews, design reviews and code reviews. As part of its code review, Motorola uses the Klocwork static analysis tool. McNair said each developer is required to run Klocwork, and each developer fixes his own defects. However, she said that management is not involved with the code review. "We don't share the results with their management team. We don't want them [developers] to perform out of fear."
While employing Six Sigma can ultimately save an organisation money by cutting out waste and repetition and improving efficiency, McNair said that shouldn't be the focus. In their Green Belt training and certification, for example, "It's not about how much money you saved [with a Six Sigma project], but did you reduce defects? Did you reduce cycle times? And you must carry that product from womb to tomb -- we need to see the real value added."
Companies such as Motorola and EMC are clearly deriving benefit from deploying Six Sigma in their IT organisations. For other software development organisations and IT departments that are considering Six Sigma, Djenana Campara, CEO of KDM Analytics, a software assurance and modernisation company in Wilmington, Del., has this advice:
"Ask yourself if you are at least at Level 3 CMMI. If you don't know what that is, then it's probably not worth considering. And ask yourself if the cost of defects is too high within your organisation -- lots of rework, field patches, low customer satisfaction, etc. Statistical quality control, especially with today's available static analysis technologies, can reduce the cost of defects."