When you decide to hire a freelance programmer, how do you know if they’ve got the skills they say they do to complete your job effectively, and how do you assess their expertise if you’re not technically minded? This question has plagued employers across numerous industries for years, with many falling short in their assessment of candidates during recruitment processes. However over the past few years, technical and non-technical recruiters alike have now come to commonly utilize programming tests to make a proper assessment of technical employee skills sets.
To the surprise of some, this strategy has also become the standard in the freelance world, with employers regularly requiring some sort of demonstrated ability at the time of recruitment, rather than just showcasing a portfolio of work.
So what programming tests are freelance coders commonly encountering during the final stages of a tender, and what measures should you take to ensure your freelance coder is the right fit for you and your business objectives? In this article we’ll answer these questions and more, and assist you in structuring your freelance recruitment processes for a greater performance.
Criteria for creating a programming test for freelancers
The first thing you need to consider when creating a programming test for freelance candidates is whether or not the size of your job justifies the need for a test. Generally tests of this nature are implemented on medium sized to larger jobs; therefore you may struggle to find a candidate pool that is willing to complete a programming test if the job is only worth $50. However if you are investing a larger sum of money into a project, you have every right to request final candidates prove they can walk the walk, and not just talk the talk.
When deciding whether or not it’s appropriate to request completion of a programming test, you may also want to consider whether the complexity of the job (i.e. technical vs. content changes) requires it, the urgency of your timeline can allow for it, and whether you believe your candidate pool to have the expertise they claim. As a general rule, I like to put the majority of candidates through a programming test regardless of their recommendation, portfolio of work, or my timeline, but bare in mind, this may mean that you have to raise you price to attract candidates that are comfortable with this sort of agreement and level of risk.
How to hire a programmer when you’re not a programmer
Programming tests are a great concept if you can actually program yourself and can write your own test, or are able to accurately mark a templated test you purchased or download online, but generally in recruitment type scenarios (especially in small business), this is not the case. So how do you hire a programmer when you’re not a programmer?
One of the most common methods used by employers these days is to download a programming test in the language they are looking to engage their worker, or use well-known tests such as the FizzBuzz programming test. The FizzBuzz test, which is designed to weed out candidates who do not understand the fundamentals of quality programming; is a good option for those looking to get a general feel for a candidates strengths and weaknesses, however depending on who you talk to, does come criticized for it’s lack role specialization.
Are there any providers who manage programming tests?
In a word, Yes! Often employers do engage outside parties to implement programming tests for their recruitment processes. From senior developers, to juniors, freelance programmers, information architects, back-end specialists, and just about any type of professional developer, there are organizations out there who manage this process effectively for a fee.
One of the more interesting concepts which has arisen of late is coding schools. These online coding schools offer tutelage and exams for programmers, and you can also build your own tests. With employers engaging the services of organizations such as Code Academy to assess candidates, and develop in house tests that can be used to recruit, this is just another one of the more modern methods freelancers are encountering at the request of new clientele.
Creating your own programming tests
I’m a firm believer in creating your own programming tests, specifically tailored to common topic areas you’re likely to hire across, or having an in-house developer work with you on creating a test which is designed to test expertise. However the most important thing to remember with these tests is that they’re not designed to trip up candidates, which can result in a bad first impression of you and your organization, but rather assess their professional expertise.
Programming tests should not be used to reduce a candidate’s wage based on their performance, or belittle an applicant in any way; they should be used to ensure candidates can produce high quality, efficient code. If you’re not too familiar with programming, there’s a major difference in how well-taught programmers work, and how the ‘jacks of all trades’ tend to work. When hiring, you should really only be looking to hire specialist programmers for your technical jobs if you want to limit your issues, keep your long-term costs down, and produce an effective outcome. To do so, I recommend the following:
- Identify the key technologies that will be required to complete your job.
- Develop a simple programming test (preferably online) where the candidate can login, complete the test, and submit their application.
- If you don’t have the skills in-house to do so, consider consulting someone in your network to locate a programmer capable of developing a programming test with you that will test your applicants at the appropriate level.
- Ensure you identify a solid pass mark. This does not mean 50%, ideally it should be at least 75%, as quality programmers should be able to complete most ‘test scenarios’.
- Consider whether you want your tests to be timed, i.e. 30 minute limit. This way it will demonstrate whether your programmer works well under pressure, knows their stuff off the top of the head, or is someone who’s simply ‘Googling’ answers.
Selecting a candidate based on test performance
Often in the IT world you have upwards of 80 – 100 applicants applying for one role, regardless of whether this is a freelance job, or a full time position. The good news is, that usually only a handful of these applicants will be suitable for your role (and are pretty easy to identify), therefore you need to ‘thin the herd’ before you get to the stage of setting programming tests.
When thinning the herd, look out for the following:
- Does the candidate have a solid portfolio of experience?
- Does the candidate have a strong set of clients, and any testimonials of their work?
- Does the programmer have strong communication skills?
- Do you feel the candidate will be easy to work with?
- Is the programmer qualified i.e. Tertiary qualifications?
- Is the programmer working alone, or are the simply a sales rep who will outsource the work to a programming farm?
Once you’ve assessed each candidate against these criteria, try to narrow down your best 5 – 10 candidates. These candidates will be the ones you will want to test. A great way to thin these candidates down even further is to exclude those who are not willing to complete your programming test. The best candidates will be keen to work with you, and show a great deal of enthusiasm to complete your test, so keep this in mind.
Once you’ve administered your test, you’ll likely get a set of results back with maybe three or four front-runners. If their marks are similar, look at their demonstrated attention to detail, as this will be a major indicator as to how efficiently they develop their code. If you’re still unsure, I always like to assess portfolio items not only their coding efficiency, but their overall understanding of business objectives. The best programmers are the ones who work well with a business to produce a top quality solution, not just a working solution. Programming is about delivering business solutions, not the other way around, so keep this in mind, and you’ll be well positioned to hire an excellent programmer.
Bonus tips for hiring freelance coders
For those of you who are a still a little unsure about how to hire a programmer, or how to construct a programming test you can use to quiz potential programmers on their expertise, the following bonus tips are always good to keep in mind:
- Don’t hire a programmer who is consistently negative about your business practices, hire someone who wants to help grow your business and is enthusiastic about your potential.
- If you do create a programming test, have it double-checked by a couple of programmers. Professional developers are notorious for being highly particular and objective about how code should be implemented. In programming, there is often more than one way to do things, so ensure that your test is not leading, ambiguous, or subjective in any way to avoid backlash from your candidates.
- Check your programming test for grammar issues. Programmers spend a lot of time developing content, are often highly proficient in this area, and will notice these issues and assume you’re not professional or serious about a role on offer. Make sure you dot your i’s and cross your t’s where your grammar is concerned.
- Stand firm on your going rate for work, however if someone does perform incredibly well on your test, consider negotiation tactics for these individuals if it comes up, as they will usually be able to deliver a lot of extra business to you through their technical smarts.
- Don’t ever hire a programmer who can’t complete your tests. This will likely end in you having to re-do the work they completed down the track, costing you a lot of money. Quality programmers may be hard to find, nevertheless, only hire those who meet the highest standards of proficiency.
- Don’t ever skimp on programmer wages. If you do find a great programmer, pay them what they’re worth. Programmers can bring enormous amounts of business to you if you give them a chance to be heard, and implement cost effective, smart, business solutions. If you find a top quality programmer who you feel you can work with, and they’re asking a little more than you are used to paying, trial them on a short-term job, pay them what they’re asking for, and more than likely you won’t regret it.