Distinguishing skills from experience is key in hiring
by Systo's President Christian Donner
Times have been tough lately for the less fortunate of the software engineering guild. Not only have there been few jobs available, but because of the sheer mass of qualified candidates, it has also been difficult to get past the gatekeepers of hiring companies and make it through the screening process.
If you are a manager in charge of hiring technical staff, you are probably excited about this situation. Despite the availability of a large number of applicants, however, can you be certain that you are hiring the best candidates?
For technology jobs, the initial screening has traditionally been done by finding the candidates with the most experience in a particular field. Depending on the availability of highly specialized skills, the criteria may be narrowed or widened. For instance, when a software engineer with Java skills is needed to write J2EE components, the hiring manager may decide to interview candidates without J2EE skills, if there are few Java programmers available.
While this approach may work reasonably well in most cases, it will fail if a candidate lacks certain other skills that are crucial for the success of a project, but have not been completely identified.
To further explore this risk, let's assume that a manager is in charge of filling a position within a team that is responsible for the development and maintenance of a Web application for a financial services firm. The job description includes the development of a module for the generation of stock performance charts in Java on a UNIX server, using a third-party graphics package.
For the purpose of this example, let's ignore social, organizational, management and other non-technical skills that may be desirable. For the sake of simplicity, let's further assume that offshore development is not being considered.
The job description was posted on a career site and our manager is receiving a large number of résumés, too large to look closely at each candidate. Now she has to make a decision where to set the cutoff-threshold for the phone screening: Will she screen
She will probably apply some or all of the above criteria to find the ideal candidate. By doing that, the manager is neglecting the fact that each of the above skills can be easily acquired by the right person. Most software engineers can learn a new API, use a programming language they know and apply it to new problems, or even learn a new programming language. Many engineers can produce good solutions with these newly learned skills instantaneously, without costly failures. Therefore, the manager should be looking at the real risks.
- Candidates with experience in using the graphics package in question?
- Candidates with experience in generating stock charts?
- Candidates with experience in generating graphical output using Java?
- Candidates with a Java developer certification?
It is important to understand the nature of the application to be developed and the potential risks that can arise from a poor implementation.
To do that, it is important to understand the nature of the application to be developed and the potential risks that can arise from a poor implementation. In this hypothetical example, a number of factors could play a role in this consideration:
Now that the manager has a deeper understanding of the risks, the knowledge of the graphics package and the Java language skills become less important. Instead, she decides to interview candidates with, for example,
- The data for the stock charts resides in a relational database that is being updated continuously, causing potential chart inaccuracies.
- The Web application must be online 24x7, including the stock charts.
- Charts should be pregenerated for various time periods by a batch process rather than generated on-demand.
- The chart generation process should run autonomously.
- New types of charts and new time periods will be added in the future, requiring the solution to be flexible and configurable.
- The site will be multi-lingual, requiring that the charts are generated for different locales and currencies
The realization that implementation skills can be learned relatively quickly - as in weeks - whereas design skills grow slowly with experience - more likely years - leads to the idea of looking behind the superficial requirements found in the job profile. The chances of getting good solutions right away will increase significantly.
- Java knowledge
- 2 or more years experience writing complex Unix shell scripts
- Experience using I18N (Internationalization) and L10N (Localization) concepts in a Web setting
- Experience writing time-sensitive applications using a relational database.
This approach, however, requires the hiring manager to be able to distinguish good design from bad design and to have an understanding of the technology. If either is not available, he or she should seek help.
The alternative could be a bad solution, elegantly coded.