This is Volume 2 of the latest edition of the classic series, Quality Software. Its fundamental purpose is to teach how to understand the dynamics of software development organizations, to plan software projects, and to act effectively to carry out those plans. Many books have described How... show more
This is Volume 2 of the latest edition of the classic series, Quality Software. Its fundamental purpose is to teach how to understand the dynamics of software development organizations, to plan software projects, and to act effectively to carry out those plans. Many books have described How Software Is Built. It's a complex subject, and indeed, that's the first title in this Quality Software Series. But people who use software (and builders, too) want to know Why Software Gets In Trouble. You might wonder why anyone would need an entire book on that subject. Why not just say "people make mistakes"? Why not? Because there are reasons people make mistakes, and make them repeatedly, and fail to discover and correct them. That's what this book is about, and believe me, those reasons (and how to prevent them) do fill an entire book. The reasons are both personal and organizational. If we're ever going to build better quality software, we'll definitely have to study the reasons people make mistakes. For software developers, designers, testers, their mangers, and their customers, that study starts right here. Written from a technical and psychological perspective, describing how to think about what you do. The notation takes almost no effort to learn and use it. The diagrams are simple and easy to understand and used in a consistent manner. The book offers ideas for coping with the very difficult problems that face those who work on projects where they don't have enough time, enough information, enough skill, or enough money to do a perfect job of anything. Given these limitations, managers have to make tradeoff decisions in light of the best understanding of cause and effect they can muster. Reviewers say the book is a hidden treasure, containing within it the best definitions of quality ever published. It's written with a great sense of humor that helps make the lessons and insights you will get from the book easier to take. For example, why is software development so often plagued by crisis? Weinberg helps the reader step back from developing software and examine the dynamics and patterns of software creation. By discussing patterns of quality, patterns of managing and patterns of software faults, the author shows that quality software begins with keen observation and clear thinking about software development. The text is extremely thought-provoking and is spiced with anecdotes drawn from decades of software experience. The book is divided into two sections: "Fault Patterns" and "Pressure Patterns". Each section has a number of chapters that examine different systemic aspects of the specific issues. "Fault Patterns" discusses different types of defects and how they occur. In addition, Weinberg examines what are software faults and how the organization deals with them means to how the people work. "Pressure Patterns" looks into managerial behavior and why managers lose patience and feel helpless.