Reliable Source: Lessons from a Life in Software Engineering

Author: James Bonang
Date: January 2022
Pages: 608
Kindle: B09QCBVJ9V
Audience: General interest
Rating: 5
Reviewer: Kay Ewbank

This book combines a fun read with interesting insights into how to write reliable programs.

James Bonang is a software engineer and has drawn on his long career developing software at for avionics systems, satellite communications terminals, medical devices and mission planning systems for examples and practical advice on how to write reliable software.

 

Banner

The book is very readable, right from the word go when Bonang compares code that you need to work on to an ancient coin where we no longer recognize the meaning behind the symbols.

The first part of the book looks at what software engineering is all about, with examinations of some techniques and tools including the Pareto principle, Brook's Law, and Fagan inspections. As with later parts, Bonang uses case studies drawn from his experience to highlight the points he's making.

The next part is all about writing as a skill, not necessarily something you might think of as being key for a software engineer, but Bonang's point is that documenting your code is as important as making it work. I found this part of the book interesting (a lot of it about how author Jerry Pournelle approaches the task of writing), but I didn't think it was particularly useful in terms of the task of writing good documentation.

Part Three works on another 'side' element of creating software, that of making presentations, and teaching other people what you're doing. The need to tell senior people in an organization how things are going can be intimidating, and Bonang has plenty of experience to pass on. This section also covers how to create estimates and analyses that you can use in your presentations. 
 

By Part Four, we're on to what I'd say is the heart of the book - software reliability. There's a good description of defensive programming, and some interesting descriptions of things that can go wrong and how to find the problems using techniques such as root cause analysis. Bonang also discusses large-scale high-reliability systems.

Debugging is next on the agenda, specifically how to find and fix memory and synchronization errors. Bonang has some fun anecdotes before moving on to assessing a number of tools you might use.

Floating point numbers get a whole section to themselves - a reflection of the type of scientific and technical areas Bonang has worked in. The examples and anecdotes in this section illustrate far too clearly how tricky it can be to deal with data that is 'real'.

By Part six, Bonang has moved on to the difficulties caused when you're unsure of how good your information is. This section is followed by a look at remote working and the effects of the Covid pandemic on software engineering.

Overall, this is a book that is enjoyable to read, with fascinating insights into what the author has encountered in his career. If you read it, you'll be entertained and will undoubtedly pick up some useful techniques and tips. Recommended.
 
 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Learn dbatools in a Month of Lunches

Author: Chrissy LeMaire et al
Publisher: Manning
Pages: 400
ISBN: 978-1617296703
Print: 1617296708
Kindle: B0B39PCHL8
Audience: SQL Server DBAs
Rating: 5
Reviewer: Ian Stirk 

This book aims to make it easier to manage your SQL Server estate, how does it fare? 



Beginning Programming All-in-One For Dummies

Author: Wallace Wang
Publisher: For Dummies
Pages: 800
ISBN: 978-1119884408
Print: 1119884403
Kindle: B0B1BLY87B
Audience: Novice programmers
Rating: 3
Reviewer: Kay Ewbank

This is a collection of seven shorter books introducing key aspects of programming, but it fails through trying to cover too [ ... ]


More Reviews

 

Last Updated ( Wednesday, 06 April 2022 )