Вы находитесь на странице: 1из 8

SOFTWARE QUALITY MANAGEMENT

A Discussion of
The basic idea underlying this article is
that the conventional understanding of the
role of a software quality assurance (SQA)

the Software
engineer is unduly limited. This is because
few have asked who the customers of an
SQA engineer are. Once one does this, he
or she can better define what tasks an SQA

Quality
engineer should perform, as well as identify
the knowledge and skills that such a person
should have. The consequence of doing this
is that an SQA engineer can provide greater

Assurance Role
value to his or her customers. It is the posi-
tion of this article that an SQA engineer
providing significant value to his or her
customers must not only assume the role of
an auditor, but also that of a software and
systems engineer. This is because software
engineers and their managers particularly Ronald Kirk Kandt
value contributions that directly impact Jet Propulsion Laboratory,
products and their development. These ideas California Institute of Technology
are summarized as lessons learned, based on
the author’s experience at Jet Propulsion
Laboratory (JPL).

Key words INTRODUCTION


assurance job skills, experience, lessons Jet Propulsion Laboratory (JPL) is a federally funded research
learned, responsibilities and development center managed by the California Institute
of Technology under contract to the National Aeronautics and
SQP References Space Administration (NASA). The primary mission of JPL is
Software Quality Requires Professionalism to explore and observe the farthest reaches of the solar system.
and Fortitude
To do this, it develops numerous spacecraft, each controlled by
vol. 4, Issue 4
Dave Miller software that resides on these spacecraft. Several outside suppliers
and engineering organizations at JPL develop this software and
From Quality Assurance to Software Quality several people, called software quality assurance (SQA) engineers,
Engineering assure its quality.
vol. 9, Issue 2
The purpose of this article is to describe the role of an SQA
Jeff Tian
engineer. The specific objectives of this article are to identify the
customers of an SQA engineer, the activities an SQA engineer
must perform, and the requisite knowledge and skills of an SQA
engineer. JPL is the organization that the author uses to illustrate
these objectives. A statement of the SQA engineering role for
JPL is proposed, as are several lessons that readers can use to
tailor this role statement for use within their own organizations.

THE ROLE OF AN SQA ENGINEER


When trying to define the role of an SQA engineer, the author
first examined books (Chrissis, Konrad, and Shrum 2007;
Schulmeyer 2008) and the ACM, IEEE, and SEI Web sites.
Surprisingly, only one of these sources defined the role of an
SQA engineer; the others only provided descriptions of SQA
activities and metrics. The Handbook of Software Quality
Assurance (Schulmeyer 2008), for example, provides a sample
job description that specifies an SQA engineer must have four

20 SQP VOL. 12, NO. 2/© 2010, ASQ


A Discussion of the Software Quality Assurance Role

years of software-related experience, of which one year to the SQA engineer, reviews the reports that the SQA
should be in SQA, and a bachelor of science degree in engineer produces, and reports software development
computer science, information technology, or a related status to the project manager.
technical discipline. It also stated that the duties of Key personnel within the assurance organization are
a SQA engineer are to: 1) participate in software the mission assurance manager, SQA engineer, and SQA
design reviews, testing, configuration control, problem manager. The mission assurance manager authorizes
reporting and resolution, and change control; 2) audit, and funds all assurance activities on a project, reviews
monitor, evaluate, and report on software subcontractor the work of the SQA engineer, and reports his or her
activities; 3) produce write-ups and estimates for SQA concerns to the project manager. The mission assurance
activities; and 4) interface with software engineering, manager has the final say in whether a spacecraft is
software configuration management, and software ready for launch. The SQA engineer performs all SQA
process organizations. activities for the project and reports results to the mission
JPL, on the other hand, provides the following job assurance manager, the software engineering manager,
description for an SQA engineer: “An SQA engineer: and the SQA manager. The SQA manager summarizes
1) plans and executes a systematic set of activities to the concerns of the SQA engineer and reports them to
ensure that software lifecycle processes and products his manager. Higher-level quality assurance managers
conform to applicable requirements, standards, and repeat this process until the manager of the mission assur-
procedures; 2) ensures that planned and implemented ance organization, who is the supervisor of the mission
process and product standards conform to applicable assurance manager, hears the summarized concerns.
requirements, and are appropriate for the risk posture of The remaining key customer of an SQA engineer is
the project; 3) ensures that planned corrective actions a project representative of the SEPG, which JPL calls a
meet acceptable reliability standards; and 4) ensures software process engineer. The software process engineer
that safety-critical software is identified and tracked, and receives records from an SQA engineer that the SEPG
that risks are mitigated to ensure safe operation of the uses to improve the institutional standard software
software.” The author concluded from his examinations development processes, which it maintains. Figure 1
that there is no common definition of an SQA engineer illustrates all of these relationships.
and there are significant omissions in each definition.

