Written for researchers, professors, practitioners, students, and other computing professionals, this book covers: Basics that Work at Work, People, Process, and Product, Visibility, Configuration Management Process, Planning, Risk Management, Requirements, Design, Testing, Managing a Project Day by Day, Managing Software Maintenance, And more...
Review By: Tony Alabi 05/03/2002The introduction begins with a description of the basic principles that work in a software development environment. Consideration is given to business, people, and process perspectives that work. This is followed by a section that provides a contrast to what does not work, and why not. Three common critical areas of software development are examined in great detail: visibility, planning, and risk management.
The book continues by breaking up the lifecycle of software development into two phases: the early, and the mid-to-late phases. The author gives a lot of advice in regard to efficient planning, visibility, and communication, as key elements to a sound overall software development cycle. In the middle-to-late phase, various testing techniques as well as good configuration management practices that accompany testing are thoroughly discussed.
A complete section is devoted to software maintenance principles and practices. Sound activities are discussed, with comparisons of the pros and cons of each activity. Also software maintenance stages are identified and reviewed, as well as configuration management issues during maintenance.
The book concludes with a cookbook section. This section reviews the essentials, and using two different kinds of project paradigms as examples, provides the mechanics and how-tos for implementing the principles and practices introduced and described in the book. Finally, a comprehensive appendices section at the end of the book is dedicated to software project documentation, configuration management, and software structured analysis and design.
I highly recommend this book for managers as well as some senior software developers and software QA engineers. The content includes principles that have been tried and determined to work, not just theories or hypotheses. The process models that are introduced exemplify some of the soundest software management and engineering principles.
The layout of the book is intuitive and user-friendly. Introducing the elements of effective software management prepares and equips the reader to query the effectiveness of their own organization’s software management and engineering practices. Breaking down the software development cycle into two phases makes it easy to identify the appropriate time to effectively apply certain software-management techniques. Discussing the various testing methodologies provides a good source of tools to use in different software projects of varying importance.
Forms, templates, charts, and graphs are great aids to drive home some of the more abstract points the author discusses. Each chapter concludes with “key thoughts” paragraphs and references. These quick references save the reader the need to flip through the pages endlessly.
Overall, this book can be used by 1) software project managers, as a daily guide in going through the various stages of a software project, without leaving any stone unturned in the process, as well as 2) software engineers and software QA engineers in understanding the status of the software project they are working on, as well as understanding the “whys” and “whats” that the manager is involved in.