Development Recommended Books
Feature Set Control
Gibbs, W. Wayt. “Software Chronic Crisis” Scientific American, September 1994, 86-95
This article describes some recent software projects that have been plagued by changing environments, including the Denver airport’s baggage-handling software and the FAA’s air-traffic control workstation software.
Jones, Capers – Assessment and Control of Software Risks. Englewood Cliffs, NJ.: Yourdon Press. Chapter 9 “Creeping User Requirements”
Contains a detailed discussion of the root causes, associated problems, cost impact and methods of prevention and control of feature creep.
McConnell, Steve – Code Complete. Redmond Wash.: Microsoft Press 1993 Sections 3.1 and 3.3
Describes how costs increase when you accept requirements changes late in a project. They also contain an extended argument for trying to get accurate requirements as early in a project as possible. The book discusses integration approaches and provides additional background on the reasons that incremental integration practices such as daily builds are effective.
Gibb, Tom. Principles of Software Engineering Management. Wokingham, England: Addison-Wesley 1988
Among many other issues, it contains thorough discussions of staged delivery and evolutionary delivery.
McConnell, Steve – Code Complete. Redmond, Wash.: Microsoft Press 1993
Chapter 27 describes the evolutionary-delivery practice.
McCarthy, Jim. – Dynamics of Software Development. Redmond, Wash.: Microsoft Press 1995
McCarthy describes the insider’s view of Microsoft’s milestone process. From an evolutionary-delivery viewpoint, his book is particularly interesting because it focuses on Visual C++, a subscription shrink-wrap product that is shipped every four months.
Gordon, V. Scott and James M. Bieman. “Rapid Prototyping: Lessons Learned” IEEE Software, January 1995
This article summarises the lessons learned from 22 published case studies of prototyping and several additional anonymous case studies.
Connell, John and Linda Shafer – Object-Oriented Rapid Prototyping. Englewood Cliffs, NJ.: Yourdon Press 1995
This book overviews the reasons that you would prototype and different prototyping styles. It then represents an intelligent, full discussion of evolutionary, object-oriented prototyping including the topics of design guidelines, tools, prototype refinement and prototyping-compatible lifecycle models.
DeMarco, Tom and Timothy Lister. – Peopleware: Productive projects and Teams. New York: Dorset House 1987DeMarco and Lister present many guidelines both for what to do and what not to do in motivating software teams.
Weinberg, Gerald M. – Becoming a Technical Leader. New York: Dorset House 1982
Part 3 of this book is about obstacles to motivation and leaning how to motivate others.
Cosumano, Michael and Richard Selby – Microsoft Secrets: How the World’s Most Powerful Software Company Creates Technology, Shapes Markets and Manages People. New York: Free Press 1995
Hackman, J. Richard and Greg R. Oldham – Work Redesign, Reading, Mass: Addison-Wesley 1980
This book explores work-itself motivations and proposes a framework for redesigning work to improve motivation, productivity and quality. It contains valuable information and the author’s have earnestly attempted to make the book easy to read, but it’s a heavy-duty psychology book.
Wood, Jane and Denise Silver – Joint Application Development, 2nd Ed. New York: John Wiley and Sons 1995
This book thoroughly explores the many variations of JAD and describes how to become a JAD facilitator. It is well written and leaded with practical suggestions.
Software Measurement Guidebook. Document number SEL-94-002. Greenbelt Md.: Goddard Space Flight Center NASA 1994
This is an excellent introductory book that describes the basics of how and why to establish a measurement program. Among other highlights, it includes a chapter of experienced-based guidelines, lots of sample data from NASA projects and an extensive set of sample data-collection forms. You can obtain a single copy for FREE by writing to Software Engineering Branch, Code 552, Goddard Space Flight Center, Greenbelt, Maryland 20771, USA.
Grady, Robert B. and Deborah L. Caswell – Software Metrics: Establishing a Company-Wide Program, Englewood Cliffs, NJ: Prantice Hall 1987
Grady and Caswell describe their experiences in establishing a software-metrics program at Hewlett-Packard and how to establish one in a company.
Grady, Robert B. – Practical Software metrics for Project Management and Process Improvement, Englewood Cliffs, NJ: PTR Prentice Hall 1992
This book is the follow-on to Grady and Caswell’s earlier book and extends the discussion of lessons learned at Hewlett-Packard. It contains a particularly nice presentation of a set of software business-management graphs, each of which is annotated with the goals and questions that the graph was developed in response to.
Gilb, Tom – Principles of Software Engineering Management. Wokingham, England: Addison-Wesley 1988
Gilb does not use the term “miniature milestones” but much of the approach he describes is similar. His book contains a particularly good discussion of recalibrating in response to the experience you gain from meeting miniature milestones.
Marciniak, John J. and Donald J. Reifer – Software Acquisition Management, New York: John Wiley and Sons 1990
Marciniak and Reifer fully explore the considerations on both the buying and selling sides of outsourced software relationships. The book has a strong engineering bent and it discusses how to put work out for a bid, write contracts and manage outsourced projects from start to completion.
Humphrey, Watts S. – Managing the Software Process. Reading Mass.: Addison-Wesley 1989
Chapter 19 is devoted to contracting for software. It contains insightful guidelines for contracting a relationship with a vendor, developing a set of requirements, tracking progress, monitoring quality and managing vendors at different competency levels.
Karten, Naomi – Managing Expectations. New York: Dorset House 1994
Karten’s book deals with the problem of customers who, as she says, want more, better, faster, sooner, now. She discusses communications fundamentals, such as use of technical jargon, different communications styles and careful listening. The book contains many enjoyable examples, some software-related and some not. The book emphasizes customer-service expectations and unfortunately, contains little discussion of managing schedule expectations specifically.
Whitaker, Ken – Managing Software Maniacs, New York: John Wiley and Sons 1994
Chapter 1 of Whitaker’s book discusses the importance of putting customers at the top of your priority list.
DeMarco, Tom and Timothy Lister – Peopleware: Productivity Projects and Teams, New York: Dorset House 1987
DeMarco and Lister present many guidelines both for what to do and what not to do in motivating software teams.
Weinberg, Gerald M. – Becoming a Technical Leader, New York: Dorset House 1982
Part 3 of this book is about obstacles to motivation and learning how to motivate others.
Boddie, John – Crunch Mode, New York: Yourdon Press 1987
This book is not specifically about project recovery but it is about how to develop under tight schedules. You can apply a lot of Boddie’s approach to a project in recovery mode.
Thomsett, Rob – “Project Pathology: A Study of Project Failures” American Programmer, July 1995 8-16
Thomsett provides an insightful review of the factors that get projects into trouble in the first place and of early warning signs that they are in trouble.
McCarthy, Jim – Dynamics of Software Development. Redmond Wash.: Microsoft Press 1995
This is an entertaining set of lessons that McCarthy learned from his experiences on Microsoft’s Visual C++ and other products. McCarthy describes an enthusiastic but essential grim vision of software development at Microsoft. He presents Microsoft projects as spending nearly all their time doing what this chapter has called “project recovery”. If you recognise that is what McCarthry is writing about and read his book on that level, he has some valuable things to say.
Software Risk Management
Boehm, Barry W. – Software Risk Management, Washington DC: IEEE Computer Society Press 1989
This collection of papers is based on the premise that successful project managers are good risk managers. Boehm has collected a nicely balanced set of papers from both technical and business sources. You might think that a tutorial published in 1989 would seem dated by now but it actually presents a more forward-looking view of software project management than you will find in most other places.
Thomsett, Rob – Third Wave Project Management, Englewood Cliffs NJ: Yourdon Press 1993
The book contains a 43-question risk-assessment questionnaire you can use to obtain a rough idea of whether your project’s risk level is low, medium or high.
Gilb, Tom – Principles of Software Engineering Management, Wokingham, England: Addison-Wesley 1988
This book has one chapter that is specifically devoted to the topic of risk estimation. The software development method that Gilb describes in the rest of the book outs a strong emphasis on risk management.
Reviews and Inspections
Gilb, Tom and Dorothy Graham – Software Inspection, Wokingham, England: Addison-Wesley 1993
This book contains the most thorough discussion of inspections available. It has a practical focus and includes case studies that describe the experiences of several companies who set up inspection programs.
Myers, Glenford J. – The Art of Software Testing, New York: John Wiley & Sons 1979
This is the classic book on software testing and is still one of the best available. The contents are straightforward: the psychology and economics of program testing; test case design; module testing; higher-order testing; debugging; test tools; and other techniques. The book is short (177 pages) and readable. The quiz at the beginning gets you started thinking like a tester and demonstrates just how many ways a price of code can be broken.
Hetzel, Bill – The Complete Guide to Software Testing, 2nd Ed. Wellesley, Mass..: QED Information Systems 1988
A good alternative to Myers’s book, Hetzel’s is a more modern treatment of the same territory. In addition to what Myers covers, Hetzel discusses testing of requirements and designs, regression testing, purchased software and management considerations. At 284 pages, it is relatively short and the author has a knack for lucidly presenting powerful technical concepts.