13th International Conference on Software Quality
Software Division of
Karl Wiegers - Keynote Speaker
Karl Wiegers is Principal Consultant with Process Impact, a software process consulting and education company in Portland, Oregon. His interests include requirements engineering, peer reviews, project management, risk management, and software metrics. Previously, he spent 18 years at Eastman Kodak Company, where he held positions as a photographic research scientist, software developer, software manager, and software process and quality improvement leader. Karl received a B.S. degree in chemistry from Boise State College, and M.S. and Ph.D. degrees in organic chemistry from the University of Illinois. He is a member of the IEEE, IEEE Computer Society, and ACM.
Karl’s most recent book is Software Requirements, 2nd Edition (Microsoft Press, 2003). He also wrote Peer Reviews in Software: A Practical Guide (Addison-Wesley, 2002) and Creating a Software Engineering Culture (Dorset House, 1996), which won a Productivity Award from Software Development magazine, as well as 160 articles on software development, chemistry, and military history. Karl has served on the Editorial Board for IEEE Software magazine and as a contributing editor for Software Development magazine. He is a frequent speaker at software conferences and professional society meetings.
Keynote: The Soft Side of Peer Reviews
Peer reviews are as much a social interaction as a technical practice. Asking your colleagues to point out errors in your work is a learned - not instinctive - behavior. This presentation describes some of the cultural and interpersonal aspects of peer reviews and inspections that must be considered when trying to install a review program in an organization. The concept of "egoless programming” is described as it relates to reviews. Suggestions are provided for how a reviewer should present issues to the author in a nonjudgmental way. Some aspects of management attitudes and behaviors are discussed, including 10 signs of management commitment to peer reviews. A case study illustrates the risks of managers using defect counts from inspections to evaluate individual authors. These risks include:
Several reasons why people do not perform reviews and ways to overcome them are explored, including factors related to lack of knowledge, cultural barriers, and simple resistance to change. Some of the benefits that people performing different project roles can enjoy from a successful peer review program are itemized. The presentation also addresses some aspects of holding reviews that involve participants from different cultures. By understanding the social and cultural aspects of peer reviews, organizations can increase their benefits from this powerful quality and productivity improvement technique.
Requirements form the foundation for all the software work that follows. Arriving at a shared vision of the product to be developed is one of the greatest challenges facing the software project team, and customer involvement is among the most critical factors in software quality. The objective of this tutorial is to give attendees a tool kit of practices, reinforced with practice sessions and group discussions, that they can begin applying to improve the quality of the requirements development and requirements management processes in their organization.
Learn about tested methods that can help any organization improve the way it gathers, documents, and analyzes software requirements. Characteristics of excellent requirements statements and requirements specifications are presented and used to evaluate some sample functional requirements. The seminar emphasizes several practical techniques, including:
The basic concepts of requirements management are described, as are practical methods for managing changes to requirements. These techniques can reduce project risk by improving the quality and control of the software requirements, thereby increasing the likelihood of a successfully completed project.
I. Introduction to Requirements Engineering
II. Practice session: small group discussions on requirements problems in their projects
III. Software Requirements Development
IV. Software Requirements Management
V. Practice session: Small group discussions on how
to apply solutions to the