I’ve recently read two books about computing history, and I intend to write about them both. The first is Tracy Kidder’s The Soul of a New Machine. Kidder was invited by Tom West of Data General to document the creation of a new computer–a 32 bit supermini designed to compete with the formidable VAX 11/780 from DEC.
The book covers the era when building a new computer meant building a new computer from the ground up. The idea of building a computer from off-the-shelf components had not yet arrived, companies built everything from scratch, and wrote all of the code for the new system, all the way down to the metal. Even for highly integrated, brand new systems like the iPhone, many more components sourced from third parties were used than companies like Data General, DEC, and IBM used back then. The original iPhone was built using an existing CPU, and an existing operating system. All of the hardware and nearly all of the software for the Data General system was produced specifically for that system. It is likely that no engineers work completely original systems any more, the costs are too high. It’s hard to read about that kind of work and not feel both nostalgic and intimidated.
At the same time, the mechanics of how projects are run feel familiar, especially if you’ve ever worked on a big project that started with an unrealistic deadline. In many ways, the book documents the computer industry at its worst, even as it cements the mythology of heroic engineering feats that seem romantic from a distance but are usually awful in the moment.
Kidder talks about two phenomena that really resonated with me. The first is the idea of the managers getting people to “sign up” – for the project and for specific tasks. The idea is that “signing up” meant showing a willingness to sacrifice whatever was necessary to complete the task, and to work impossibly hard on the project in general. The managers gauged job candidates on their likelihood of signing up, and turned down those they didn’t believe would. Having had a relatively long career in the computer industry, I’ve seen signing up from both sides. On one hand, as an engineer, you crave a project worthy of signing up for. Signing up only happens when you feel like you’re doing work of significance, that you’re experiencing an opportunity that surpasses any you thought you’d ever be offered.
By the same token, as a manager, you want to work on projects that you would be willing to ask people to sign up for, and you want to hire people who you feel like you can motivate to sign up. Managers must also know that intentionally exploiting people’s willingness to overcommit is almost certainly evil. One of the key attributes of a good manager is a commitment to do what’s in the best interests of the members of the team, whether they want you to or not.
Kidder also lays out the nominal and actual rewards of engineering work. The members of the Eagle team (that was the code name for the computer they were building) were ostensibly motivated by the pinball rule – if they won, their reward was getting to play again. The members of the team toiled in anonymity, even within Data General, and weren’t going to get big bonuses no matter how well the project did. In theory, they did what they did in hopes of getting the opportunity to work on even bigger and better projects in the future. In reality, they did it because they were a team, and because they were committed to their craft. This is a set of values deeply understood by anyone who takes pleasure in building things. The building of new things is both the job and the reward. If you do well, you may get to build bigger things. More importantly, though, at the end, you brought forth order from chaos. What else does a person need?
All great books on history both illuminate the past and highlight the universal, and Kidder’s book meets that standard. I found it to be an incredible page turner. I don’t want to spoil the story, so I’ll say no more. As soon as I finished the book, I wanted to get out my computer and start writing some code.
The other book I just finished is Andrew Hodges’ Alan Turing: The Enigma, about which I have so many thoughts that I’m finding them difficult to organize. I’ll write more about it later.
Paul Ford on the software canon
Here’s a question Paul Ford poses, and of course, attempts to answer in The Great Works of Software:
The list he comes up with is very solid. I feel like relational databases should also be represented — but it’s hard to pick one product. Should it be Oracle? It’s the first commercial relational database, and is still going strong. Maybe MySQL? They put relational databases in the hands of the masses.
It’s also a bit of a shame that no Web browsers make the list. Again, the problem is choosing one in particular. Browsers are the closest we’ve ever come to a universal client for online resources. We all know about viewing Web pages, but browsers also radically affected how businesses create software. Browsers ate the client-server paradigm, and then when the power of JavaScript increased, became a platform for writing client-server applications. I don’t know which one you pick — maybe you draw a line from Mosaic to Netscape to Mozilla to Firefox, but the browser changed everything.
It’s an interesting question to think about.