TASKS AN SQA
THE CUSTOMERS OF ENGINEER PERFORMS
AN SQA ENGINEER What should an SQA engineer do? An SQA engineer
Every SQA engineer has customers. These customers should perform two basic types of tasks: audits and
generally are project managers, line managers, process assessments. An audit is a systematic review of arti-
owners, and funding agents (that is, entities that pay facts—typically records and documents—to verify their
people). Customers may be different for one organiza- accuracy. For example, if a release description document
tion than for another, but they tend to be very similar stated that only the files f1, f2, … fn comprised the entire
among organizations. The customers at JPL include release, then an audit would ensure that those and only
people from the assurance organization, one or more those files comprise the release. An assessment, on the
software engineering organizations, and the Software
Process Engineering Group (SPEG). To simplify the Figure 1 Relationships among key roles
following discussion, the author assumes only one
Authorizes/Funds
software engineering organization and one SQA engineer
works on a project. Project Manager
Summarizes Reports
Mission Assurance Manager
Key personnel within an engineering organization at
nds

rts
Authorizes/Funds

Software Process Engineer


JPL are the project manager and the software manager. po
/Fu

Rep
orts Re
izes

The project manager directly or indirectly authorizes


hor

n
and funds all work on the project. Similarly, the software rmatio SQA Engineer
Aut

o
es Inf
© 2010, ASQ

manager authorizes, funds, and monitors all software Provid Report


s
Software Manager Re ports SQA Manager
engineering work on the project, provides information

www.asq.org 21
A Discussion of the Software Quality Assurance Role

other hand, is the evaluation of the quality of artifacts requirements ensures that the number of defined
or activities to determine their adequacy or value and nonfunctional requirements is adequate and
to identify their associated risks. SQA engineers at each requirement is succinct, unambiguous, and
JPL audit software deliveries and assess development verifiable. Further, each assessment ensures that
processes and various work products, including the each requirement includes a sound rationale, a
delivered products. Recently, SQA engineers at JPL method of verification, traces to higher-level
have begun to assess managerial and technical decisions. requirements, and allocations to one or more
software components.
Standard Activities Currently, there are no institutional require-
JPL uses standard processes, as required by CMMI Level ments for assessing the quality of a software
3 (Chrissis, Konrad, and Shrum 2007). Some of these architecture. In place of such a standard, an SQA
processes describe the activities that the SQA organi- engineer uses the Architecture Tradeoff Analysis
zation performs. These activities include, for example, Method (ATAM) (Clements, Kazman, and Klein
metrics collection and process tailoring. However, the 2001) to evaluate software architectures. Each
key activities that SQA engineers at JPL perform for assessment of a software architecture deter-
projects are described here. mines whether the architecture exhibits low
• Software delivery audits. For each software coupling and appropriate segmentation and
delivery, an SQA engineer performs a software layering. In addition, an assessment ensures
delivery audit that satisfies criteria typically that the software architecture identifies the
required by physical and functional configu- interfaces between the components of the archi-
ration audits. More specifically, a software tecture, as well as the method of communication
assurance engineer ensures that requirements among these components and the data that each
have been allocated to the delivery and that they component accesses, including the method of
have been verified. In addition, an SQA engineer access. Similarly, during assessments of detailed
verifies that delivered documentation is useful designs, an SQA engineer focuses primarily on
and accurate and that open anomaly reports and determining whether someone has assigned a
action items have suitable action plans.
cohesive set of responsibilities to a component,
• Compliance assessments. An SQA engineer whether a component is loosely coupled with the
assesses software management plans for compli- rest of the system, and whether the implemented
ance with institutional software process and data structures and algorithms are reasonable.
product requirements. If deviations occur, the
When examining code, an SQA engineer
SQA engineer writes findings and communicates
attempts to verify that it satisfies institutional
them to members of the engineering and quality
coding standards. Significant concerns include
assurance organizations and project manage-
buffer overruns, uninitialized variables, redun-
ment. For each requirement deviation, the SQA
engineer identifies the risk of the deviation as dancies in the code, incorrect bit manipulation,
well as various mitigation strategies. After each improper handling of exceptions, and incorrect
compliance assessment, a project either revises or inadequate use of semaphores. A JPL SQA
its plans to satisfy the requirements or writes the engineer focuses on these issues because they
necessary waivers, including rationales for the pose the greatest risk to the software that JPL
waivers that require approval by the appropriate develops.
process owner. • Process area assessments. An SQA engineer
• Work product assessments. An SQA engi- periodically assesses the degree to which a
neer evaluates several types of work products. project follows its software management plans.
Key work products include those that define A set of heuristics based on the results of prior
requirements and designs, as well as the code assessments and other events normally control
that results from them. Each assessment of the periodicity of these assessments.

