March 2003
Volume 5 • Number 2
Contents
Resource Reviews
GENERAL KNOWLEDGE, CONDUCT, AND ETHICS
Strategic Planning Technology Workbook
for Small Businesses: Performance Optimization for Your
Company, Division, Department, or Team
By Ron Ford and William C. Bean
Building Effective Project Teams
By Robert K. Wysocki
SOFTWARE QUALITY MANAGEMENT
Making Process Improvement WorkA
Concise Action Guide for Software Managers and Practitioners
By Neil S. Potter and Mary E. Sakry
Building the Customer-Centric EnterpriseData
Warehousing Techniques for Supporting Customer Relationship
Management
By Claudia Imhoff, Lisa Loftis, and Jonathan G. Geiger
SOFTWARE ENGINEERING PROCESSES
Software Fault ToleranceTechniques
and Implementation
By Laura L. Pullum
The Career Programmer: Guerilla Tactics
for an Imperfect World
By Christopher Duncan
Agile Software Development Ecosystems
By Jim Highsmith
PROGRAM AND PROJECT MANAGEMENT
Information Security Management Handbook
CD-ROM
By Harold F. Tipton and Micki Krause
SOFTWARE VERIFICATION AND VALIDATION
Lessons Learned in Software Testing
By Cem Kaner, James Bach, and Brett Pettichord
Software Verification and Validation
for Practitioners and Managers
By Steve Rakitin
Software Testing, A Guide to the TMap
Approach
By Martin Pol, Ruud Teunissen, and Erik van Veenendaal
Effective Methods for Software Testing
By William E. Perry
GENERAL KNOWLEDGE, CONDUCT, AND ETHICS
Strategic Planning Technology Workbook for Small Businesses:
Performance Optimization for Your Company, Division, Department,
or Team
Ron Ford and William C. Bean. 1995. Amherst, Mass.: Human
Resource Development Press, Inc. 160 pages. ISBN 0-87425-270-9.
(CSQE Body of Knowledge areas: General Knowledge, Conduct,
and Ethics)
Reviewed by John Richards
John_Richards@sra.com
This book was designed to allow the small business owner,
or leader of a segment of a larger business, to build a
comprehensive operational and strategic plan. (p. 3.)
This is a step-by-step workbook organized to educate and direct
even a novice planner through the process of developing a
practical, understandable, and implementable plan. It begins
with the basic goals and purposes of a strategic plan. This
book then carefully guides readers through the steps of strategic
planning with clear diagrams, concise but adequate instructions,
and detailed worksheets and sample forms.
The strategic planning process as described here consists
of 10 steps: 1) business definition; 2) long-range vision;
3) values structure; 4) mission statement; 5) strategic enterprise
assessment; 6) success and failure; 7) strengths, weaknesses,
opportunities, and threats analysis; 8) strategic goal identification;
9) action plans; and 10) plan builder and implementation.
While an excellent aid for the inexperienced planner, this
book is lacking in a few areas. The implementation section
is only six pages long with one page devoted to a sample form
and another to a sample meeting agenda. It would be useful
to readers to have more information not only on tracking the
implementation of the plan but also on how to evaluate its
effectiveness. I would recommend another section, step 11,
be added on tracking and evaluating the results of the plan.
The user needs to know how to determine if the plan is being
executed as designed and if the plan is working. This information
is critical to the next round of planning. Essentially, check
and act have been left out of the plan-do-check-act (PDCA)
cycle. A list of other references would also be valuable.
Overall, this is a useful and well-prepared plan for those
new to the development of strategic or business plans. The
diagrams and sample forms are well done.
John D. Richards (John_Richards@sra.com)
is an account and project manager for SRA International in
San Antonio, Texas. He has more than 30 years experience
as a manager and leader. He is a certified quality engineer
and auditor and a Senior member of ASQ. He has a doctorate
and an advanced masters degree in education from the
University of Southern California, and masters and bachelors
degrees in psychology. He serves as an adjunct professor at
the University of the Incarnate Word teaching courses in statistics,
quantitative analysis, management, and psychology.
Building Effective Project Teams
Robert K. Wysocki. 2002. New York: Wiley Computer Publishing.
266 pages and CD-ROM. ISBN 0-471-01392-7
(CSQE Body of Knowledge areas: General Knowledge - Team
Management, Team Tools; Program and Project Management -
Risk Management)
Reviewed by Eva Freund
efreund@erols.com
Think mentor talking with you over a cup of your favorite
brew and one will have identified the focus of this
book. Wysocki takes for granted that readers already have
the basic management and project management skills. His objective
is to reduce the risk that ones project will fail by
teaching readers how to build their team. He teaches
readers a comprehensive system for assessing, forming, developing,
and deploying an effective project team.
This book introduces the concept, model, and application
of this system, which the author calls TeamArchitect. In addition,
the book comes with a CD-ROM that contains all of the data
used in the case study described in the book.
Part one provides the background and infrastructure for building
effective project teams. Part two covers the assessment process
and introduces five assessment tools, which do not require
a certified professional to interpret the results. Part three
takes the information compiled in part two and shows how the
tools are used to profile a project and the project team.
Part four shows how to develop strategies for making team
alignment decisions and how to sustain that alignment over
the life of the project.
Because I was not familiar with this author, I expected that
this would be another book that described the team solely
in terms of the skills needed by the project vs. the skills
possessed by the team members. Instead I found that Wysocki
takes the contrarian positionthat individual thinking
styles, problem-solving and decision-making styles, and conflict
management styles and strategies have a major impact on the
success or failure of the project regardless of the task or
the project. In addition, the book contains generic knowledge,
skills, behaviors, and experiences that identify the proficiency
of the project manager. By comparing that profile to the project
complexity level, the organization can determine the readiness
of an individual to assume project management responsibility.
Wysocki understands that being able to recruit the entire
project team may be a once-in-a-lifetime experience and that
it is more likely that the manager will have either no choice
as to the membership or a choice of only some team members.
It is this understanding that distinguishes this book from
other books.
In keeping with this mentor approach, the author makes it
easy for readers to learn more. His list of suggested reading
is diverse, and he provides his Web site to supplement the
book and the CD-ROM. Finally, he provides his e-mail address
so readers can contact him.
I recommend this book both for those who want to merely understand
the concept of building an effective team and those who want
to implement the concept and reduce the risk of project failure.
Eva Freund (efreund@erols.com)
is an independent verification and validation (IV&V) consultant
with 20 years of experience in software testing, standards,
and project management. She offers IV&V and software process
improvement services to private- and public-sector organizations.
She is an ASQ Certified Software Quality Engineer and a Certified
Software Development Professional from the IEEE Computer Society.
SOFTWARE QUALITY MANAGEMENT
Making Process Improvement WorkA
Concise Action Guide for Software Managers and Practitioners
Neil S. Potter and Mary E. Sakry. 2002. Boston: Addison-Wesley.
264 pages. ISBN 0-201-77577-8.
(CSQE Body of Knowledge area: Software Quality Management)
Reviewed by Pieter Botman
p.botman@ieee.org
Process improvement (PI) as a concept is easily hyped and
readily packaged for consumption by managers at the business/corporate
level and within software engineering organizations. After
all, who wouldnt want to reduce waste, eliminate defects,
shorten development cycle time, and improve customer satisfaction?
PI and assessment frameworks, both general and software specific,
offer some value in relating software engineering practices
to process models, but do not address many practical aspects
of process improvement, particularly change management. This
book, aimed at project managers as well as PI practitioners,
goes back to basics and presents a pragmatic, from-the-ground-up
approach.
This book does not dwell on higher-level PI theory, and the
authors begin the book by denouncing approaches that are too
process centricapproaches that do not produce
real gains, and are perhaps overly motivated by the lure of
an ideal process. Readers familiar with the Software Engineering
Institutes (SEI) Capability Maturity Model (SEI CMM)
school of process improvement wont find much discussion
of the centralized Software Engineering Process Group
here: The (PI) plan owner should be the same person
who owns the business goals being addressed by the plan
.
The primary owner of the improvement plan should not be the
process improvement group, the software quality assurance
group, or similar support function.
The books organization is simple, and reflects the
thinking and actions of one individual (practitioner or manager)
who must plan, implement, and manage change to processes within
an organization.
Developing a Plan sets the pragmatic tone for
the entire book. PI efforts begin with an accurate evaluation
of actual problems, including their scope and their relation
to organizational goals. In discussing the evaluation of problems,
and the linking of problems to goals, the authors develop
the important theme of broad consultation and cooperation.
That theme will become even more compelling in subsequent
chapters.
This book contains realistic sample lists of problems, explicitly
and effectively linked to real business goals, and edited
for clarity. The problems and goals are weighted or prioritized.
Basilis goal-question-metric (GQM) approach is introduced,
and then well illustrated by a chart relating the PI goals,
questions, and metrics for the example problems identified
previously. The authors also offer some pragmatic tips concerning
the use of more involved assessments in order to narrow the
focus and help identify underlying problems, if not readily
apparent after conducting interviews.
The planning chapter is also practical in addressing the
action plan. The authors stress the tightly coupled relationship
between problem, goal, and action steps. CMM practices, already
organized in functional (key practice) areas and structured
with respect to specific goals, are suggested as a resource
in developing appropriate action steps. The action plan also
contains detailed measurement steps and risk management considerations
for each contemplated action.
The chapter titled Implementing the Plan is really
about entering into selling the benefits and the details of
the plan to the appropriate stakeholders. Change management
terms and techniques are introduced in simple terms. Here
the authors have advice not only for the individual PI practitioner
attempting to influence a line manager or process owner, but
also for the process owner in implementing change within his
team: Managers can help keep the efforts on track by
providing a clear focus for each improvement, letting people
know what is expected of them, and aligning their own behavior
with the improvement
. Managers must remain informed
about the planned improvements, and help people see how the
new practices support organizational goals.
These guidelines are doubly valuablenot only can a
line manager use them to improve his own chances for success
in implementing changebut the individual PI practitioner
can also use them as starting points (and expectations) when
beginning discussions with a line manager.
The chapter Checking Progress is aptly titled
since it does not dwell on completion of PI. This
is laudable and appropriate. With the groundwork laid out
in careful planning, the actions have measurements laid out.
So the aims of the checking are to monitor progress, then
enact risk management and correction strategies if the action
steps are producing negative results. The authors promote
specific measurement and tracking of all improvement action
steps, followed by determination of lessons learned and corrective
actions related to the PI cycle as a whole (the PDCA cycle
applied to PI!).
Another important practical consideration for managers and
practitioners is relating action-step results to their associated
business goals (and hence to the readily recognized business
benefits). Once again the theme of communication and cooperation
emerges. Regardless of technical merit, managers will support
investment in PI only when the results are visible in business
terms. Practitioners must be able to demonstrate, and build
upon, success.
Some of the appendices are detailed expansions of some of
the example lists and tables introduced in the book. Appendix
A contains more detailed table mapping sample problems to
specific CMM key process areas and practices. Appendix B contains
a more complete listing of the cited CMM practices, and Appendix
C contains a detailed action plan table, linking goals and
prioritized actions. Appendix D contains a table summarizing
a sample risk action plan. Not quite as useful, Appendix E
contains a very short summary of the SEIs CMM (v1.1)
and CMMI-SE/SW/IPPD (v1.1), and Appendix F contains a short
introduction to a mini-assessment process.
I found this book to be very pragmatic and straightforward.
It includes an unusual blend of quality management, software
engineering, and change management topics. While it would
not serve as a reference book in any of these disciplines,
I would expect that someone assuming the role of PI practitioner
would already have significant insight into the technical
aspects of software engineering processes. For beginning PI
practitioners and managers, the emphasis must be on unifying
these three disciplines and in presenting detailed methods
of implementation. The authors have clearly achieved these
goals.
Pieter Botman (p.botman@ieee.org)
is a professional engineer registered in the province of British
Columbia. With more than 20 years of software engineering
experience, he is currently an independent consultant, assisting
companies in the areas of software process assessment/improvement,
project management, quality management, and product management.
Building the Customer-Centric EnterpriseData
Warehousing Techniques for Supporting Customer Relationship
Management
Claudia Imhoff, Lisa Loftis, and Jonathan G. Geiger. 2001.
New York: John Wiley and Sons. 487 pages. ISBN 0-471-31981-3.
(CSQE Body of Knowledge areas: Software Quality Management
and General Knowledge)
Reviewed by Jayesh G. Dalal
jdalal@worldnet.att.net
This book describes data warehousing techniques for supporting
customer relationship management (CRM). Businesses have recognized
the importance of CRM, and the more successful ones have deployed
systems to support-related activities. This comprehensive
book provides a roadmap for establishing a CRM program, identifies
obstacles, and presents methods to overcome the obstacles.
Business managers interested in improving their customer relationship
management and the IT professionals supporting them should
find this book useful.
The authors have written this book with two distinct audiences
in mind: the business people who have to manage the customer
relationship, and the technical people who have to provide
the necessary computer systems support. The authors have succeeded
in addressing the needs of these groups, but have taken almost
500 pages to do so.
The book is divided into three parts. The first 20 percent
of the book introduces CRM, the next 40 percent addresses
planning for CRM, and the last 40 percent covers CRM implementation.
The authors have used the needs and experiences of a banking/financial
services customer as basis for introducing various CRM concepts
throughout the book. Since one can readily relate to this
fictional customer, the approach helps readers appreciate
the various CRM challenges and solutions presented in the
book.
I found this book interesting but not easy to read. I did
not like the amount of repetition, frequent references to
material elsewhere in the book, and extensive use of acronyms
(some not even explained at the first use). I also found the
use of data as a singular rather than a plural noun distracting.
I agree with the authors that those considering CRM need a
balanced perspective of both the business and technical aspects
of CRM. Considering the size of the book, however, business-oriented
readers may want to skim the technical content, and the technically
oriented readers may want to do the same with the business
content.
Jayesh G. Dalal (jdalal@worldnet.att.net)
is a past chair of the ASQ Software Division, an ASQ Fellow,
and a Certified Software Quality Engineer. He has served as
a National Baldrige Award examiner. For more than 30 years
he was an internal consultant and trainer at large corporations
with manufacturing, software, and service business. He now
offers consulting and training services for design, assessment,
and improvement of management systems and process.
SOFTWARE ENGINEERING PROCESSES
Software Fault ToleranceTechniques
and Implementation
Laura L. Pullum. 2001. Boston. Artech House, Inc. 343 pages.
ISBN 1-58053-137-7.
(CSQE Body of Knowledge areas: Software Engineering Processes
and Software Quality Management)
Reviewed by Jayesh G. Dalal
jdalal@worldnet.att.net
The number of computer-based and computer-controlled systems
around us has steadily increased and so have the reports of
their failures and associated consequences. The contribution
of software toward the functionality provided by these systems
has also increased steadily. In this book, Pullum provides
a comprehensive overview of methods that can help protect
against software design faults and tolerate operational problems
induced by these faults.
Pullum defines software fault tolerance as the use of a variety
of software methods to detect software-induced faults and
accomplish recovery. She cautions that a fault tolerant system
does not mean a safe system, and fault tolerance does not
cover other dependability-related attributes such as reliability,
availability, and so on. More than once in the book she also
points out that the existence of a good requirements specification
is essential for dependable software and that fault tolerance
methods cannot compensate for requirements specification errors.
The book addresses only the faults induced by software components
of a system.
In the first third of the book, the author briefly reviews
methods to produce dependable software, types of software
error recovery, and software redundancy. The concepts of design
diversity, data diversity, and temporal diversity and their
use are explained, and some examples are provided. In addition,
architectural structure for diverse software is explained
and a few frameworks for the development of diverse software
are presented. Finally, problems and issues associated with
the fault tolerance techniques are discussed, and several
programming methods are described. Design hints and a description
of a dependable system development model conclude this segment.
Software fault tolerance methods use a combination of diversity
and decision mechanism to accomplish fault detection and recovery.
In the remaining two-thirds of the book a variety of diversity-based
software fault tolerance techniques and decision mechanisms
are presented. I found the format used by Pullum for the presentation
of these methods very useful. First the operation of a method
is explained, then its example is presented, and finally associated
issues are discussed. This method of presentation made it
easy to go back and forth between various methods and gain
a better understanding. The design diverse and data diverse
methods are covered in great detail. In addition, some methods
that do not fall into these two groups are briefly described.
The decision mechanisms or adjudicators are presented in the
last chapter, where a variety of voter and acceptance
test types of adjudicators are described.
Each chapter includes a summary and an extensive list of
references. In addition, a summary is also provided for key
sections. These features should be helpful to those who will
use this book as a reference. In the preface, Pullum suggests
that the book may be used as reference by software professionals
or as a textbook for a graduate-level software engineering
course. I agree. My only disappointment with the book is that
the concept of robust software is treated cursorily and no
references for this topic are provided.
Jayesh G. Dalal (jdalal@worldnet.att.net)
is a past chair of the ASQ Software Division, an ASQ Fellow,
and a Certified Software Quality Engineer. He has served as
a National Baldrige Award examiner. For more than 30 years
he was an internal consultant and trainer at large corporations
with manufacturing, software, and service business. He now
offers consulting and training services for design, assessment,
and improvement of management systems and process.
The Career Programmer: Guerilla
Tactics for an Imperfect World
Christopher Duncan. 2002. Berkeley, Calif.: Apress. 231
pages. ISBN 1-59059-008-2.
(CSQE Body of Knowledge area: Software Engineering Processes)
Reviewed by Scott Duncan
softqual@mindspring.com
The goals of this book, in the authors words, are:
Nothing we were taught in school prepared us for
the illogical, inconsistent, and sometimes downright silly
business practices that are the norm in software development
shops both large and small.
almost arbitrary [deadlines]...vague and
ever-changing requirements...little or no time for proper
analysis and design, and, when we ask management about hiring
professional testers and setting up a QA process....
This book is about overcoming the obstacles you
face on the job that ultimately result in release disasters,
stressed-out development experiences, software death marches,
and bad software that could have been good.
...we need to learn how to manage our management....
Duncan then sets the stage for the advice he promises by
identifying the problems that most software development
teams commonly encounter. The rest of the book is about
how to deal with these problems, within the bounds of what
Duncan believes individuals should be willing and able to
control, that is, themselves.
Duncans first advice is for programmers to learn to
be able to interact with business people and address
their perspective in a language that is meaningful to them.
This includes recognizing the realities of the business
world for what they are rather than wishing it were otherwise
and improv[ing] both our communication and navigation
skills...to get what we want out of interaction with
business people. And this, in turn, includes accepting the
fact that the logical, practical, and most sensible
arguments do not necessarily prevail. Thus, programmers
must learn that it is a fatal misconception to believe that
internal company maneuvering is not a part of their job, no
matter how large or small the company may be.
Next Duncan briefly addresses some specific issues such as
deadlines, requirements, analysis and design, testing, management,
politics, and the unexpected. In each case, he
tries to highlight reasons why problems occur in each of these
areas and offers some basic advice about what a programmer
may need to do to address them. For example, with regard to
deadlines, he points out a characteristic pattern:
A deadline is set, you claim it is not enough
time to deliver...solid, full-featured, quality software,
but it is set anyway and people work hard to meet it (because,
otherwise thered be the devil to pay).
Ultimately, something ships, and, to management, that is
proof that they were right all along...validat[ing]
their practice of choosing arbitrary dates.
So why does this happen? Duncan writes about inverted project
management, that is, picking a release date, then turning
it over to programmers to figure out what to do and how. He
mentions scope creep, emphasizing that second
word by noting few would propose a new feature equal
in complexity to landing a man on the moon... however, just
one tiny little enhancement doesnt seem like a big deal,
and developers are made to feel petty and uncooperative if
they make a fuss about it. But he also notes that poor
estimating skills contribute to this since if the person
writing the code cant accurately estimate how long the
development effort will take, then theres no way to
come up with an achievable deadline. Thus, if programmers
want to grapple with management for control over the
delivery dates, they had better be ready and able to back
it up once given the opportunity. A self-perpetuating
cycle of missed delivery dates...contributes to managements
resistance.
The book goes on in this way with chapters including:
- Coding Skills Are Not Enough
- Preventing Arbitrary Deadlines
- Effective Design Under Fire
- Fighting for Quality Assurance
- Keeping the Project Under Control
There is a lot of good advice here, especially about practices
and behaviors that develop credibility with management (and
peers). The book is delivered in a style that places a lot
of blame on management and that may prevent many people from
getting very far into it. A manager could take this book,
however, and use it to try to improve the problems described.
If programmers are being urged by Duncan to develop credibility,
estimating skills, effective communication, and so on, then
management can take the opportunity to encourage these explicitly,
not just expect them implicitly. And, perhaps, hiring practices
should explore subjects like this with potential members of
the technical (and other) staff members besides just knowing
their experience with operating systems, languages, and application
domains.
Indeed, if there is one thing this book makes clear it is
how many of the problems described are about being too implicit.
Not being explicit about expectationsbe they about requirements,
work habits, achieving quality (even what quality
means), credibility, and so onmay be the biggest lesson
this book teaches, though it seems to do so, in most places,
implicitly rather than explicitly.
Scott Duncan (softqual@mindspring.com)
has 30 years of experience in all facets of internal and external
product software development with commercial and government
organizations. For the last nine years he has been an internal/external
consultant helping software organizations achieve international
standard registration and various national software quality
capability assessment goals. He is a member of the IEEE-CS,
ACM. He is the current standards chair for ASQs Software
Division, and the divisions representative to the U.S.
Technical Advisory Group for ISO/IEC JTC1/SC7 and to the Executive
Committee of the IEEE SW Engineering Standards Committee.
Agile Software Development Ecosystems
Jim Highsmith. 2002. Boston: Addison-Wesley. 441 pages.
ISBN 0-201-76043-6.
(CSQE Body of Knowledge area: Software Engineering Processes)
Reviewed by Scott Duncan
softqual@mindspring.com
In SQP vol. 4, no. 3, Pieter Botman provided a review on
Agile Software Development by Alistair Cockburn. This book
is another in the same series. Cockburn and Highsmith are
the series editors with other books being Surviving Object-Oriented
Projects, Writing Effective Use Cases, and Improving Software
Organizations. This particular book is described in the foreword
by Tom DeMarco as a kind of survey introduction to the
agile methodologies.
After an introduction to the topic, the book is presented
in four parts. The first part describes some of the problems
and how agility, in general, attempts to address them. The
second discusses the people focus of agile software development
ecosystems (ASDE) and how this impacts a variety of practices
and techniques that generally appear in ASDEs. The third part
devotes a chapter to each of the ASDEs noted previously. And,
the fourth discusses Developing an ASDE which
is a kind of do-it-yourself guide to agile methodology design.
The book closes with a return to the concepts of chaordic,
collaborative, and barely sufficient methodology,
where Highsmith rates the ASDEs on a scale of relative agility
on the following concepts:
- Chaordic organizational view
- Collaborative values
- Barely sufficient methods (BSM)
- Results
- Simple
- Responsive and adaptive
- Technical excellence
- Collaborative practices
Highsmith provides an agility rating (1 is low and 5 is high)
for each element (or subelement under BSM with a BSM average)
and an overall agility rating.
The author closes by saying that rigorous cultures
face a difficult challenge in that no amount of
process thinning or document pruning will make them agile
because agility is an attitude, a sense of how the world
works in complex ways. He states, Agile cultures
and ASDEs will be difficult to implement
to the extent
that executives and managers will want the world to be predictable
and planable. But, ASDEs have two powerfully appealing
characteristics. They offer an answer to the problem of developing
software faster in highly volatile, demanding situations,
and they offer a cultural environment that appeals to many
individuals who, Highsmith states, have responded to
the agile approach by stating that it reflects how we
actually work.
Some will respond to this last statement with, Yes,
software development is done chaotically and we have to rein
that in. Others will say, Yes, software development
is done in an environment where external forces introduce
chaos and we try to deal with that, regularly.
Scott Duncan (softqual@mindspring.com)
has 30 years of experience in all facets of internal and external
product software development with commercial and government
organizations. For the last nine years he has been an internal/external
consultant helping software organizations achieve international
standard registration and various national software quality
capability assessment goals. He is a member of the IEEE-CS,
ACM. He is the current standards chair for ASQs Software
Division, and the divisions representative to the U.S.
Technical Advisory Group for ISO/IEC JTC1/SC7 and to the Executive
Committee of the IEEE SW Engineering Standards Committee.
PROGRAM AND PROJECT MANAGEMENT
Information Security Management
Handbook CD-ROM
Harold F. Tipton and Micki Krause. 1999. Boca Raton, Fla.:
Auerbach Publications. ISBN: 0-8493-1234-5.
(CSQE Body of Knowledge area: Program and Project Management)
Reviewed by Eva Freund
Eva.Freund@nara.gov
Have you wondered what it would take to become a Certified
Information System Security Professional (CISSP)? Have you
thought about becoming an information security practitioner?
Have you wondered what the system security staff needs to
know and to do in order to insure the protection of organizational
information?
If you answered, yes to any of these questions
you need this definitive source for computer security. This
CDROM version contains the entire contents of volumes
1, 2, and 3 of the fourth edition (print) plus bonus
information not available in the print editions. The content
of the CD-ROM maps to the 10 domains tested on the certification
examination.
The magnitude of effort required for addressing the myriad
of details inherent in these domains demands a multitude of
subject-matter experts. To ensure comprehensive coverage of
these topics, 79 people, drawn from national and international
private-sector organizations and academia, have authored the
145 articles constituting this body of knowledge.
The September 11, 2001, terrorist attacks on the United States,
with the dramatic loss of life, property, and infrastructure,
have heightened the awareness of and changed the prioritization
of both physical and informational security concerns. Delaying
and postponing long-dormant security concerns is not a path
to be chosen by a prudent manager. With the attendant rise
in not only the publics awareness of security threats
and risks, but also the governments responsiveness through
legislative and budgetary realignments, security has become
a here and now issue.
Concerns that future attacks will be electronic, via the
Internet, and directed at our financial and economic systems
have moved to the forefront. People may never know if the
October 2002 attacks on the Internet backbone were merely
a test by our enemies in preparation for the yet-to-come
real thing. The need for effective information/system security
has become more critical and demands a realignment of priorities.
These new priorities should include:
- Access control (physical and technical) technology to
ensure that files are not corrupted and unauthorized changes
are not made to programs
- Business continuity and disaster recovery planning to
ensure that companies can survive an attack to their data
processing facilities
- Physical security to ensure that intruders do not have
access to facilities and evacuation plans be established,
promulgated, and practiced
- Telecommunications and network security to ensure that
our ability to conduct business activities is not disrupted
- Cryptography to ensure that sensitive information is protected
during transmission, while stored on servers, or being transported
with a laptop
Individually and collectively, these new priorities mandate
that security must go from being discussed to being implemented
through a variety of techniques ranging from access control
and facial recognition systems, to biometrics and identity
chips, to cryptography and filtering software, to sniffing
and computer monitoring. Yet, many of the techniques that
would enhance security are the same techniques that are likely
to diminish personal liberties and/or provide more information
about peoples personal lives to the federal government
than people might want provided.
There is something for everyone in this CD-ROM. And if something
one needs is not there, then try References for links
to books by topical areas. This is indeed the definitive source
for computer security information.
Eva Freund (efreund@erols.com)
is an independent verification and validation (IV&V) consultant
with 20 years of experience in software testing, standards,
and project management. She offers IV&V and software process
improvement services to private- and public-sector organizations.
She is an ASQ Certified Software Quality Engineer and a Certified
Software Development Professional from the IEEE Computer Society.
SOFTWARE VERIFICATION AND VALIDATION
Lessons Learned in Software Testing
Cem Kaner, James Bach, and Brett Pettichord. 2002. New
York: John Wiley and Sons. 286 pages. ISBN 0-471-08112-4.
(CSQE Body of Knowledge areas: Software Verification and
Validation; Software Quality Management; General Knowledge,
Conduct, and Ethics)
Reviewed by Noreen Dertinger
Noreen.Dertinger@cognos.com
Those involved in software testing will find this book to
be useful. Software testers with some experience will get
the most out of it. Those new to the field will gain an overview
of the types of issues they will have to deal with in software
testing, although they may have to do some supplemental reading
to get full value out of some of the more advanced material.
Managers and developers who deal with testers will gain a
good understanding of what constitutes good testing practices
and some insight into what drives software testers.
I like Tim Listers foreword, in which he compares this
book to a bottle of fine port that has aged to excellence
and the lessons contained in this software-testing book to
guidelines that will help connoisseurs of port maximize their
port drinking experience. The three authors, who are highly
experienced and respected testing professionals, have managed
to distill a combined total of more than 50 years of testing
experience into an excellent compendium on what works and
what does not work well in software testing. In 293 lessons,
the authors present their assertions, which are
followed by explanations or examples that provide more insight
into the lesson being presented.
The Role of the Tester contains lessons that
all software testers, no matter their level, should be aware
of. All testers should know early in their career lesson 1:
You are the headlights of the project. In most
software development environments it is the tester who helps
development and management understand how the products
quality is coming along.
Bug Advocacy highlights the importance of reporting
bugs accurately and clearly. A tester who cant
report bugs is like a refrigerator light thats on when
the door is closed. Perhaps the most important
lesson to take away from this chapter is lesson 55: You
are what you write. This lesson emphasizes the fact
that management and development
rely on testers reports for vital information, and that
the quality of the report has a direct impact on a testers
reputation.
Interacting with Programmers goes hand in hand
with Bug Advocacy, because reporting bugs will
naturally bring about a programmer and tester interaction.
This chapter builds on the importance of integrity in the
bug reports and interaction with the programmer. While the
authors acknowledge that testers are often mistreated by programmers,
they point out that the reverse can also happen.
Automating Testing addresses a wide range of
viewpoints with respect to software test automation. Automation
can be beneficial in some environments and harmful in others:
Automation can save time, speed development, extend
your reach, and make your testing more effective. Or it can
distract you and waste resources. This chapter provides
insights into issues encountered in software test automation.
The appendix (the context-driven approach to software testing)
will appeal to those with a taste for context-driven thinking,
many examples of which are provided in Lessons Learned
in Software Testing. Those who have read and would like
to identify themselves with the seven basic principles outlined
in the appendix are invited by the authors to join the context-driven
school of software testing via the related Web site.
The authors do point out that This book is not a collection
of lessons that are always true and it is not
a collection of best practices. Rather it is a compilation
of lessons that they have encountered in their work experiences,
and not every one of them will be applicable to every work
situation. Those looking for a more detailed guide to comprehensive
software testing should refer to some of the standard literature
on software testing. The authors have provided the titles
of such books; in addition, there are references to relevant
reading materials that will expand on many of the topics and
lessons that are presented.
Noreen Dertinger (Noreen.Dertinger@cognos.com)
earned a masters degree from the University of Ottawa,
a certificate in information technology from the University
of Victoria, and completed her CMII certification. She has
14 years experience in the software industry in development,
configuration management, and quality assurance. Dertinger
is a software quality control analyst with Cognos in Ottawa,
Canada, working on PowerPlay EnterPrise Server.
Software Verification and Validation
for Practitioners and Managers
Steve Rakitin. 2001. Boston: Artech House. 256 pages. ISBN
1-58053-296-9.
(CSQE Body of Knowledge area: Software Verification and
Validation)
Reviewed by Rufus Turpin
rufus@carpedieminfo.ca
The book claims to be a concise and practical introduction
to basic principles of software verification and validation.
The claim is well founded. There is much sound and practical
advice provided in an easy-to-read fashion for both the beginner
and experienced practitioners. The material is presented straight
upintroduced, discussed rationally and logically. Questions/issues
and answers are provided along with numerous examples, tables,
and checklists.
The book is divided into four parts and appendices. Each
part focuses on a different aspect of software verification
and validation and is presented so that readers build on knowledge
presented in the preceding sections. Each chapter contains
references and, in many cases, highlights resources on the
Internet.
The introduction puts before the reader the day-to-day issues
of software development and software quality. Part I provides
an introduction to the software quality challenge, software
development methods, software development life cycles, and
software process improvement models, and gets at why it makes
good financial sense to carry out software verification and
validation activities and to justify them.
Overview of Software Verification Activities
helps readers answer the question, Have we satisfied
the conditions in place we started? The author introduces
inspections explaining what they are, the different types
of inspections, how to perform inspections, and what one gets
out of them. Establishing a software metrics program is covered
including quality factors and metrics and metrics related
to verification activities. There is also an introduction
to software configuration management and its major activities.
Overview of Software Validation Activities helps
readers evaluate whether they have built the right product.
In this part the author introduces software testing reviewing
the types and levels of software testing and what is involved
in planning for software testing. Building on the software
metrics program, the author introduces readers to software
metrics related to validation activities. Part III concludes
with software reliability. In this part readers are introduced
to the different reliability models, how to select a model,
and how to apply the selected reliability model in their software
development activities.
Predictable Software Development helps readers
understand how to leverage their implemented software verification
and validation activities to create predictable software development.
In this part the author presents the characteristics of unpredictable
software development and shows how this negatively impacts
ones ability to produce quality software. There is also
a good overview on accurate estimating and scheduling through
discussion on estimation models and estimating methods. Finally,
the author concludes by discussing unpleasant surprises and
how to reduce them by honoring commitments and managing risks.
Each appendix focuses on a specific area or technique and
offers detailed discussion and/or checklists on the topic
presented.
Rufus Turpin (rufus@carpedieminfo.ca)
is an independent management consultant with more than 20
years of experience in the software quality disciplines. Turpin
works with clients in both the public and private sectors
improving the performance of their quality systems. A past
chair of the ASQ Ottawa Valley Section, Turpin is a Senior
member of ASQ and is currently serving as the Software Division
marketing chair and the Technical Programs chair for 13ICSQ.
He is an ASQ Certified Software Quality Engineer and ASQ Certified
Quality Auditor.
Software Testing, A Guide to the TMap
Approach
Martin Pol, Ruud Teunissen, and Erik van Veenendaal. 2002.
Boston: Addison-Wesley. 564 pages. ISBN 0-201-745712-2.
(CSQE Body of Knowledge area: Software Verification and
Validation)
Reviewed by Hillar Puskar
hpuskar@lucent.com
TMap is a structured test methodology developed in the Netherlands
and Belgium by IQUIP Informatica BV. TMap stands for Test
Management Approach and comprises four components: life
cycle, techniques, organization, and infrastructure.
The majority of the book deals with techniques and organization.
The life-cycle and techniques sections together make for a
good introduction and reference on software testing. They
also contain every imaginable checklist, and examples of test
specification techniques. I found a number of items in this
book that I will try to apply to my own project at work. There
is so much material that most readers will skip over parts,
but this is okay because the preface states, This book
does not have to be read from beginning to end. Depending
on the involvement in testing, readers will look at some parts
thoroughly, briefly, or not at all. That is quite true
since the book as a whole can be overwhelming.
One may question what is new about this methodologyisnt
this just existing material reorganized in a different manner?
To some extent the answer is yes, but TMap is
a good and thorough approach. It is also encouraging to see
this book come out as another sign that software testing is
coming into its own. There is some element of self-hype in
the book, but it is mainly limited to the back cover and introductory
materials.
The TMap approach seems to come from a perfect world or leisurely
development environment;I did not see enough of an awareness
about struggle to do what is right vs. what one can do with
given time/budget. The TMap book contains short chapters on
metrics, test control, and improvements to the test process.
The authors believe that TMap can be used in all kinds of
projects, but it is mostly left up to the reader to understand
what applies and what to discard.
Overall this is a well-intentioned book with an abundance
of good information, and it would make a good reference for
most software test organizations. The TMap methodology has
its focus in the right place; early on it states that the
ultimate objective is prevention not the relatively
expensive detection of defects in the final product.
It can be used to help put together a testing program from
scratch, or to help add to an existing testing program as
it grows up.
Hillar Puskar (hpuskar@lucent.com)
is a technical manager at Lucent Technologies and is involved
in systems engineering and testing of tools to design and
optimize wireless networks. He has a bachelors degree
in industrial engineering from Lehigh University, and a masters
degree in computer science from Stevens Institute of Technology.
Puskar has extensive experience in systems engineering and
all aspects of the development life cycle. He is a member
of the ASQ Software Division.
Effective Methods for Software Testing
William E. Perry. 2000. New York: John Wiley and Sons.
812 pages. ISBN 0-471-35418-X.
(CSQE Body of Knowledge area: Software Verification and
Validation)
Reviewed by Carolyn Rodda Lincoln
lincoln_c@titan.com
Effective Methods for Software Testing is the everything
you wanted to know about testing but were afraid to ask
book. It is a thorough and detailed discussion of every aspect
of testing. The author is the founder of the Quality Assurance
Institute and a well-known testing guru. This version is the
second edition of a book published in 1995, which has been
significantly enhanced with new material.
Perrys book has five parts and 26 chapters. Part one
is a self-assessment that can be used to determine the maturity
of an organizations testing process and testers. Part
two addresses the environment for testing: the testing strategy,
methodology, and techniques. Part three is by far the longest;
it describes the 11-step testing process, which includes both
development and maintenance. Part four provides specific guidance
for testing specialized systems, for example, client/server,
Web-based, and data warehouse. Part five is a short discussion
of test documentation.
Effective Methods for Software Testing emphasizes
some important but often-forgotten techniques. One is that
testers are involved throughout the life cycle, not just at
the end. They begin planning the tests at the beginning of
a project, but they also test the project plans,
requirements, and design. Since everything cannot be tested,
the book explains how to determine the objectives and risks
of the project and then prioritize the tests. Some examples
of the test factors derived from risks are correctness, service
levels, access control, reliability, and maintainability.
Perry presents information in a user-friendly
manner. The book is filled with lists, charts, document outlines,
and samples. Steps are broken into tasks and subtasks as appropriate.
Even if readers have never performed that type of testing,
they would have no trouble understanding the instructions
and doing the test.
This book is an excellent resource for anyone involved in
testing. Beginners could easily be overwhelmed, but they would
be impressed with the challenge ahead. An experienced tester
would skim the parts they know and dig into the ones that
they did not. A testing manager or project manager would use
it as a checklist on how to run a successful project. Effective
Methods for Software Testing belongs on the bookshelf
of every tester, testing manager, and project manager.
Carolyn Rodda Lincoln (lincoln_c@titan.com)
is an ASQ Certified Quality Manager and member of the DC Software
Process Improvement Network. She is currently employed as
a process improvement specialist for Titan Systems Corporation
and is implementing software process improvement at the Bureau
of Labor Statistics in Washington, D.C. She holds bachelors
and masters degrees in math and was previously a programmer
and project manager
Return to Top