Over
years, I’ve paid a lot of attention to how companies recruit computer programmers. During that time, I’ve noticed how managers frequently make hiring decisions that seem to make sense in
short term, but which result in long-term chaos. I’ve seen
kind of havoc that this can wreak, and how devastating it can be to
company’s future.I’d like to say a few words about that today.
The companies that I’ve observed typically pay attention matters such as industry backgrounds, years of experience, and so forth. They want to know what types of projects
applicants have worked on, which compilers and operating systems they’re familiar with, which communication protocols and software packages they’ve used, and so forth. Many also want to know about
employee’s work ethic and personality, but in
end,
hiring decisions frequently boil down to
employee’s work experience and how much training that person would require.
All of those are important, sensible considerations. As I observed these companies though, I noticed that most of them—about 80% or more—paid little or no attention to whether
applicant had a clean, readable programming style. They were deeply concerned about whether
applicant could get
job done, and didn’t seem to care much about whether their software could be easily understood and modified by others, years down
road.
To some extent, this is understandable. After all,
immediate goal of most companies is to develop working products that they can sell. What many forget, however, is that they are supposed to be marathoners, not sprinters. They need to think more in terms of finishing
entire race, and less in terms of achieving short-term victories.
It also betrays a certain naivete about
immediate damage that can result from poor programming style. After all, even
best software is rarely bug-free. A programmer who writes clean, legible software will be able to debug his own work more reliably than someone who writes patchwork code. The latter may arguably provide fixes more quickly (and even that’s debatable!), but
results will be unreliable—and when time is short, that’s a luxury which companies cannot afford.