22 SQP VOL. 12, NO. 2/© 2010, ASQ


A Discussion of the Software Quality Assurance Role

• Milestone review assessments. The institution The software team uses numerous blade servers
defines requirements that identify what is sup- and test-beds that are connected to a variety of laptops
posed to occur at each milestone review (for and desktop computers. The blade servers, in turn, are
example, preliminary design review and critical connected to institutional storage servers and are used
design review). These requirements govern the to store software. Documentation, on the other hand, is
material that project team members present at stored in an institutional documentation repository that
each review, as well as how to disposition action is accessible using any machine on the internal network
items that arise from each milestone review. through a Web browser.
An SQA engineer ensures that the material This environment is maintained by several different
presented at a milestone review satisfies the organizations. The desktops and laptops are adminis-
requirements of the institution and that the tered by one organization, whereas another organization
resulting action items are properly dispositioned. administers the blade servers. The institutional storage
servers are maintained by yet another organization,
New Activities which differs from the maintainers of the documentation
repository. Finally, one last organization maintains the
Software managers and engineers make many decisions
internal computer network. So, there are five separate
that underlie core software engineering and management
organizations that the team must interface with to
activities (for example, architectural design). Before
maintain its computing infrastructure.
these decisions are made, these people should conduct
During software development, the team encountered
appropriate analyses. Afterward, these analyses should
several problems. For example, user access to machines
be reviewed to determine that the final decisions are
was denied, system software was inadvertently changed,
appropriate, as well as to ensure that the associated risks
and files periodically, and briefly, appeared to not exist.
of these decisions have been appropriately quantified.
Although SQA engineers at JPL seldom make, review, Performing thorough decision analysis most likely would
or approve such decisions as part of either a process or have eliminated these problems. For example, consider
a product assessment, they should do so. Consequently, whether the selected infrastructure could have sup-
the SQA organization at JPL has initiated the creation ported the desired method for maintaining and releasing
of a catalog of critical decisions that it expects software artifacts. For the software team of this example, it could
teams to make. This catalog identifies the expected not because the design artifacts and test results were
alternatives for each decision and the associated risks maintained in the document repository and there was
for each alternative. The creation of such a catalog is no automated way to associate specific versions of those
important because the root cause of many JPL mis- artifacts with a specific release of the software system
sion failures is bad decisions caused by inadequate or under development.
omitted analysis (Kandt 2010). In addition, decisions Similarly, one should analyze whether the chosen
lacking proper analysis sometimes lead to significant software development tools would work within the
or unexpected increases in engineering costs. Decision network topology. This would require an understand-
assessment is discussed in the following sections to ing of the network topology and an analysis of whether
illustrate the importance of assessing project decisions. its latency adversely affected the performance of the
software development tools. Finally, the software team

Managerial Decision should have performed an analysis of whether being


dependent on so much external infrastructure and so
Assessments many organizations posed an acceptable level of risk.
The decisions that managers make often have a signifi- Although these support organizations individually
cant impact on work. The following description identifies provided value to the project, the risk associated with
the logical computing environment of a typical software this infrastructure, including the use of five separate
team at JPL and how it has chosen to administer this support organizations, outweighs the value provided
environment. It is used to illustrate why managerial by the infrastructure and the organizations supporting
decisions should be thoroughly analyzed and why SQA it. Hence, a software team should consider whether the
engineers should assess those decisions. hardware and software of the infrastructure is reliable

www.asq.org 23
A Discussion of the Software Quality Assurance Role

