There is a way out of our Software/System Safety Crisis.
Books you need to read to improve the quality of your organization, and increase your bottom line:
A Discipline for Software Engineering by Watts S. Humphrey; ISBN 0-201-54610-8. This book is sometimes referred to as the "Personal Software Process book".
The PSP has been shown to substantially improve the estimating and planning ability of engineers while significantly reducing the defects in their products.
This is the only book I've seen that gives advice to the people like us, doing the real work, that gets hardware out the door. All of the others are written for the management or organizational level.
Leading Geeks: How to Manage and Lead People Who Deliver Technology by Paul Glen.
Publisher: Jossey-Bass; 1st edition (November 1, 2002).
In today's business climate, technology drives productivity and competitiveness and "geeks" drive technology. More than ever Geeks, those people who research, develop, design, build, test, install, and support technology are a critical factor in every organizations success. Leading Geeks challenges the conventional wisdom that leadership methods are universal and gives executives and managers the understanding they need to manage and lead the technologists upon whom they have become so dependent.
Metrics and Models in Software Quality Engineering by Dr. Stephen H. Kan. ISBN 0-201-63339-6.
The Deming Chain Reaction:
These are the possible results obtained when Deming's 14 Points are properly applied in an organization (Crawford, 1992):
Costs decrease because of less rework, fewer mistakes, fewer delays, snags; better use of machine-time and materials.
Capture the market with better quality and lower price.
Stay in business
Provide jobs and more jobs
Formal Methods for Real-Time Computing by Constance Heitmeyer and Dino Mandrioli.
Publisher: John Wiley & Sons Ltd.
This book surveys the state-of-the-art techniques and the state-of-practice approaches in formal methods for real-time computing. There is growing recognition of the crucial role of timing in many computer systems, especially safety-critical systems. Moreover, the benefits of increasing the level of formalism, especially in the early stages of specification and design, has recently been demonstrated in a number of industrial-strength applications. This issue of the John Wiley Series on Software Trends focuses on the application of formal methods in the development of "hard" real-time systems, that is, systems that are required to satisfy critical timing requirements.
The book consists of 10 chapters. The first chapter provides an overview of the leading specification languages, formal models, and analysis techniques for developing real-time systems. Each of the following chapters is written by experts in a particular method. Included are chapters on the Modechart language, the I/O Timed Automaton model, the Duration Calculus, Timed LOTOS, a real-time process algebra called the Algebra of Communicating Shared Resources, Timed Petri Nets, the real-time logic TRIO, automata-theoretic verification, symbolic model checking, and an end-to-end design methodology for guaranteeing requirements of real-time systems. The book uses a tutorial style and gives readers intuition about promising approaches and their practical impact through the use of examples. It is essential reading for students of formal methods and real-time system development, project managers considering the use of formal methods, and researchers interested in learning more about the major new formalisms for specifying and verifying real-time systems.
Since my name is in the wxWidgets book I wanted to give it a plug here.
Cross-Platform GUI Programming with wxWidgets (Bruce Perens Open Source)
"Cross-Platform GUI Programming with wxWidgets is the best way for beginning developers to learn wxWidgets programming in C++, and is a valuable resource for experienced wxWidgets programmers looking to expand their skills. This book is a must-have for programmers thinking of using wxWidgets and those already using it." -- Mitch Kapor, founder of Lotus Software and the Open Source Applications Foundation.
wxWidgets is an easy-to-use, fully open-source C++ API for writing GUI applications that run on Windows, Linux, UNIX, Mac OS X, even Pocket PC...supporting each platform's native look and feel with virtually no additional coding.
Cost savings from writing code once that will compile on Windows, Unix, Mac OS X and other platforms.
Customer satisfaction from delivering stable, fast, attractive applications with a native look and feel.
Increased productivity from the wide variety of classes that wxWidgets provides, both for creating great GUIs and for general application development.
Increased market share due to support for platforms you may not have previously considered, and the ability to internationalize your applications.
Contact me, see below, if you are interested in having me do wxWdigets cross platform development work, or design review work, for your organization.