The Technical and Social History of Software Engineering

Author: Capers Jones
Publisher: Addison Wesley
Pages: 452
ISBN: 978-0321903426
Audience: Anyone with an interest in the history of computing and software
Rating: 4
Reviewer: Sue Gee

The title sounds a bit dry, but is this a good read?

 

At first I found this book a bit intimidating. It has two forwards by important sounding people - Walker Royce, Chief Scientist Economist, IBM and Tony Salvaggio, CEO and President, Computer Aid Inc - as well as a Preface  and an About the Author section which set out to establish the credentials of Capers Jones as someone capable of writing the definitive book on the history of social engineering as "one of the worlld's most exciting and important fields."  Even the fact that he was inspired to write it by a Pulitzer Prize-winning book, Paul Starr's "The Social Transformation of American Medicine" served to put me off.

Is it just me or was Capers Jones trying too hard to impress us?

 

Banner

 

Once I managed to get beyond the frontispieces (including the ten page Table of Contents) I finally discovered that this book contains a good deal that is highly readable interspersed with lists and tables that can easily be skipped by the reader.

Where should you start with a history of Social Engineering? Capers Jones made the decision to begin in the 1930's but that is delayed to Chapter 2. His opening chapter is a prelude in which he tells us:

The human need to compute probably originated in prehistory when humans began to accumulate physical possessions.

This chapter looks at computing from its earliest origins when Neanderthals or Cro Magnons made scratches on bone to record the numbers of objects or the passage of days and looks at the evolution of mathematics.

As well as fascinating information gleaned from archeology in Turkey and Northern India the author manages to work in the 2012 elections for the Rhode Island General Assembly. Early in the chapter he poses a set of five questions about humans' requirements for calculations and record keeping through the ages to show how computers and software emerged to help deal with them. This is the first of many bullet point lists, some of which extend over several pages. There are also tables corresponding to each of  five areas: Mathematics, Calculating Devices and Software; Recording Methods and Media; Communication Channels; Information Storage and Access; and Enabling Inventions - covering such diverse things as plastic for computer cases, Von Neumann Architecture through to Flash Disks. Each table provides the give the approximate number of years before 2013 (the year the book was written) for tens to hundreds of items.

There is relatively little discussion of the contents of these tables although the final one in the series is followed by a comment on the patent system with the information that the first known patent was issued in England in 1331 to John Kemp. Shortly afterwards is the first of the book's Note panels which I quickly learned to look out for because of their sometimes quirky content. This one simply explains the derivation of the term patent but my favorite is much later in the book and explains that the Mozilla Firefox logo appears to show the front half of a red fox but the animal is actually a red panda.

 

 

The next nine chapters each cover a decade and the chapter titles indicate the main evolutionary topic covered:

Chapter 2 1930 to 1939: The Foundations of Digital Computing

Chapter 3 1940 to 1949: Computing During World War II and the Postwar Era

Chapter 4 1950 to 1959: Starting the Ascent of Digital Computers and Software

Chapter 5 1960 to 1969: The Rise of Business Computers and Business Software

Chapter 6 1970 to 1979: Computers and Software Begin Creating Wealth

Chapter 7 1980 to 1989: The Rise of Personal Computers and Personal Software

Chapter 8 1990 to 1999: Expansion of the World Wide Web and the Rise of Dot-Coms

Chapter 9 2000 to 2009: The Rise of Social Networks and Economic Crises

Chapter 10 2010 to 2019: Clouds, Crowds, Blogs, Big Data, and Predictive Analytics

How can you possibly get ten years of computer history into a single chapter?

Condensed and selective is the main approach used. You won't necessarily find much about the well-known landmarks. For example three short paragraphs are devoted to the Harvard Mark I in Chapter 2, with a passing reference (and a Note) about Charles Babbage's analytical engine.

There is rather more on the work of Konrad Zuse, especially as it is a topic returned to in the 1940s. However, as the story is structured chronologically, sandwiched between two paragraphs on the technical history of Zuse's relay-based machines there's a paragraph that tells us that in 1935 IBM hired three female employees. This is included as an important point in terms of social history, because it led to Thomas Watson Sr announcing a policy of equal pay and responsibility irrespective of gender.