and whether the organization that administers this • How should components communicate with
infrastructure can satisfy the service needs of the team. one another (for example, direct function call,
In sum, if analyses like these were performed, the shared memory, or message passing)?
infrastructure and choice of the components of the • What components are processes, threads, and
integrated development environment most likely would libraries? How does one determine the priority
have been different. At the very least, the team could for each process or thread?
have developed strategies that would have lowered
development risk. Following are a few questions that • How many devices should a project allow to
should be identified in a “decision analysis” catalog, control a MIL-STD1553B bus and will these
along with the mitigation strategies, expected outcomes, devices use dynamic bus control?
and associated risks. • What type of memory management scheme will
• Who should maintain the software infrastructure? nonvolatile memory use? What factors should
be used to perform the analyses?
• How much new development technology should
a project adopt? In sum, documenting these decisions, and the
analyses leading up to these decisions, should result in
• When can line managers and software engi-
greater mission success, especially after independent
neering experts influence the decisions that a
assessment of them.
project makes?
• When should a project make and reconsider
decisions? REQUISITE KNOWLEDGE
The selection of these questions is based on problems
OF AN SQA ENGINEER
that have arisen in several projects at JPL that, if thought A key aspect of the role of an SQA engineer is to assist
about more thoroughly, may have resulted in increased software engineers and their managers to perform their
efficiency of their software development teams. function in a quality manner. To do so requires an
SQA engineer to have general knowledge of software
engineering. This knowledge must span configuration
Technical Decision Assessments management, requirements engineering, software design,
There are a variety of technical decisions that soft- and software verification. Specifically, the SQA engineer
ware teams make whose decisions should be thoroughly must know how to assess the quality of individual
documented and analyzed. Later, an SQA engineer requirements and sets of requirements, architectural
should assess these decisions to determine whether designs, and detailed designs of the components of
the analysis was accurate and reasonable and what the the architecture, and possess a thorough knowledge
associated risks are, if any. This is one reason why SQA of verification methods that include both review and
engineers need to create and use a catalog of decisions testing techniques.
that software engineers often need to make, and then An SQA engineer must also possess a general knowl-
assure that they make them, as needed. edge of computer science. He or she must have a
Following are a few trades that should be in such a basic understanding of data structures, algorithms,
catalog. These trades generally have a significant impact computer architecture, and operating systems. At JPL,
on a software system’s performance and reliability. SQA engineers must possess a detailed knowledge of
• Will the software team develop software based on real-time programming and the processors, memory
an operating system? If so, will it be a real-time devices, and bus protocols used by embedded software
operating system? In either case, is an evaluation systems. Likewise, they must know how custom boards
of the advantages and disadvantages of each developed by JPL engineers implement these protocols
option considered? to connect the processors, memory devices, and instru-
• If an operating system provides both kernel- and ment payloads together. The reader may wonder why all
user-level implementations of threads, which this detailed knowledge is required—such knowledge
one will be used? enables an SQA engineer to assess the appropriateness
of a variety of technical decisiAn SQA engineer must

24 SQP VOL. 12, NO. 2/© 2010, ASQ


A Discussion of the Software Quality Assurance Role

