Code of Conduct

Dave Thomas, author of The Pragmatic Programmer, says programmers have to understand the entire project they're working on, not just their lines of code.
Peter Calvin

Dave Thomas' star potential is not obvious at first glance.

At 43, the British-born computer programmer smiles easily, keeps his hands deferentially in his pockets, and, when prompted, proffers neither poetry nor song but digestible explanations of arcane technological references. Nevertheless, in this age of the Internet, Thomas, a resident of Flower Mound, is well on his way to becoming a celebrity, or at least a very celebrated author.

Last year, Thomas, along with co-author Andrew Hunt, produced a best-selling book, The Pragmatic Programmer. The 321-page volume offers refined homilies as well as technical tips for the swelling crowd of programmers who produce the codes that make everything from PCs to ATMs click and point effectively.

The book--which, Thomas says, grew out of casually e-mailed musings between himself and his co-author--has become a runaway hit through the network of high-tech Web sites, magazines, and word of mouth. Earlier this year, The Pragmatic Programmer ranked as the ninth-most popular book on More recently, it has dropped to above 3,000 in the rankings, but as the bookseller's press office notes, if you are anywhere above 10,000 on Amazon's list, you're selling a lot of books.

The popularity of their first book has turned Thomas and Hunt, who before toiled in the relative obscurity of corporate information systems departments, into something akin to rock stars among their fellow programmers.

"It's kind of funny how it's happened," says Thomas, who was at a Lewisville bookstore last week to discuss his writings. "You wouldn't believe it. Now we are really in demand. We're getting calls to speak all over the place."

Riding the wave of their first success, the two programmers produced a second text, this one titled Programming Ruby. The book, much more technical than the first, tells programmers how to use Ruby, a computer language popular in Japan (and virtually unheard-of here) that Thomas predicts will overtake Java, the predominant coding language on the Web today, in a few years.

It is the first book, however--in which the duo established their folksy style and Gestalt approach to a techie's daily trials and tribulations--that has made the two so renowned among the code-gnescenti.

In the book, Thomas and Hunt quote from Shakespeare's King Lear ("Striving to be better, often we mar what's well"), Mae West movies ("I believe it's better to be looked over than it is to be overlooked"), and J.B. Bossuet's 18th-century political writings ("The greatest of all weaknesses is the fear of appearing weak"). They also don't take themselves too seriously. The first chapter of The Pragmatic Programmer is titled "The Cat Ate My Source Code."

For those of us who are only marginally informed about coding, sections of Thomas' book present a challenge. Only real programmers, for instance, will want to figure out how the geometric concept of orthogonality applies to their world. Hint: It's something about parts of a program not changing with respect to one another.

It's the more earthy advice, however, that Thomas believes has given rise to his book's unexpected popularity. In the form of a 70-item list at the end, Thomas and Hunt offer tips that can easily be applied to anyone's work life. Tip No. 57 advises programmers that "some things are better done than described. Don't fall into the specification spiral. At some point you need to start coding." No. 32 is one we can all understand: "Crash early. A dead program normally does a lot less damage than a crippled one." The last one is worth remembering as well: "Sign your work. Craftsmen of an earlier age were proud to sign their work. You should be too."

"The reason I think it resonated," Thomas says, "is that there was a gap, a serious gap. There were books that tell you how to organize programming and books that sold you tools. But nobody was telling you how to do programming on a daily basis." He makes an analogy to carpentry: Craftsmen could find plenty of blueprints and plenty of guides to tools, but no one was telling them exactly how to put pieces together to make something.

Thomas, who got his degree from London University and ran his own programming company in England before becoming a father and moving to Flower Mound to be near his wife's parents, has spent the past 20 years troubleshooting on programming projects. He has worked on airline reservations systems at American Express, credit-card and debit-card systems for one of the largest service companies in that industry, and metering programs for electricity users in Canada.

In his own consulting business, he says, he aims to be as broad-minded as he encourages programmers to be in his book. "I don't walk up to a problem and say I've got a hammer," he says.

He believes that programming is a creative and somewhat authorial craft and that the people producing it should be treated accordingly in order to develop the best code.

In the real world, however, he knows that many programmers and their bosses don't regard the work in that way. Instead, he says, programmers are happy to stay in their cubicles working on their small section of the code--completely unaware of the larger picture--and their bosses are happy to keep them in that dark space.

As a result, Thomas contends, the nation produces lines and lines of code that don't work well because the programmers didn't understand the point of what they were doing. "They need to start treating programmers as skilled individuals," he says. "Software development is anything but precise. Once a problem gets to a certain level of complexity, you've got to do it to understand it."

Thomas says the idea for their book started when he and Hunt got tired of trying to explain to clients and prospective clients their philosophical approach to programming. They decided to jot down a few ideas to reduce the number of times they had to repeat themselves. When the two realized how large and developed an undertaking they had begun, Thomas says, they decided on a lark to go to their favorite publisher of technical books, Addison-Wesley Inc. Much to their surprise, the publisher did not just offer kind words for improving their amateur effort but instead asked them who else was bidding on the book and told them to name their advance fee.

The irony now is that Thomas and Hunt, who thought they would be reducing the amount of explaining they had to do for prospective clients, are now speaking before larger and larger groups--most recently in Europe--to programmers hungry for some more kernels of wisdom from the pragmatic programmers.

Sponsor Content