What makes software hard?

A couple of years ago I wrote an essay for the IEEE Annals of the History of Computing entitled “Software as History Embodied” in which I addressed the tongue-in-cheek question, first posed by the Princeton historian Michael Mahoney, of “what makes the history of software so hard?” Mahoney himself, of course, was playing on an even earlier question asked by numerous computer programmers, including the illustrious Donald Knuth. In my essay, I focused specifically on the challenges associated with software maintenance, a long-standing and perplexing problem within the software industry (one made all the more complicated by the fact that, in theory at least, software is a technology that should never be broken – at least in the tradition sense of wearing out or breaking down). My answer to Mahoney’s question was that the history of software was so hard because software itself was so complicated. Software systems are generally deeply embedded in a larger social, economic, and organizational context. Unlike hardware, which is almost by definition a tangible “thing” that can readily be isolated, identified, and evaluated, software is inextricably intertwined with the larger socio-technical system of computing that includes machines (computers and their associated peripherals), people (users, designers, and developers), and processes (the corporate payroll system, for example). Software, I argued, is not just an isolated artifact; software is “history, organization, and social relationships made tangible.”

In any case, I was tickled this past week to discover in my archives an early example of one of my “computer people” asking the question “what makes software so hard.” The article is from 1965, and was published in Datamation. The author is Frank L. Lambert, about who I know very little, other than that he was the head of the software group for the Air Force. What I like most about this piece is the way in which Lambert adopts a broad understanding of software. “Software … is the total set of programs” used to extend the capabilities of the computer, and the “totality of [the] system” included “men, equipment, and time.” Like so many of his contemporaries, Lambert saw software as a complex, heterogeneous system. “What made software so hard?,” Lambert asked rhetorically: “Everything.”

2 thoughts on “What makes software hard?”

  1. As his daughter, I am somewhat biased in my view of Frank Lambert. He had an amazing ability to analyze and recommend. I’m glad that I had the pleasure of his company and his guidance.

    Regards,

    Jane Lambert Sterling

  2. I too am Frank Lambert’s daughter (the youngest). It is your loss not to have known him personally as he had wonderful insight into the future of computing, both hardware and software. In the early 1970’s when he was career-counciling me and my boyfriend (now husband), he said (and I paraphrase), “If you choose computer science as a career, you will hold the future in your hands and always have a job. Twenty to thirty years from now, computers will be small enough to fit on your wrist like Dick Tracy’s watch.” I guess it’s fair to say he was a software/hardware visionary (minus the “you will always have a job part”). At that time, my recreational reading was intrigue and mystery; Frank’s recreational reading was oftentimes algebra and/or anything to do with computing. He loved what he did and passed that love and enthusiasm on to us. It’s so very satisfying to know that his legacy lives on!

Leave a Reply

Your email address will not be published. Required fields are marked *