also be knowledgeable of systems engineering (Forsberg, At JPL, most software engineers use some variant
Mooz, and Cotterman 2005). Systems engineering of UNIX as the host operating system and some vari-
requires many of the same skills that software engineer- ant of Eclipse to develop software. For example, flight
ing requires—engineering requirements, developing software engineers use Linux and WindRiver WorkBench
architectures, verifying solutions, and validating that to develop software, which they deploy as part of an
the solutions satisfy the customer’s needs. Systems extended VxWorks kernel. Hence, an SQA engineer
engineering, however, places a greater emphasis on should use a workstation that uses the Linux operating
decision analysis. For example, systems engineering system and Eclipse development environment to manage
requires the examination of multiple alternatives for the work that they do and the records and reports they
achieving goals to produce an integrated solution that generate. For example, JPL SQA engineers are now using
satisfies all goals. Systems engineering also requires one the same commercial product to manage findings that
to balance multiple system qualities while achieving an most JPL software engineers use to manage action items
acceptable level of risk. Together, computer science, soft- and failure reports, which is accessible through Eclipse.
ware engineering, and systems engineering knowledge Being able to communicate well with others is also
permit an SQA engineer to assess the likelihood that an important skill of an SQA engineer. An SQA engineer
a given process and a collection of technical decisions must be able to write clear and concise prose in the
will result in a product having the specified qualities. reports he or she generates. Such prose must include
Furthermore, it is essential that an SQA engineer effective arguments that can convince others to accept
have knowledge of the application domain. At JPL, this proposed recommendations. This is because it is seldom
means an SQA engineer must have knowledge in ground, adequate to say one must change a practice because it
flight, and instrument software. Without such domain violates an institutional requirement or deviates from
knowledge, the SQA engineer cannot do much more than accepted practice. The SQA engineer must provide
perform a checklist function. For example, when domain a rationale for each recommendation, supported by
knowledge is lacking, an SQA engineer can perform concrete evidence. Finally, an SQA engineer must also
compliance evaluations in one of two ways: by asking have the verbal communication skills to communicate
project personnel whether they have complied with a effectively with customers.
standard or requirement or by verifying that compliance
records exist. Without domain knowledge, the SQA RECONSIDERING THE ROLE
engineer is unable to evaluate the given answers or to
assess the adequacy of the compliance records. Hence, OF AN SQA ENGINEER
a checklist function generally provides little value to a Now that the author has described existing definitions
project or institution. of an SQA engineer, identified the customers of an SQA
engineer, explained the tasks that an SQA engineer
REQUISITE SKILLS OF performs, and discussed the knowledge and skills he
or she needs to perform these tasks, the author can
AN SQA ENGINEER provide a description of the role of an SQA engineer
To communicate effectively with software engineers, an appropriate for JPL. First, an SQA engineer must have
SQA engineer requires several skills. An SQA engineer general knowledge of computer science. More specifically,
must be proficient in the tools that software engineers an SQA engineer must have a thorough understanding
use, including the environment in which they use these of data structures, algorithms, computer architecture,
tools. For the purposes of this discussion, the environ- operating systems, real-time programming, software
ment includes the operating system and development engineering, and systems engineering. Such knowledge
environment that software engineers generally use. To is generally demonstrated by achieving a bachelor of
maintain proficiency in these tools and environments science degree in computer science and a master’s degree
implies that SQA engineers must regularly use them. in computer science, software engineering, or systems
Probably the best way to do this is to make their use part engineering. An SQA engineer should be proficient
of their daily routine. In other words, SQA engineers in the commonly used programming languages of the
should use the same host and development environments organizations he or she assures; at JPL, this is generally
as the software engineers to do their work. C, C++, Java, and Python.

www.asq.org 25
A Discussion of the Software Quality Assurance Role

Second, an SQA engineer must be skilled in the use the author performed all the software builds, ran all the
of the operating systems and development environments code analysis tools, and examined and dispositioned the
in use by the organizations he or she assures; at JPL, results of these tools, including those of the compilers
this generally involves the use of a derivative of the (Kandt 2009). Performing these activities gave him
UNIX operating system, Eclipse or an Eclipse-based greater insight into the quality of the primary product
integrated development environment, SVN, and JIRA. In of the software development team, which is real-time
addition, an SQA engineer must be able to communicate software that is embedded in spacecraft. Performing
effectively with others, both verbally and in writing. these activities required him to have many of the skills
Third, an SQA engineer will communicate with of the software engineers, in addition to those of an
several customers. The principal customers are the SQA engineer. The primary expansion of the role of
mission assurance manager, the SQA manager, software the SQA engineer at JPL, however, is to ensure that key
managers, and software process engineers. An SQA management and technical decisions are made, that
engineer will communicate with these people at various the resulting decisions are reasonable, and that the
periodic meetings, such as monthly management reviews. risks of those decisions are quantified. The rationale
Fourth, an SQA engineer will perform several audits for expanding the role of the SQA engineer to include
and analyses. Some of these audits and analyses will be decision analysis is that most JPL mission failures are
driven by a defined periodicity, whereas others will by caused by bad decisions resulting from inadequate or
driven by events. Key events include milestone reviews omitted analysis (Kandt 2010). Hence, the assessment
and peer reviews of the software engineering organiza- of management and engineering decisions by SQA
tions. Each audit or assessment follows a defined process engineers is vitally important.
using various checklists. At the end of each audit or At JPL, SQA engineers are generally perceived as
assessment, the SQA engineer will generate reports being the enforcers of software process and product
for his or her customers that describe the performed standards. Although this is a necessary goal of an
audits and analyses, as well as general project status SQA engineer, it is not sufficient to provide value to
information. If findings are generated, the SQA engineer all of its customers and it is a perception that the SQA
will track them to closure. organization is trying to change. As a result, the author
Fifth, the scope of work that an SQA engineer has concluded that, to perform effectively, an SQA
performs includes all software engineering activities, engineer must have largely the same knowledge of the
whether a subcontractor or an internal software engi- software engineers who build the software and the
neering organization performs it. Similarly, an SQA process engineers who define the development processes.
engineer begins working on a project during the initial Since the author believes the quality of the SQA staff is
planning phase and stops working on it no sooner than strongly correlated with the engineering organization’s
one year after the start of maintenance. Critical tasks ability to transition SQA personnel to the engineering
at the start of a project that an SQA engineer performs organization, a goal of the SQA organization is to infuse
are the production of a cost estimate for SQA services SQA engineers into the engineering organizations as
and an evaluation of software engineering cost estimates. software engineers.
A critical activity that an SQA engineer performs at the Following are some key lessons resulting from the
end of development is witnessing the testing of software. author’s work:
1) Defining a role statement for an SQA engineer
SUMMARY clarifies whom an SQA engineer must satisfy
In the past, the SQA organization has assumed that the and what he or she must do to satisfy them. In
assurance organization was its sole customer, primarily other words, the role statement bounds what
because that is who pays it. More recently, the SQA an SQA engineer should do and for whom.
organization has reconsidered who its customers are 2) The role of an SQA engineer is dependent on
and has reevaluated how it can better serve them. The the needs of his or her customers. Since these
primary result of this effort has been to include the customers and their needs, may vary, the SQA
project engineering organizations as customers and to engineer must tailor the activities he or she per-
expand service to them. For example, on one project forms and the deliverables he or she produces

