Step 1: Finding Great Developers

First discuss with others in your organization the main attributes you are looking for—whiteboard the "spec," in other words. Be clear about the type of person you want and the skills required to do the job. For example, we at TMS look to hire developers. Not coders, not programmers. Developers, in our vocabulary, don't just write code or simply program someone else's technical design—coders and programmers do that. Developers are able to develop the designs and architectures needed for themselves or other programmers. They never hack code; they think about the code's structure and form first, and then write it down. Developers can test and have broad development skills. Now please don't get fired up if you call yourself a coder or a programmer and disagree with the definitions of these terms. They're simply the definitions we use at TMS. That's all, so please don't be offended!

What Sort of Person Should You Look For?

Generally, if we're looking to recruit great developers, we look for people with a good track record in development. It's up to you to decide whether the developer's experience should be in, say, Visual Basic or in Java (that is, whether it's "the brain" and general programming experience you're seeking or whether it's all of the above) combined with experience in the language you're using. When we're recruiting Visual Basic developers we normally expect them to have extensive knowledge of Visual Basic, although if the person were exceptional in every other area, we'd almost certainly take them on and give them the necessary training. The best developers are generally those with logical, methodical minds. They're also usually thoughtful, precise, and, we hope, not impulsive—the best developers think first and act later. We're after the people who think algorithmically (people that understand the necessity of a good algorithm and have the wherewithal to implement it), which is not to say that they should think only in algorithms. A thorough knowledge of algorithms is useful but can always be replaced by someone who "thinks right" and who knows where to look for an existing algorithm.

We are also after people who are in tune with our culture. For TMS, this means they should be first and foremost a team player. If they use too many "I"s instead of "we"s, we have to consider whether they are more comfortable going solo. We have to feel they will fit in with the rest of the family.

Remember that technical people are a bit different from other staff. Typically they'll want plenty of exposure to the new technologies, such as Visual Basic 6, as well as having some fun while they're at it. Technical people tend to hate bureaucracy, administration, and filling out forms—they can also be harder to manage.

Soft skills (such as interpersonal relations, communication skills, and so forth) are also vital. It's important to be presentable, personable, and coherent.

These are some of the things that we think about. What's important to you? Be clear about what you want.

Qualifications

The qualifications you seek depend on your own personal or company preferences, so, as always, we speak here from our own experiences at TMS. In an ideal world all applicants are vastly experienced and well qualified. Often, obviously, this isn't always the case.

Naturally we look for experienced and capable developers first. If the candidates are well qualified, it's a bonus, but we don't discount people who fail to meet some sort of qualification threshold. However, we consider a degree a plus and we're particularly interested in someone with a relevant degree, preferably in computer science or mathematics.

