Software Engineering Best Practices
In this practical guide, software-quality guru Capers Jones reveals best practices for ensuring software development success by illustrating the engineering methods used by the most successful large software projects at leading companies such as IBM, Microsoft, Sony, and EDS.
Software Engineering Best Practices covers estimating and planning; requirements analysis; change control; quality control; progress and cost tracking; and maintenance and support after delivery. Agile development, extreme programming, joint application design (JAD), six-sigma for software, and other methods are discussed.
Review By: Warren R. Glore
05/23/2011"Software Engineering Best Practices" is a book about advocating the treatment of the software industry as a profession and as an engineering discipline. Each chapter is full of real-life examples of what went wrong and what went right at companies throughout the world. The author, Casper Jones, gives many concrete examples on which the reader may model his or her software design and engineering sections.
Jones uses terms that are not frequently used in the software industry, such as advocating the use of “function points” in measuring the size of a given project. He then goes further and gives many examples on how to handle specific problems in different function point sizes.
Jones is adamant that a one-size-fits-all mentality toward software engineering is not, nor will it ever be, a good approach. Approaches that work for small companies and small projects may not work for larger companies and larger projects. What works great for one company may falter in another company because of a variety of different reasons, some of which are the people involved, the makeup of the teams, leadership types, and the hierarchical structure of the company. He spells out how to make software engineering work when the teams are collocated and how the teams should function when they are distributed to different locations.
Jones dedicates a chapter to helping the software project manager and his or her team to effectively manage the tasks necessary for leading a team through the project lifecycle. He covers things such as performance of business analysis, requirements-gathering criteria, software architecture, software design, and other much-needed corporate information. He also spends a chapter defining and dealing with software quality as well as the best practices for removing defects from the code once they are found.
This is a great book for software engineers, software engineer managers, project managers, quality managers, and anyone who would like a no-nonsense look at techniques that could help a corporation of any size make a better software product.
Review By: Lorne Schachter
05/23/2011If you've been involved in software engineering for any length of time, then you've probably heard of Capers Jones. He is well-known for all his work on the software engineering process, so it's not surprising that he's put together a collection of best practices for software engineering.
What I found most interesting about his book was the breadth of topics covered. Most times when you talk about best practices, you talk about five to ten practices in two or three different areas. Jones covers fifty different subject areas, encompassing hundreds of best practices. There's a lot to absorb here, which just adds to the value of the book as a reference guide. This book should be investigated/read one topic at a time. As you get involved in different aspects of the engineering process, the book is available to help you identify and anticipate the issues you may run into.
As those of us who have been involved in the industry for a long period of time have learned, projects don't ever seem to end completely. Once they've gone into production, they take on a life of their own and need to be maintained and sustained for periods of time long beyond the initial specifications. Knowing that this can occur, it helps to anticipate the longevity at various points during the life cycle, making the appropriate plans and preparation for the next generation of engineers to come in and maintain the project. Jones takes a "big picture" approach to the topic by recognizing that best practices cover the lifetime of a project, which can extend into tens of years.
In addition to the actual engineering issues of design and implementation, he gives a significant amount of coverage to ancillary topics, including personnel issues such as staff management and training and development. This is one of the most useful books I've read in a long time, primarily due to the breadth of topics that it covers.