Alan Turing's paper "On Computable Numbers" and the idea of a Turing Machine gets three paragraph in Chapter 2 and his work at  Bletchley Park and his ACE both get brief mentions in Chapter 3.

There is just one table in Chapter 2 providing the number of worldwide software application for 1930 to 1939. This seems very odd as only the top two rows - Scientific 15 applications 60.00%; Military and Defence 10 applications 40.00%- have entries leaving 10 others listed with 0 and 0.00%. It all makes sense when you encounter the same table in each successive chapter with the numbers  of applications going up exponentially.

Chapter 3 is interesting for taking a global perspective with sections on World War II computers in each of Germany, Japan, Poland, France, Australia, Russia., Great Britain and the United States. A table in the chapter lists seventeen computers developed from 1940 to 1950 with their country and principal designers.

Chapter 4 looks not only at military and defence computers, in particular SAGE, but also the first commercial ones, in particular the LEO and the IBM 701 and 650. It also has a short section on programming languages, mentioning FORTRAN, LISP, COBOL and ALGOL.

The emphasis in Chapter 5 moves to that of computer programming as a job and Capers Jones relates his own story of becoming a programmer. This makes for interesting reading and it concludes with a discussion of how the term "Software Engineer" came to be adopted.

The account of the 1960s also includes a section on the IBM System/360 and the ACM Turing Award, which was established in 1966 - resulting in a table listing recipient up until 2012 and their contributions. Then comes a section on the invention of the credit card before looking at the DEC PDP-1, listing programming languages of the decade and the computer businesses of the era. Two sections I found particularly interesting were on lawsuits that changed the nature of computing and software and the innovations in computing that resulted from the Apollo space program.

From the 1970s on a large proportion of each chapter is devoted to companies formed during the decade but each also has some more general material. For example Chapter 6 looks at Fragmented Software Subcategories and Chapter 8 considers the problems of aging legacy software and the incompatibilities of international date formats.

In Chapter 10 we are looking to the future as well as what has already happened. Topics covered include Big Data, Crowd Intelligence and Wearable Computers. There is a long discussion here of education including the idea of  a virtual reality software university. However there's no mention of the MOOCs that are already delivering some of what is envisaged and companies that were formed in 2013, Udacity and Coursera, are not among those listed.

Chapter 11: Modern Software Problems  presents 21 disasters, some of them leading to loss of life, that could have been prevented or mitigated by adequate software testing. They are in chronological order starting with 1962: Failure of the Mariner 1 Navigation System through to 2012: Automotive Safety Recalls Due to Software.
The chapter starts with a list of defect prevention and removal methods and for each disaster there is a description followed by a discussion of lessons learned and what types of testing could have avoided it.

 

Chapter 12 A Brief History of Cybercrime and Cyberwarfare looks at the history of hacking and gives a chronological list of antivirus products. It gives brief details of some notable cyberattacks indicating how many victims were affected. The bulk of the chapter is devoted to 25 forms of attack and this is followed by a table showing the odds of being attacked in various ways - from 100 for unwanted spam though 16 of personal id theft to 1% of Experience and EMP (electromagnetic pulse). The chapter concludes with ways to raise immunity to cyberattack by encryption, access and authentication controls and EMP protection. 

One of the first things that struck me when I picked this book up was that it had no pictures apart from a photograph of the author - no photos of any of the computers or people mentioned. Its propensity to lists and table was another seeming oddity. However as I continued to read it and grew used to the mix of discursive narrative and comprehensive lists I found it more and more acceptable.

This is a book to be dipped into and as such is a worthy addition to your bookshelf.

 

Banner


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.



Grokking Machine Learning

Author: Luis G. Serrano
Publisher: Manning
Date: December 2021
Pages: 512
ISBN: 978-1617295911
Print: 1617295914
Kindle: B09LK7KBSL
Audience: Python developers interested in machine learning
Rating: 5
Reviewer: Mike James
Another book on machine learning - surely we have enough by now?


More Reviews

Last Updated ( Saturday, 24 May 2014 )