ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Software Assessments, Benchmarks, and Best practices
Capers Jones
0 201 48542 7
Ian Bolland
writing solid code
Appeared in:
In their classic software management bookPeopleware, DeMarco&Lister discuss the Hawthorne effect. Roughly speaking, this states that the novelty of trying out new working practices can improve productivity, regardless of whether the new practices have any intrinsic merit. They observe that while there are many studies that report productivity improvements immediately after new methods are introduced, there are very few which analyse ten-year-old 'improvements' to see if they are still worthwhile. They take the view (with a certain amount of cynicism) that the Hawthorne effect accounts for most of the reported productivity gains.

Capers Jones is one of the pioneers of software productivity measurement. He originally worked at IBM and ITT and then founded Software Productivity Research, which specialises in performing software process assessments. This book is the latest in a series that summarises the results of these assessments and it performs a valuable service in identifying practices that have stood the test of time.

The author recognises that many practices are not universally applicable, and so has split the book into an introduction and then separate sections for each of the following types of software:

  • MIS
  • outsourced software development
  • systems software
  • commercial packages
  • military systems
  • end-user software.
Each section discusses technical practices (e.g. design, coding, testing), and personnel practices (e.g. hiring, training, organisation). It identifies some practices as universally applicable, some as only necessary for large projects and some as only suitable for small ones.

The focus of the book is on the software process and so its usefulness will depend on how much control you have over the process. There is little in it for the individual programmer, rather more for the team or project leader, but it is really aimed at the upper levels of IT management.

My main reservation about the book is that, in my opinion, its definition of a best practice errs on the conservative side. To qualify as a best practice, it is necessary for it to have been beneficial in all, or almost all, of the projects on which it was used. This definition excludes high-risk, high-gain, or even lowish-risk, high-gain practices. However, there is much room for improvement in the productivity of the average IT organisation and it may well make sense to start by concentrating on those practices with the best chance of success. For this reason I think that this book certainly deserves at least a qualified recommendation.