Software Companies, Don’t Sabotage Your Long-Term Success!
by V Berba Velasco JR., PH.D.
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.
About the Author:
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.
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More Online Business Help Articles
More By Developer Shed
developerWorks - FREE Tools! |
This Fall, IBM Rational talks to you directly through a special teleconference series giving you access to the best minds in IBM Rational - product experts and market thought leaders who will answer your questions during these pre-scheduled telephone conference calls. Register today! FREE! Go There Now!
|
|
|
|
As organizations integrate software into every aspect of business, they are constantly pressured to deliver faster, better, and cheaper results. Unfortunately, a “dis-integrated” software delivery approach reduces returns while increasing costs. This IBM Rational White Paper shows how Integrated Requirements Management aligns organizations around maximizing value and keeping pace with change. FREE! Go There Now!
|
|
|
|
As businesses grow increasingly dependent upon Web applications, these complex entities grow more difficult to secure. Most companies equip their Web sites with firewalls, Secure Sockets Layer (SSL), and network and host security, but the majority of attacks are on applications themselves – and these technologies cannot prevent them. This paper explains what you can do to help protect your organization, and it discusses an approach for improving your organization’s Web application security. FREE! Go There Now!
|
|
|
|
Learn how to do more with your reusable assets with the free Rational Asset Manager eKit. The eKit includes demos on how Rational Asset Manager tracks and audits your assets in order to utilize them for reuse. Plus you’ll find white papers and a Webcast that discuss the challenges of a Service Oriented Architecture and how Rational Asset Manager can provide quick and effective solutions. FREE! Go There Now!
|
|
|
|
Learn from the best! Find out how developers use Rational ClearCase to be more flexible, innovative and deliver higher quality code in the Rational ClearCase Power Users eKit. This complimentary eKit provides a collection of materials, like articles, whitepapers, and demos that can help you become a power user of Rational ClearCase. FREE! Go There Now!
|
|
|
|
Visit IBM developerWorks to try the IBM SOA Sandbox for people. The SOA Sandbox for people provides a trial environment with the necessary tooling and components required to enable consistent human and process interaction and collaboration, showing how you can improve user experience and business productivity. FREE! Go There Now!
|
|
|
|
XML has become a common way of storing business data as flat files and many data server vendors including IBM have provided ways to store this data within relational database systems. Increasingly collections of XML files are accessed like databases using an xQuery and other XML standard mechanisms. Businesses find the need to combine the traditional tabular structured data with XML formatted data. In this webcast, you’ll learn about IBM’s WebSphere Federation Server technology, which provides users with the ability to integrate these two data formats. FREE! Go There Now!
|
|
|
|
Portfolio Management is about effectively managing portfolio value by aligning portfolio investments with business goals. This complimentary e-kit provides a collection of materials that can help you understand how IBM Rational enables and automates best practices for improved governance and clear visibility into portfolio and project performance across the entire IT project lifecycle. FREE! Go There Now!
|
|
|
|
Rational Modeling Extension for Microsoft .NET enhances usability for code generation supporting a more intelligent refactoring. The latest enhancements enable organizations with Java and .NET systems and software development maintain architectural integrity across heterogeneous platforms. FREE! Go There Now!
|
|
|
|
The unprecedented scope of a service-oriented architecture (SOA) initiative brings to the forefront a number of management and governance issues that were sidestepped in the past. The key to a successful SOA implementation is managing and governing activities throughout the entire SOA delivery lifecycle by ensuring that services conform to the needs of all of the business’s stakeholders. Learn how service lifecycle management allows the business to ensure that the process by which services are defined, created, tested, deployed, optimized and retired is manageable, repeatable and auditable. FREE! Go There Now!
|
|
|
|
All FREE IBM® developerWorks Tools! |