26 SQP VOL. 12, NO. 2/© 2010, ASQ


A Discussion of the Software Quality Assurance Role

such that all of the customers—those involved References


in engineering and assurance—receive value. Chrissis, M. B., M. Konrad, and S. Shrum. 2007. CMMI: Guidelines for
To delight customers in the engineering orga- Process Integration and Product Development, 2nd edition. Boston:
Addison-Wesley.
nization, an SQA engineer should consider
Clements, P., R. Kazman, and M. Klein. 2001. Evaluating software
performing engineering tasks that provide
architectures: Methods and case studies. Boston: Addison-Wesley
the SQA organization with greater insight into Professional.
product quality. Forsberg, K., H. Mooz, and H. Cotterman. 2005. Visualizing project man-
agement: Models and frameworks for mastering complex systems, third
3) To provide maximum value to software engineers, edition. New York: John Wiley.
SQA engineers must be able to communicate Kandt, R. K. 2009. Experiences in improving flight software development
with software engineers using notations, lan- processes. IEEE Software 26, no. 3 (May-June):58-64.
guages, and tools for which they are accustomed. Kandt, R. K. 2010. Essential practices for developing flight software.
In addition, SQA personnel must persuasively Submitted to IEEE Transactions on Software Engineering.
argue their points of view, based on supportive Schulmeyer, G. G. 2008. Handbook of software quality assurance, fourth
edition. Artech House.
evidence derived from actual work experience.
That is, academic analyses typically will be
viewed less favorably than the experience of Acknowledgments
their organizational peers. Milt Lavin reviewed preliminary versions of this article. His comments
helped to improve its quality, as did those of the independent review-
4) The decisions that software engineers and ers. The author performed this work at the Jet Propulsion Laboratory,
managers make have a greater impact on California Institute of Technology, under a contract with the National
Aeronautics and Space Administration.
product quality than the software development
processes they use (Kandt 2010). There is
Biography
overwhelming evidence that poor manage-
ment decisions lead to greater inefficiencies Ronald Kirk Kandt is a senior software assurance engineer at the
and lower effectiveness. Similarly, there is Jet Propulsion Laboratory. His current research interests include
the efficient and effective generation of reliable software. He
overwhelming evidence that mission failures
previously worked as a software engineer in the aerospace and
and near-failures are almost always traceable financial industries. Kandt has a bachelor’s degree and master’s
to poor technical decisions, few of which are degree in computer science from the University of California,
preventable by software development processes. Irvine. Contact him at ronald.k.kandt@jpl.nasa.gov.
Limited funding and schedule constraints
are, unfortunately, significant causal factors
© 2010 California Institute of Technology. Government sponsorship
influencing the applicability of this lesson.
acknowledged.
In sum, readers can use the author’s experience and
these lessons to improve the performance of the SQA
function within their organization.

Institute for Software Excellence


May 24-26, 2010 • St. Louis, MO
“Show Me” the Value of Software Quality
Come join us!
http://www.asq.org/conferences/institute-for-software-excellence/index.html

www.asq.org 27

Вам также может понравиться