Pragmatic = Success

Craftsmanship requires toolsI’m a Senior Software Developer here at OneUpWeb. When I hired in, one of the first things my Director had me do was read a book titled, The Pragmatic Programmer. Everyone knows a programmer’s job is to “write code.” But this book explains dozens of other functions and principles that make for successful software projects. While most are quite technical, quite a few address aspects of human psychology with applications well beyond writing software.

Because we in our department (and our company) try very hard to implement these principles, we can achieve both success in producing our projects and enjoyment in the process.

Now take a look at these quotes from the book, and forget it’s about programming, because I’d bet you can use these to improve quality and productivity in your job:

No Broken Windows

Don’t leave broken windows (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. (p. 5)

Mistakes happen (in programming a lot). Keep their lifetimes short.

Relentless Automation

The Cobbler’s children have no shoes. Often, people who develop software use the poorest tools to do the job.

But we (programmers) have all the raw materials we need to craft better tools. (p. 236)

Okay, this one is for programmers, but we all need good tools to do our job efficiently.

Ruthless Testing

Most developers hate testing. [We] are different. We are driven to find our bugs now, so we don’t have to endure the shame of others finding our bugs later. (p. 237)

Quality is important. Implement whatever process it takes to assure it.

The last two quotes require no further comment:

Great Expectations

In an abstract sense, an application is successful if it correctly implements its specifications. Unfortunately, this pays only abstract bills.

In reality, the success of a project is measured by how well it meets the expectations of its users. (p. 255)

Communicate

Unless you work in a vacuum, you need to be able to communicate. The more effective that communication, the more influential you become. (p. 21)

Andrew Hunt and David Thomas, The Pragmatic Programmer: From Journeyman to Master, Addison-Wesley, 2000.