TechBookReport logo



Keywords: Software development, programming, computer science, software engineering

Title: The Problem With Software

Author: Adam Barr

Publisher: Que

ISBN: 978-0262038515

Media: Book

Verdict: A readable and interesting look at the problems with software as a discipline

 

This is an engaging and thought-provoking look at the problems associated with producing software that works, is on time and does what it's supposed to do. Software isn't the only field of endeavour where we have problems of on-time delivery or of working to spec. Bugs exist in pretty much every product — which is why you should never buy the first release of a new model of car for example. However, in software this seems to be the norm, not the exception. So why is that?

In attempting to answer this Adam Barr takes us on a journey that is part personal reminiscence, part exploration of software development paradigms and part teasing apart of the nature of writing code. It's a roundabout trip, with detours and asides but it works because it's readable, interesting and manages to go into detail without getting lost in it.

The historical angle is interesting for those of us who've been along for the same ride. A lot of us are essentially self-taught — in my case starting with a Basic on a Sinclair ZX81. Later, while studying electrical engineering I moved on to assembler, C, APL, Pascal and so on. We were taught the syntax and some rudimentary concepts, but pretty much we were left to figure out how to write code. I always assumed that people studying computer science learned how to program, but that too turns out to be not entirely true.

Barr's book describes his journey, from Basic to Fortran to Pascal to C#. The programming paradigms change, the concepts are refined but, according to him, there is still no body of 'software engineering' knowledge that is passed on. Civil engineers building a bridge don't start from scratch every time — but pretty much a lot of software projects start with a blank(ish) page.

This stroll through the history of software also gives us insight into how the industry has evolved, in Barr's case including a long stint at Microsoft. Aside from programming languages and language concepts such as object oriented programming, we've also had the design patterns movement, agile development processes, extreme programming and the like. The book has interesting things to say about all of these, but at the end of the day, in his opinion, 'software engineering' is more wish than reality.

For those of who are interested, there are code snippets here to illustrate some of the issues discussed in the text. This isn't just a book of random musings and the detail isn't thrown into the pot just for effect. It's partly what makes this such an easy read for those people who like coding but also want to reflect on the process of writing code. The book has a lot of interesting things to say. For example, it makes the point about the split between academia and industry — and how these days it is industry that drives the development of programming language design.

And is there a solution on the horizon? Is there hope for a future where code is delivered to spec, on time and not riddled with bugs? If there's hope then Barr locates it in the cloud. Software as a service brings new challenges but also hope for frequent enhancements and improvements, the need to maintain service, the removal of insane deadlines for product release dates etc. Am I convinced? Not completely, but the book is highly recommended all the same.


Hit the 'back' key in your browser to return to subject index page

Return to home page

Contents © TechBookReport 2018. Published December 11 2018