This book describes an approach to software management based on establishing an infrastructure that serves as the foundation for the project. This infrastructure defines people roles, necessary technology, and interactions between people and technology. This infrastructure automates repetitive tasks, organizes project activities, tracks project status, and seamlessly collects project data to provide measures necessary for decision making. Most importantly, this infrastructure sustains and facilitates the improvement of human-defined processes.
The methodology described in the book, which is called Automated Defect Prevention (ADP) stands out from the current software landscape as a result of two unique features: its comprehensive approach to defect prevention, and its far-reaching emphasis on automation. ADP is a practical and thorough guide to implementing and managing software projects and processes. It is a set of best practices for software management through process improvement, which is achieved by the gradual automation of repetitive tasks supported and sustained by this flexible and adaptable infrastructure, an infrastructure that essentially forms a software production line.
In defining the technology infrastructure, ADP describes necessary features rather than specific tools, thus remaining vendor neutral. Only a basic subset of features that are essential for building an effective infrastructure has been selected. Many existing commercial and non-commercial tools support these, as well as more advanced features. Appendix E contains such a list.
Review By: Daniel J. Luciano 08/29/2008Automated Defect Prevention by Dorota Huizinga and Adam Kolawa is a book that I would recommend to be used in an academic course in software engineering. The book proposes a new software development methodology. I would say that the methodology is not an agile methodology, but it is not a waterfall methodology either. The book is written in a text book style. Each chapter in the book ends with a set of exercises that help the reader to enhance their understanding of the material presented. The end of every chapter also has a glossary, list of acronyms, and references.
The book’s premise is that by putting a development infrastructure in place that stresses people and technology, software defects can be reduced. The book starts with the reasons for automated defect prevention. It then follows with a chapter that outlines the five principles of automated defect prevention. The book then follows with chapters that describe best practices for planning, infrastructure, requirements, planning, design, construction, and testing. The book also contains a case study and an appendix.
The book is perfect for the software engineering student, although software developers--both novice and expert--would find the book useful. I found the book to be helpful in helping to analyze a software development infrastructure in place where I work. I believe that the book has a long shelve life because most of the concepts and ideas should apply to the software development process and the process of preventing defects no matter what type of software development is being done.
I found the first two chapters of the book to be the most useful. Again, if it was used as a textbook for a course in software engineering, then the whole book is beneficial. I did find the reading to dry at times. This is because the book was written primarily as a textbook. I would not expect to find this book in my local book store in the computer section. I have found other books on similar subjects to be written in a more interesting way.
Overall, the book does provide good information about the topic of defect prevention and how to automate that process. I would recommend the book to most novice developers but I would advise more seasoned software developers to skip the book mostly because of its textbook style.
Review By: Arvind Pal Singh 08/29/2008The title of this book made me feel that the book belonged to test management. Yet within a few minutes of reading, it was clear that this book falls under the category of software management best practices. In Automated Defect Prevention, the authors articulate the need of a shift in the mindset towards infrastructure and automation in an evolutionary manner. In doing so, the authors have provided an insight into topics needing attention in the newer generations of software management, which gives an excellent change of perspective to a manager in transition. This shift in thinking is required in our current environment when time to market is fast, and requirements are usually unknown at the beginning of a project.
The authors focus on the term Automated Defect Prevention (ADP) to signify an approach which describes the best practices of infrastructure and automation-based approaches. ADP is valid throughout the project lifecycle, and makes a good reading to anyone contributing to the project. This book can be effectively used by all the team members of the project team regardless of their role. Basic working knowledge of the software development process is required to grasp the concepts put forward in this book, which also helps to appreciate the need of ADP. The authors have clearly delivered the message by plugging ADP into different phases of a software project.
Being a tester, my immediate attention went to "Testing and Defect Prevention" and "Trend Analysis and Deployment." I picked up pieces related to regression testing and reporting that became useful additions to my process. To back the book’s claims, the authors do provide a useful set of appendices, which in itself proved to be good, consolidated information in a single place.
I highly recommend this book to anyone involved in the software project lifecycle, and who has a good knowledge of the SDLC irrespective of the methodology they use. Also, I recommend this book to be a part of your work library. This book has brought good topics into the limelight that need more research. Perhaps the authors may like to explore ADP in more detail by explaining the people aspect. Even my co-worker, who is an old school project manager, thinks highly of this book.