By Jeff Gainer
(Author's note: This essay appeared in the 5 January 2000 issue of Cutter IT Journal E-Mail Advisor.)
Recently, while shuffling my office library from old bookshelves to new, I came across an almost forgotten book about software development. Published in 1979 by Microsoft Press, Programmers at Work borrows a metaphorical page from the Paris Review series Writers at Work. Reading most of the Paris Review interviews was part of my education as a writer. The interviews demystify the process of creation; writers discuss the genesis of a work of poetry or fiction, why they wanted to be writers in the first place, whether they write with a pencil, typewriter, or pen. Most, I learned, keep regular working hours, writing whether they feel inspired or not. Hemingway usually wrote standing up, balancing his typewriter on top of a bookcase. Gore Vidal reports his workday begins with "...coffee and a bowel movement. Then I am visited by the Muse."
Looking over Programmers at Work, I was again struck by the similarities of the mostly solitary work of creating program code and writing poetry or prose. In Programmers at Work, Charles Simonyi ruminates on whether programming is art, science, or craft. Bill Gates and Jef Raskin discuss the future of software, operating systems, and user interfaces. And a lunch-hour pizza, I learned, inspired Pac-Man.
I recently celebrated my silver anniversary as a writer; conversely, I have been an IT professional for only 15 years. As an undergraduate, I majored in the liberal arts, where, contrary to urban legend, we were not instructed how to say, "You want fries with that?" We learned to write quickly and accurately, and above all, how to think on our feet - or on our typewriters.
Our journalism exams usually consisted of being given raw material (wire-service copy, notes, snippets of film or videotape) from which we were required to produce broadcast-quality copy within a rigid time frame. Near the deadline, the professor, who had obviously learned from the real world of network news, would burst into the room, waving some wire copy and a reel of film, shouting, "News flash! News flash! The Prime Minister of Chumbawumba has just been assassinated! There are tanks in the streets and rumors of a coup..." Broadcast deadlines were, the lesson reminded us, inviolable and absolutely non-negotiable. Daunted, we rearranged our newscasts for the updated Big Story. Often, after we had incorporated the Chumbawumba coup into our lineup and seconds before the deadline, he would return, shouting "Bulletin from the National Weather Service -- chance of a blizzard tonight!" With our final minutes, we had to decide how and when to incorporate the possible blizzard, whether to save it for the weather forecast or lead with the possibility of a disastrous snowstorm..
Never have I heard a software instructor (except me) assign a task to a group of students, and near the deadline for the exercise, return to the room screeching "Stop what you're doing. We just got a new requirement from marketing!" It doesnít happen in the classroom very often, but it happens all too often in the real world.
Another disturbing dissimilarity I have noted is that writers learn from carefully studying the works of others and, later, having oneís own work dissected. The exhaustive line-by-line examinations of my student essays and the works of Byron, Joyce, and Melville were never repeated to the same degree in the software world. Some organizations encourage or enforce walkthroughs and reviews, but all too few do so as a matter of course.
But the most important lesson I learned as a writer was that one becomes a writer by writing: writing words and more words and still more, then throwing it all away and writing again. Balzac, I believe, said that one does not become a writer until he has written and discarded a million words. I served this apprenticeship early on, writing my first million words before age 16, and only later being paid to write. Conversely, some of the first lines of code I wrote 15 years ago are still in production.
Programmers at Work was intended to be an ongoing series, as Writers at Work is today. Sadly, only one volume was published. Apparently, the software industry did not share Microsoft Pressís enthusiasm for analysis and unhurried reflection. Instead, we write millions of lines of throwaway code and, without reflection, place it into production.
# # #
(c)1999 Cutter Information Corp. All rights reserved. This article has been reprinted with the permission of the publisher, Cutter Information Corp., provider information resources for IT professionals worldwide.
This article originally appeared in the Cutter IT E-Mail Advisor, January 5, 2000, a supplement to Cutter IT Journal. www.cutter.com/itjournal//