Updates

Latest Tweet



What's New?

Check out for latest innovation, a computer based training video collection


Like this Page

The Software Development Edge: Essays on Managing Successful Projects Review by W Boudville

climb the logic tree

Purely by coincidence, the author and I have a lot in common. Both PhD physicists. Though he did his work in high energy physics in the early 70s and mine was in solid state in the 80s. In both instances, the job market was oversupplied with physicists. So we ended up in programming jobs.

The book he produced is a compilation of essays he published over the years, on the managing of software projects. Each chapter can be read in isolation without loss of context. Though you might well up reading them all anyhow.

An early chapter, on "Computational Roots", is a good sociological description of the background of many programmers of his generation. Computer science courses were fairly rare at most universities. Thus, many had engineering or physical science degrees. He also points out a qualitative shift in how programming is done. Back then, due to the restrictions of batch processing and the "joys" of punch card cramming, you'd scrutinise your code very carefully before submitting it for compiling and running. Looking for both compile [syntax] errors and logic errors. This level of analysis is rare nowadays. Most of us press 'make' to let the compiler immediately find the compile time bugs. And perhaps the logic analysis is more perfunctory.

He offers this excellent advice that is perhaps not appreciated nowadays. If your program gives strange results, consider in this order the following causes -

1. computational error. A simple numerical miscalculation.
2. Your computations are correct, but your coding of the model is wrong.
3. The model coding is correct, but it is the wrong model.

In other words, you ascend the logic tree, from specific to general. The above may be the best advice in the book. Some readers should recognise the above as also pertaining to how one could solve a physics problem.