Having a degree versus not having one If someone has an advanced degree it normally means that they have a proven ability to solve complex problems and absorb information (although we've seen some interesting exceptions). Somebody with a degree naturally carries more credibility than someone who doesn't have a college degree, and a college graduate is generally easier to propose to our clients.

Of course, the best person for the job isn't necessarily the most academically qualified—after all, a degree from the University of Hard Knocks usually means the candidate has pragmatic skills and we all know that true wisdom is the actual application of learned knowledge, not just knowledge per se. That said and human nature being what it is, however, it's often the most academically qualified person who will get the first interview. The bottom line is that having a degree helps, whereas not having one probably hinders, everything else being equal.

MCP certification Microsoft Certified Professionals (MCPs) have a proven level of competence with Microsoft technologies and tools, so certification is usually viewed as a positive attribute. As a services company, we find an MCP certification is a positive sales feature. However, don't rely on it too much. Conduct your own independent skills assessment.

In summary

Ideally we'd all like to hit what we call "the red zone"—well qualified, lots of experience, and good personal skills. (See Figure 17-1.)

Figure 17-1 Nerdvana: the ideal skill set

But what's ideal for your organization is for you to decide. Which of the three qualifications is most important to you? Brainstorm about what you want and then move on.

Defining the Job Description

Now that you know the sort of person you're looking for, you need to document your requirements. This is vital.

The cornerstone to any employment decision begins with job analysis, which is the systematic assembly of all the facts about a job. The purpose is to study the individual elements and duties. All information related to the salary and benefits, working hours and conditions, typical tasks and responsibilities are required for the job analysis. Competition and equal employment opportunity legislation (the myriad laws, guidelines, and court decisions concerning equal employment opportunity make job analysis necessary) has made job analysis a mandatory organizational consideration for most businesses.

Job descriptions are written based on job analysis information. A job description describes a job, not an individual doing the job. The job description is derived from a requirement in an organization and is an essential element in the correct selection and evaluation of employees. Job descriptions are also the basis on which a job advertisement is written.

Every job should have a job description, which can be mailed to any interested parties before the interview. The job description might help you easily filter unsuitable candidates as some will drop out once they've had a chance to see what the job will entail.

Writing style

Job descriptions should be written using brief, clear sentences. The sentence structure should follow the "implied subject-verb-object-explanatory phrase" format. It's generally to your advantage to use action verbs like "programs" and "analyses," for example.

Sample job description

A job description is a written description of the major duties and responsibilities for any job applicant. Here's a sample TMS job description for a developer based on the well-known Hay/MSL format, although we have also included a "person specification" so that everything we want is contained in one document:

Job Description

JOB TITLE: Developer

REPORTING TO: Project Manager

DATE: As Required

PURPOSE: Work with and mentoring the client's own staff on specific projects, and equally for internal company projects. Provide high quality, cost effective technical services within given timeframes and budgetary constraints to ensure optimum customer satisfaction and business driven solutions.

PRIMARY RESPONSIBILITIES

The key areas of responsibility for the employee are as follows:

Ensure that a high quality technical service is provided to both the external client and for internal projects in the specific areas of design, programming, and software testing.

Write technical documentation for external clients and whitepapers suitable for publication on the company Web site or in technical magazines as requested by any of the company's managers, in order to maintain the company's profile within the industry and to promote the company's services.

Contribute to the development of technical training courses and running briefing sessions on technical issues for the clients' staff as required.

Accompany TMS consultants on client visits as required and provide in-depth technical support as necessary in order to maximize all sales opportunities for the company and to ensure the highest quality service for the prospective client.

Contribute to company Technical Days by giving formal presentations or leading more general discussions regarding current projects or case studies and ensuring that the overall objective of "knowledge sharing" with colleagues is achieved.

Ensure that the company's vision to provide the highest quality software development and client services is achieved and maintained at all times.

ORGANIZATION CHART:

PROFILE OF EMPLOYEE

Essential requirements include:

  • Minimum 8 years experience of having worked within the IT industry, preferably within a software services company or consultancy, in a role requiring multiple external client contact and service provision

  • Minimum 5 years hands-on Windows development experience

  • Minimum 4 years hands-on Visual Basic development experience

  • Minimum 4 years hands-on database/SQL programming experience

  • Desire and ability to work relatively unsupervised on external client sites

  • A self-managing, self-motivated individual who can demonstrate a successful history of remote working

  • A quality, focused individual with proven customer interaction skills

Desirable qualifications include

  • Graduate-level degree in computer science or other science subject

  • Appreciation of software engineering disciplines and methodologies

  • Knowledge and experience of traditional or object design, architecture, and implementation

  • Working knowledge of any of the following: SQL Server, Access, and MSOffice suite/VBA

  • Knowledge and experience of client/server systems development

  • Working knowledge of any of the following: Windows NT, Java/J++, C/C++, Active X technology, COM/COM+/DCOM, RDO, ODBC

  • Microsoft Certified Professional (versions 4, 5, or 6)

  • Clean driving record

Salary Research

Research the industry standard remuneration for the position you need to fill and then add 5 to 15 percent if you want to be competitive. Research salaries regularly and make sure your current workforce benefits from this research as well as any new developer. Also, develop your own company salary policy stating where you want to be in terms of the salaries and benefits you offer to your staff. For example, do you want to pay at the median level, the upper quartile, or the top decile for the IT industry or for your geographical area? Decide where you want to be and then compare where your current salaries fall, and then adjust if necessary.

How to Locate the Right People

The two best ways to locate the right people for your organization are the two that pop immediately into the minds of most people: word-of-mouth recommendations and advertising.

Personal recommendations

Better to hire the devil you know (or at least someone you know) than the one you don't. We're always interested in personal recommendations from existing staff members. More often than not, like attracts like, and usually a good developer will recognize someone from the same stock. It's a kind of "it takes one to know one" philosophy. When someone is recommended to you, ask the person providing the recommendation to qualitatively summarize the skills and qualifications of the potential new recruit. Would the "recommender" be willing to manage or work with the person they're recommending? Also, consider paying a finder's fee to your staff—we do and it works well. Even if we receive a personal recommendation, we still put the candidate through our standard assessment procedure. This step is essential.

Advertising

If you decide to advertise, you'll generally use the job description to compose the advertisement. All the essential qualities must be included in the advertisement so that any potential applicant can decide whether the job is worth applying for.

It's essential to advertise in the right places. Make sure that you advertise, in detail, the role/position you're recruiting for. Don't make the advertisement too general, figuring that if you cast the net wide enough, you might catch other people of potential interest to your company. In other words, don't advertise for Windows developers if you're only looking for Visual Basic 6 developers but might also be interested in attracting a C++ developer sometime soon. Advertise for the C++ developer later, when you actually need one, and again, make it clear in that advertisement what you're looking for. By casting the net too wide you will all too often dilute the information deemed necessary by a potential candidate. You'll also make it appear as if you're trawling for résumés.

People should be interested in the position as described in your advertisement, and you should start the filtering process at this stage. For example, if the position requires long hours, or perhaps working away from home, state this up front in the advertisement—anyone who isn't interested won't apply. Those who do shouldn't mind travelling and working long hours. See? You've already started optimizing the process by generating a shortlist!

Places to advertise The primary places to advertise to get the best response are as follows:

  • The Web. We often "e-advertise" on our own Web site (if we have a pressing vacancy) or on other IT employment Web sites. If you have a good profile, and therefore plenty of hits on your own Web site, advertising on your own site makes great sense.

  • The Press. We use the specialist press for advertising key positions. For the more junior positions we mostly rely on word of mouth and on the Web.

  • Agencies. We rarely use agencies. While they perform a very useful role in certain circumstances, we prefer to do our own thing when it comes to recruiting people. No one else knows our business and who we're after as well as we do.


Ltd Mandelbrot Set International Advanced Microsoft Visual Basics 6. 0
Advanced Microsoft Visual Basic (Mps)
ISBN: 1572318937
EAN: 2147483647
Year: 1997
Pages: 168

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net