AccessMyLibrary provides FREE access to millions of articles from top publications available through your library.
Projecting teams are the dominant way of organizing for developing software. What software project teams do concerning quality (or not), determines how their software turns out, and how well their organization succeeds as a whole. A software organization where no teams are working on quality--on doing better for themselves, their customers, and their organization--cannot realistically aspire to being world-class. Today quality is essential, and total quality management (TQM) is the way many world-class organizations are pursuing excellence in software development.
Achieving such excellence is not easy. Many organizations have stumbled on the way to achieving success. Software organizations in particular face special challenges in benefitting from TQM. Some organizations flounder when they try to apply a generic TQM program to their software organization, often without even changing the examples to software examples. Others fail to adapt quality tools and approaches to the team-and-technically oriented world of software development. Many simply do not understand at a fundamental level what TQM is--or what concrete benefits the organization, the customers, and the software professionals will receive from it.
What is required to achieve world-class quality in software development? What does TQM mean to your project team? This article will survey the three basic components (see Figure 1) of TQM. (1) Making improvements--every person and every team has a common system for solving problems and seizing-opportunities on a daily basis; (2) Satisfying customers--every team in every department follows a common system for working together across the functions of the organization to concentrate their best efforts on what matters most to their customers; and (3) Advancing the organization--every manager and every team share a common understanding of their organization's goals and strategies. There are many more things you can do--but these are the fundamentals.
Making Improvements: Solve Problems, Seize Opportunities
One fundamental component of TQM is for each person or group to improve their work on a regular basis. This requires knowing how to do the work, and how to improve. A systematic method is required that can be used by everyone. This process for unit optimization is the heart of quality. To be world-class you must know how to improve.
Ongoing Improvement (Kaizen)
To improve, it is essential to understand a key aspect of real-world processes: variation. The results of all processes vary--no outputs from real-world processes are identical. Software development is a real-world process, and to get a better product, we must improve the process.
Process improvement in the real world of variation is the province of Kaizen--ongoing improvement (see Figure 2). This requires standardization, improvement, and innovation .
Standardization is done following the standardize-do-study-act (SDSA) and locks in later gains. The standard may be a set of instructions, guidelines, templates, checklists, macros, drawings, and so forth--anything that allows the team to do something in a consistent way. This is the most neglected quality method in North America. Yet without it the gains from improvements and innovations are not locked in, and may be lost in a few years.
Improvement is accomplished with the plan-do-study-act (PDSA) cycle . This simple tool, used regularly by everyone, has enormous cumulative problem-solving power. Every non-trivial task is planned, performed according to plan, studied for lessons learned, and then appropriate action is taken for further improvement, or standardization to hold the gains. The improvement effort is visibly documented in a quality improvement (QI) story which is presented to management . Management, of course, is also working to visibly improve their own work.
Innovation is the process most practiced in the U.S., but rarely systematically. One powerful and robust approach to innovation is the theory of constraints . Innovation is accomplished by breaking through bottlenecks for dramatic improvement. The toughest constraints are self-inflicted--once identified, they can be broken by changing policy. The key is to consider what to change, what to change to, and how to change--and to dissolve the barriers limiting the team today's results.
Kaizen stresses fact-based improvement. Decisions are made based on facts--not experience, education, or gut feel. This is contrary to the North American "genius management" approach, in which facts are not a prerequisite for decision making. Serious "instrumentation" of the software life cycle is required for Kaizen.
Statistical Process Control (SPC)
The quality system for improvement that all teams must master is statistical process control (SPC). This quality system is the oldest and most basic in the quality field . SPC has a 50-year track record in manufacturing and works well for software too [4, 21]. SPC includes tools for improvement, and a process for making improvements (see the sidebar entitled "Seven Quality Control Tools").
A process in statistical control is stable, delivers consistent (predictable) performance, and can be improved by analyzing and then changing the process. A process that is not in statistical control exhibits no consistent performance. The resulting variation may be so wide that no one can tell whether or not a change improved the process. Therefore, first get the process in control (stable with consistent performance), then improve the capability of the process (that is, the level of performance). It is essential for software organizations to collect, properly interpret, and improve via metrics. It is necessary, but not sufficient, for key software development processes to be in a state of statistical control. That only means they are stable, predictable, and improvable. It does not necessarily mean we can satisfy the customer with them.
When the seven basic tools of quality control are effectively employed in a defined process for improvement by everyone and every team, a powerful force for quality results . If everyone on every team uses the same process for improvement, and makes improvements on a regular or daily basis, then the basic quality process for achieving world-class performance is established--a defined method with standard tools that can be taught, measured, and improved (see Table 1). Metrics are used throughout SPC, but SPC is not the mindless accumulation of metrics. Metrics, by themselves, do not result in improvement. In SPC we do not start by deciding what data to collect--we start by deciding what we want to improve. Once it is clear what the desired improvement is, then it is generally …