Spotlight on Software Quality Improvement: Three Strategies for Success
Spotlight on Software Quality Improvement: Three Strategies for Success
By ExecutiveBrief Staff
Trying to navigate the labyrinth of available quality improvement methodologies? Chart the right course for your organization by uncovering the bottom-line value offered by three proven strategies!
Standards in software development are essential to efforts toward improving communication between customer and contractor, reducing software costs throughout the entire life cycle, and improving overall software quality. Organizations have a number of viable choices to consider when it comes to applying software quality process improvement methodologies. Three useful options—the V-Model, ISO9000, and Six Sigma—provide different approaches to helping ensure quality in the software development process.
V-Model Approach
The V-Model, originally developed for German government defense projects in the early 1990s, is a software development process that is mapped out as a flowchart that takes the form of the letter “V.” According to Geoff Hewson, president of British Columbia-based Software Productivity Center, the V-Model is the best way to look at quality in software development. In this model, planning activities—such as defining requirements, designing the system, and writing code—go down the V, while the testing activities—such as unit testing and integration testing—go up the other side. Integration testing ensures that all individual pieces of code written by developers work together as part of the whole system. Further up the V is functional testing or user-acceptance testing, which addresses whether the application does what the user wants it to do.
Hewson asserts that it’s a simple model, in concept. “The power of this practical application is that it gives a real focus on defining what kind of testing activities needs to be planned for,” he says. Organizations that are not using this approach often use the “scatter-gun approach” to testing, he notes. “They’ll put the system in front of the user and think that they are doing user-acceptance testing. Yet in reality, they aren’t ready for that step yet, because they haven’t gone through the middle level. When done correctly, organizations validate what users want and don’t waste their time identifying engineering bugs,” says Hewson.
Quality assurance activities are usually in the form of reviews or inspections that document and facilitate a common understanding of requirements and designs, ensuring that they reflect what users want. Quality assurance activities make sense, Hewson asserts, especially considering the strong statistics to support it. By ensuring that early planning artifacts are as accurate as possible, Hewson says the potential savings to be realized can be between 25 and 35 percent of the effort expended on the project. The (undesirable) alternative is just writing and building code and trying to build in quality along the way.
According to Hewson, effort savings can be huge, considering the cost of reworking code with bugs inside. “If you wait until you build the system and have tested it, the effort to fix the bugs can be magnified by anywhere from 10 to 100 times,” Hewson says. “This occurs because the required error may spawn into multiple design errors that may spawn into multiple coding errors. These quality assurance activities are a really important part of the V-Model approach.”
“The trick with this methodology is to understand how to apply the testing activities on the right-hand side given the business environment you’re in,” Hewson notes. “The V-Model gives you guidance on how to find which of these practices back which of the planning artifacts coming out of early phases in your development process.”
ISO9000 Standards
Another option for companies considering software quality process improvement is ISO9000, a family of standards for quality management that applies to IT and software development. Essentially, this standard focuses on ensuring that the organization is monitoring process effectiveness, keeping adequate records, and regularly reviewing and facilitating continual improvement of product/process quality. “ISO9000 doesn’t recommend practices or dictate process, but it says that these organizations must have management responsibility for quality procedures written down in a manual,” Hewson says. “Organizations must have a quality organization to oversee quality of work and the product.”
While ISO9000 is not actually a methodology to apply, Hewson describes it more as an accounting system to know how good or bad something is. “You won’t get quality in your organization by implementing ISO9000,” Hewson says. “But if you implement and take action on what you find, you can say, ‘Here is where we were, here is what we did, and here is where we are now.’ In that sense, it’s useful.”
ISO9000 can be especially valuable for the medical software or medical device segment, notes Hewson, because if you don’t have a good device, the implication for the patient is huge. Companies that are part of IT shops in manufacturing industries might find ISO leaching in their areas. In organizations such as Ford or Motorola, Hewson says that the ISO9000 standard was companywide, and the software development organization was expected to adhere to it.
Six Sigma
Six Sigma offers another methodology for process improvement. This set of practices can be applied to process and product quality—with the goal of eliminating defects, which can be defined as anything causing customer dissatisfaction.
“The essence of Six Sigma is that you define specific goals and specific measures, which provides guidance as to what to do,” Hewson says. “I find it a particularly useful way to justify and drive improvements in an organization.”
Six Sigma teams follow the DMAIC model:
- Define goals that are consistent with enterprise strategy and customer demands.
- Measure key aspects and collect relevant data.
- Analyze data.
- Implement improvements or optimization based on data analysis.
- Control to ensure that any deviations from the target are correct before they result in defects, set up pilots to establish process capability, move on to production, set up control mechanisms, and continuously monitor the process.
Although Six Sigma is not an international standard, thousands of companies around the world have realized the benefits of the methodology, which relates to improving processes and saving money in the process. The methodology follows a hierarchy of process improvement experts who execute the process: Green Belts, Black Belts, and Master Belts.
Regarding software development projects, the Six Sigma approach is most helpful in the concept and requirements-gathering phases. This approach helps to ensure that the main project focus remains on the deliverables and not the technology.
Challenges of Improvement Methodologies
The actual technical selection of a process improvement methodology is brainwork and not too difficult of a task, says Hewson. The challenge areas, in his experience, are related to people and motivation. The key question to consider is: Do you really want to get better?
According to Hewson, it’s often a management issue. Do they have enough challenges in the organization that they are prepared to do what is necessary in order to improve? Management also must have a method for encouraging and enforcing the appropriate behaviors and practices. Otherwise, the organization will put an approach in place, but it will remain business as usual in the trenches.
There are other people-related issues to consider as well. In order to select and implement a methodology successfully, organizations must have the people to embrace it. If an organization has firm commitment from management and the employee teams, it can define processes, select practices for use, train, and implement solutions, bringing in coaches if needed to help with the implementation; however, without people who are committed to following it, it will not be successful. “Unfortunately, you’ll just spend a lot of money and do a lot of work,” Hewson concludes. Regardless of which methodology an organization ultimately chooses to implement, the key is to recognize how embracing standards in software development can be key to improving communication between customer and contractor, reducing software costs throughout the entire life cycle, and improving overall software quality.
© ExecutiveBrief 2008
ExecutiveBrief, the technology management resource for business leaders, offers articles loaded with proven tips, techniques, and action plans that companies can use to better manage people, processes and tools – the keys to improving their business performance. To learn more, please visit: http://www.executivebrief.com.