Search
Recommended Products
Related Links


 

 

Informative Articles

Blog Construction
Blogs like all forms of writing are an art form that takes knowledge and practice to do well. Writing…Blogs…Blogs are on-line journals where people express themselves through writing. Writing…Writing is the process where one puts down words...

Does Microsoft Show Hackers How To Attack?
After another security hole recently surfaced in Microsoft's Windows operating system, the software giant released a patch this past Friday to plug the possibly devastating "back door" which allows hackers to potentially seize control of any pc...

Home Office Tip Part 2...Computer Health Hazards.
Home office stress related injuries are escalating. Along with carpal tunnel syndrome, eye strains, neck strains, back related problems. Let's face it, if you are behind the keys more than a few hours a week you will suffer one or more...

Internet Scams 105 -- The Most Vicious Scam of All
Not all e-mail scams are vicious. Some are kind of old-shoe, and a person would feel fond of them, except they are still cheating people out of their life savings. I recently got this classic: “I am George Mudashiru, a close friend and...

Keep Your Computer Running Cool
Keeping your Computer Cool One of the biggest problems facing newer desk top computers and laptops is keeping your computer cool. New chips in both desk tops and laptops run at incredibly high temperatures. If your computer is not ventilated...

 
Google
Software Companies, Don’t Sabotage Your Long-Term Success!


Over the 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 the short term, but which result in long-term chaos. I’ve seen the kind of havoc that this can wreak, and how devastating it can be to the 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 the 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 the employee’s work ethic and personality, but in the end, the hiring decisions frequently boil down to the 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 the applicant had a clean, readable programming style. They were deeply concerned about whether the applicant could get the job done, and didn’t seem to care much about whether their software could be easily understood and modified by others, years down the road.

To some extent, this is understandable. After all, the 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 the entire race, and less in terms of achieving short-term victories.

It also betrays a certain naivete about the immediate damage that can result from poor programming style. After all, even the 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 the results will be unreliable—and when time is short, that’s a luxury which


companies cannot afford.

Employers should also remember that good programming style is not something that’s easily taught. Any competent programmer can learn the mechanics of language syntax and function calls; however, someone who understands little about the artistry of structured programming or proper object orientation is unlikely to master these things on the job. I’ve seen this happen (or rather, fail to happen) time and again. This, despite the abundance of books and journals which discuss this matter at great length.

I also think that companies should pay greater attention to the prospective employee’s technical writing skills; after all, external documentation (e.g. user manuals, design documentation) can be critical to the software’s maintainability. Besides, in my experience, programmers who write well in English are more likely to write software too. And why not? Programming languages are ultimately just that—languages. Someone who can express himself well in English is more likely to communicate clearly and effectively in his source code as well.

For these reasons, I urge any company that’s hiring a programmer to ask incisive questions about an applicant’s coding style. How does he name his variables? How many lines of code should a function occupy? Does he use global variables, and if so, when? What kinds of books has he read on programming style? Ideally, companies should also ask for samples of an applicant’s source code and technical documentation, to verify that these lessons are put into practice. This takes a little extra effort, but it can help a company avoid sacrificing long-term success for the sake of dubious short-term gains.

V. Berba Velasco Jr., Ph.D. is a senior electrical and software engineer at Cellular Technology Ltd (http://www.immunospot.com, http://www.elispot-analyzers.de, http://www.elispot.cn) where he serves with great pride. He has seen how proper attention to software usability, maintainability and elegance can spell the difference between mediocre products and great ones.