Tech Recruitment Certification by IT recruitment process that works Proven strategies, industry benchmarks and expert intel to supercharge your tech hiring Vol. 1 Master the essential skills of IT Recruitment and get certified IT recruitment process that works We are on a mission to provide Tech Recruiters with the know-how, skills and tools necessary to hire the best candidates on the market. We aim to support you with transforming the way your company recruits programmers, encourage cooperation between HR and IT departments to streamline the recruitment process and let you skyrocket your IT recruitment KPIs. 1 IT recruitment process that works Tech Recruitment Certification Course by Devskiller This ebook is a part of the Devskiller Tech Recruitment Certification Course. It will prepare you to get certified and earn a badge proving your tech recruitment skills and expertise. This certification course is based on two original resources by Devskiller: 1 . IT recruitment process that works. Proven strategies, industry benchmarks and expert intel to supercharge your tech hiring, 2 . Source software developers like a PRO. Industry insights, expert advice and hard data to jumpstart your IT sourcing. Certification questions asked during the final examination will verify the knowledge contained within these resources. To make it easier for you to absorb the knowledge, each chapter is followed by a series of questions allowing you to assess your current sourcing efforts. This module is called Self-Assessment. 2 IT recruitment process that works The benefits of becoming Tech Recruitment certified Thanks to the Tech Recruitment Certification, you will get to: • Fast-track your career – invest in yourself and your career by staying up-to-date on the latest IT recruitment practices, • Grow your business – learn how to hire the right programmers for optimal results, • Prove your worth – being certified means showing your expertise in the field of IT recruitment. What’s in the course? Devskiller Tech Recruitment Certification Course covers the fundamentals of technical recruitment. We provide you with up-to-date information about developer landscape, findings of industry reports and intel on the IT recruitment process along with its stages. We also present you with tried and true tricks and effective tools designed to boost your HR metrics. 3 4 IT recruitment process that works Table of Contents Mission 1 Tech Recruitment Certification Course by Devskiller 2 The benefits of becoming IT recruitment certified 3 Introduction 6 Chapter 1: Chapter 2: Chapter 3: Chapter 4: Chapter 5: Before you start 7 Self-Assessment 11 How to design a fully functional hiring process in IT 12 Recruitment + marketing = awesomeness squared 13 The 5 steps to successful hiring 14 How to optimize 16 Self-Assessment 18 Screening & Interview 19 How to optimize screening and interview 21 Screening programming skills 23 How to optimize skill screening 26 What makes a good programmer apart from technical skills? 28 How to verify these qualities during interview 33 How to get started with behavioral questions 34 Biggest mistakes you’re making when screening in tech 37 How to use first impression effectively in screening 39 Motivation 3.0 40 Tools for screening technical talent 42 Self-Assessment 49 Offer/Hire 50 How to optimize 51 The biggest mistakes you’re making when offering a job and hiring 53 Self-Assessment 54 Quality of Hire 55 How to optimize for Quality of Hire 58 Self-Assessment 60 5 IT recruitment process that works Chapter 6: Chapter 7: Chapter 8: Chapter 9: Time to Hire 61 How to optimize for Time to Hire 63 Self-Assessment 64 Cost per Hire 65 How to optimize for Cost per Hire 67 Self-Assessment 69 The cost of recruiting a developer 70 Cost-per-hire: what it’s really about 71 Basic costs of each stage of recruitment process 73 Self-Assessment 75 Hiring more women in tech 76 Women in tech: benefits 78 Do developers want gender diversity? 79 Female developers in numbers 80 How to optimize for diversity 83 Self-Assessment 87 Chapter 10: HR and IT department cooperation – how to make it work The HR perspective 89 The IT perspective 90 Where does the fault lie? 91 How to optimize 91 Self-Assessment 92 Chapter 11: A glossary of IT terms for non-coders Conclusion 88 93 General Terms 94 Culture 94 Roles 95 Programming languages and technologies 96 Databases 97 User Interface 98 Testing 99 Development tools and processes 99 Architecture 101 Infrastructure 102 104 6 IT recruitment process that works Introduction According to CareerBuilder research, “66% of companies make a bad hiring decision each year.” That’s right: 66 out of 100 companies looking for people to join them make a mistake somewhere along the recruitment process. As Les McKeown, CEO of Predictable Success argues in a remarkable post “How to Hire Great People – Every Time”, “the success of your business is in the hands of your people. They take hundreds – probably thousands – of individual actions on your behalf every day, and if the sum total of all those actions is a net positive, you win. If the overall result is a net negative, you lose.“ In other words, bad hiring affects your organizational outcomes, but to what extent? Hiring bad programmers has actually been named one of the main mistakes that kill startups by Paul Graham. The future of the company lies in your hands. In this ebook, you’ll learn how to make good tech hiring decisions through optimizing your entire tech recruitment process. What does the ideal IT recruitment process look like? According to research by Neeraj Kumari from Manav Rachna International University, ideal recruitment efforts should “provide information so that unqualified applicants can self select themselves out of job candidacy; this is, a good recruiting program should attract the qualified and not attract the unqualified. This dual objective will minimize the cost of processing unqualified candidates.” Here’s how to make this happen. IT recruitment process that works Chapter 1: Before you start 7 IT recruitment process that works Hiring in tech is a tall task, but having a structure you can rely and fall back on makes things a lot easier for tech recruiters. Let’s begin with what you need to know before you get out there and start hiring. 1. Understand the job market It may be a bitter pill to swallow, but nowadays there are at least 4-5 opportunities available for every programmer. Outstanding programmers know their value and if your position doesn’t sound interesting (and profitable), they won’t take your offer into consideration. You’re not the only one making a choice here. John Sullivan’s research reveals that 10% of candidates are hired in 10 days. Great programmers will not wait for you – you need to act quickly to get the best talent. Just remember, extended candidate search does not necessarily equate to finding a more capable programmer. In fact, it’s quite the opposite: the best candidates are quite often long gone and you’re left with people whose skills may not be satisfactory. Keep that in mind throughout the whole recruitment process and be ready to act. 2. Be aware of employee turnover Employee turnover is a huge problem for most companies and long-time employment is almost unreal. According to the 2015 Recruiter Nation Survey, average employee tenure is below 6 years, 30% of people change their job in 1-3 years and 29% in 4-6 years. Quarsh research shows even more alarming numbers – 20% of new hires leave in 12 months! Even with low turnover you need to be prepared for high recruitment costs. 3. Understand the true cost of recruiting a developer Given the talent scarcity in tech, hiring a new programmer comes with a cost. As a general rule, the better the programmer, the more expensive the process gets. According to “writer and Talk of the Town editor at The New Yorker” Lizzie Widdicombe, the best ones are like superstars with their own agents. The cost of recruiting a developer is covered in Chapter 8. 8 IT recruitment process that works 4. Define and understand who you need to hire and what you can offer You need to understand who you are looking for, what kind of programming skills this person should have and what their job is about. If you don’t code and you can’t understand their responsibilities and tasks, it can be tricky. The best thing you can do is reach out to your colleagues from the IT department to tell you more about what kind of employee they are looking for. They will be able to tell you which language(s) and skills you should be looking for and might give you some hints on how to verify them. Although as a recruiter you might not be familiar with details of all programming skills, you need to understand everything that is stated in your job description. Getting to know at least the very basic IT vocabulary is something that you should definitely do (psst, head on to Chapter 11 to find a list of most frequently used IT terms). Matt Linderman wrote that in 37signals they have a policy that states: “never hire anyone to do a job until you’ve tried to do it yourself first.” Of course it is impossible to learn (and master) every language or skill but even if you try to learn a bit about programming, it helps you understand the specifics of a programmer’s job. This in turn allows you to screen candidates more efficiently. You also need to understand who you are looking for in order to prepare the right job description. Rethink what you can offer. Paul Graham once said, “great hackers think of it as something they do for fun, and which they’re delighted to find people will pay them for.” It’s your job to make it interesting and clear. Take the extra time to rethink your conditions and your proposal. Make your offer clear, succinct and exciting. Tell them what you expect and what you can provide them with. 5. Plan your recruitment process Once you know who you are looking for it’s time to think over the whole process and get prepared for each stage. Even if it’s not the first time you are recruiting a programmer, there is always room for improvement. Think about the following stages and answer these questions in detail: 9 IT recruitment process that works a) Sourcing • Where do software developers spend time in the online and offline world? • What are the specifics of these places? Can you afford to use their premium versions for recruiters, like Stack Overflow Talent? • What sourcing methods are you going to use? • How are you going to approach these people (internal messages, phone, email)? • What can you offer? What’s so special about your organization? • How can you distance yourself from the negative reputation tech recruiters typically get in this initial stage? b) Screening • How are you going to evaluate whether the candidate might be the employee you are looking for? • What screening methods are you going to use? c) Interviews • How are you going to evaluate company fit? • How are you going to verify programming skills? d) Offer • How do you make the decision to hire or not? • Is there usually consensus? Do you need consensus to make the decision? • How is the offer made? • How quickly can you make the offer? e) Hire • What needs to be done in order for the selected person to start working? 10 IT recruitment process that works 6. Your attitude makes a difference Developers and recruiters have the same goal. Coders look for jobs which are cut out for them, preferably ones that are challenging and provide learning opportunities. Recruiters aim to fill open positions with qualified people who can code well, do a good job and fit company culture. Sadly, despite having common goals, they find it difficult to work together. There’s a way to do that: don’t be a robot. Hire “people, not units of labor” and things are going to work out really well for you. The first step is to look at your hiring process. Self-Assessment 1. What do developers find interesting about your company? 2. What is your employee turnover? How many of the people hired across the company in the last 12 months left? Do you know why they left? 3. What was the cost of hiring for the last three developers you’ve recruited? 4. How familiar are you with tech jargon? 5. Which of the stages in the recruitment process need your attention most? 6. To what extent do you personalize your hiring efforts? Is communication personalized at every stage of the process? 11 IT recruitment process that works Chapter 2: How to design a fully functional hiring process in IT 12 IT recruitment process that works Les McKeown of Predictable Success rightly believes that regardless of company size and industry you need to treat the “hiring process with the same degree of fierce professionalism as you would the development of a strategic plan or the design of a new product or service.” Unfortunately, hiring in tech still relies heavily on gut feeling and curve-ball questions. Luckily, there are means to steer away from them. You can only make your hiring work if you design a fully functional hiring process. This way, when things go wrong you can fall back on your structure and find out why it happened. The aim is to look at each of the steps and analyze where you have room for improvement. What’s more, make sure to look at the HR metrics (these will be covered in detail in Chapters 5 to 7), you simply can’t optimize the process if you don’t keep an eye on them. You need to know e.g. what your Time to Hire is before you try to improve it to know if you’re actually changing it for better or worse. Here’s how to get started. Recruitment + marketing = awesomeness squared In order to hire great people, your recruitment process has to be scientific. You need to: 1. Establish a template so you can A/B test for optimal results, 2. Build a structure you can fall back on when things don’t work out. The idea is that when (or if) you do mis-hire or fail to hire, you can look at the process and trace your steps back to the place where things went wrong. Your aim should be to design a process you can easily modify, replicate and draw conclusions from to hire great people every time you’re recruiting. Just like marketers use conversion rate optimization to improve every stage of the marketing funnel, you should be trying to optimize every stage of the recruitment funnel for Quality of Hire, Time to Hire and Cost per Hire. 13 IT recruitment process that works The 5 steps to successful hiring Here are the five steps you need to take to hire successfully in tech: Source: Devskiller But it’s not only about these steps. It’s also about nurturing potential candidates throughout the entire hiring process. Bear in mind that each of these steps should be cleared before the applicant proceeds to the next one. 1. SOURCING According to HRZone, “Sourcing is (…) a sub-set of recruitment, which is proactively searching for the most talented candidates for a particular role.” The aim of sourcing is to identify, assess and engage candidates through the use of recruiting techniques. Because the war for tech talent is in full swing, sourcing software developers is now more difficult than ever. Jobvite reports that 65% of recruiters claim talent shortage is the biggest challenge in hiring. Despite the fact that sourcing is becoming increasingly challenging, HR professionals are all using identical recruitment techniques. This means that everybody is circling around the same talent pool, identifying and reaching out only to top of the pile candidates who are sick of recruiter spam. However, it doesn’t have to be this way – there are tools and techniques you can use to get off the beaten track. We’ve released an ebook devoted only to this particular stage so you can master the art of tech sourcing. 14 IT recruitment process that works 2. SCREENING (aka “select or reject”) While screening, recruiters review resumes and cover letters, conduct video or phone interviews, and identify top candidates. They also ask candidates to take skill screening tests which allow them to differentiate applicants from do and don’t without the involvement of personal bias. In other words, pre-employment tests let you assess the eligibility of your candidates against your job criteria. While it’s important to understand that skill screening cannot be seen as an alternative to interviewing a candidate, testing their knowledge of technical minutia early stage allows you to decide if you want to get to know them better. That said, pre-employment tests should be brief and resemble actual work to be done if hired. The “first day at work” experience is much needed because it shows both sides what can be expected. 3. INTERVIEWS In most cases, companies invite all of briefly pre-selected candidates to an interview, where a technical person representing the organization verifies their skills one by one. This is a huge waste of time and resources – as stated before, skill screening by means of dedicated software should take place early on to optimize the whole process for speed and efficiency. 4. OFFER You’ve found the right person to join your developer team and now it’s time to make them an offer. After interviews and reference checks are cleared, the successful candidate is usually presented with a verbal offer (typically by phone). It’s normally followed with a formal offer which according to Alison Doyle “confirms the details of the offer of employment including 15 IT recruitment process that works some or all of the following: job description, salary, benefits, paid time off, work schedule, reporting structure, etc.” Written offers help avoid misunderstandings regarding terms and conditions of employment. 5. HIRE This step is pretty straightforward (yet super rewarding!). You need to make sure all the documentation necessary to complete the hire is in order, including permits, medical check documentation, etc. As a matter of fact, it is advised that all checks are completed for the potential hire before they accept the offer. Should you fail these requirements, you may need to start over which means a higher Cost per Hire and extra time to fill the vacancy. Remember that every recruitment process should be closed which means you need to notify all applicants who didn’t get selected. + NURTURING (throughout the entire process) Nurturing your leads should start early on, preferably during pre-apply stage in order to increase your chances of finding the right candidate to fill the position. Post-apply stage is equally important because you need to “sell” your company to the developer. For more information on how to create a complete nurturing strategy in recruitment, read this concise yet informative post by Elyse Mayer. How to optimize Treat every single applicant like a potential customer, According to Mayer, “rather than going dark, remember to close the loop with every applicant who reaches out by acknowledging each contact, resume submission or interview appearance.” Someone might not be a fit now, but they may be in a couple of years – make a good impression and do all it takes to make it last. Build a strong employer brand, According to LinkedIn data, companies with a strong employer brand get a head start. LinkedIn uses their internal metric called Talent Brand Index (TBI) which indicates talent brand strength of every company in the network. 16 17 IT recruitment process that works According to Alyssa Sittig, a strong TBI means: • A 31% higher InMail acceptance rate, • A 43% decrease in Cost per Hire, • A 20% higher rate of hire (faster growth, also due to the ability to attract top talent), Source: LinkedIn Talent Blog • 2.5 x more applicants per job post on LinkedIn. Source: LinkedIn Talent Blog Get feedback from freshly hired employees, According to Glassdoor, you should utilize the onboarding period to get feedback on your recruitment process. You should also remember to talk to your recently hired developers and give them basic feedback on how they are doing. This can be a learning experience for you, as Glassdoor suggests you should “continue soliciting feedback from new hires at 30-, 60- and 90-day intervals to gauge how confident they are that they made the right choice to join your company.” This decreases staff turnover costs which according to Leigh Branham reach up to 200% of one’s annual compensation. Stay human at every stage of the hiring process. Remember that the recruitment process is just like the sales funnel, so as you lose people along the way, your chances of hiring successful candidates are getting dimmer and dimmer. IT recruitment process that works Self-Assessment 1. Are all of the stages mentioned above (including nurturing) present in your recruitment strategy? 2. What’s the weakest link in the entire process? 3. Who is involved in the process? How many people? What departments do they represent? 4. Are your IT professionals involved in the recruitment process? If so, does it create any problems or bottlenecks? 5. Do you collect feedback from new hires? If you do, at what intervals? 6. What are the HR KPIs you focus on when you work? Which of the metrics tend to get neglected? What can you do to improve them? 18 IT recruitment process that works Chapter 3: Screening & Interview 19 IT recruitment process that works According to research by Stack Overflow, developers feel that the interview is the most annoying aspect of the job search (17.45%). Source: Stack Overflow Interestingly, Jobvite research suggests that interviews (47%) are the most important factor in forming an opinion of a prospective job. Source: Jobvite Developers are fed up with bad screening and interview processes and they put the blame on the prospective employer and their tech recruitment team. As developer, founder, investor, and philanthropist Yegor Bugayenko wrote in his post “Why I Don’t Talk to Google Recruiters”, the hiring “machine is designed to process hundreds of candidates a month. In order to fish and 20 IT recruitment process that works attract them, there is an army of monkeys recruiters sending warm emails to people like me. They have to screen candidates somehow, and they are too lazy to make this process effective and creative. They just send them through random programmers who are supposed to ask as complex questions as possible.” Painful as these words are, you know Bugayenko has a point. Screening and interview are an essential part of the hiring process because they can attract or deter candidates from you. Results of Future Workplace & CareerArc study via workplacetrends.com show that almost 60% of job seekers report poor candidate experience. As these numbers indicate, there’s still much room for improvement. How to optimize screening and interview Define your must-have skills and qualities, Career coach & Forbes contributor Lisa Quast argues that “clearly defining the job and position requirements (education, experience, knowledge, skills, behaviors, and attitudes) necessary for someone to be successful will actually help make the interview process easier. You then have a roadmap to follow for evaluating each candidate against the requirements to determine who will be the best fit.” Have a standardized interview scenario, It’s generally recommended to use a standardized interview scenario to reduce the influence of personal bias. You might like someone but it’s only fair you treat them the way you treat others and let their performance shine. Ditch magic bullet questions, Don’t ask people what their spirit animal is. Make sure you use the little time you have to find out whether this particular person is right for this particular job. Answers to outlandish questions are not indicative of future performance, so it’s high time you said goodbye to them for good. 21 IT recruitment process that works Ask about their interests, In “14 things to look for when you want to hire a programmer” we covered a set of features which the ideal programmer should have. Ask them what blogs they follow, if they attend meetups and learn new things. As Peter Bell, Head Learning Instructor at the Flatiron School argues, the fact that someone only programs in one language and is never venturing out of it to try something new may indicate they don’t have the qualities you need. Watch this Google for Entrepreneurs and General Assembly class led by Peter Bell for more insights on hiring developers. Get to know the candidate better, Make sure to ask your candidates about: • Their background – their answers will not only help you get an understanding of what and how they gained their knowledge, but they will definitely let you get to know them a bit and allow you to test their communication skills, • Time commitments – can they fully commit to your company? Or are you looking for someone part-time? • Working preferences – what working hours do they prefer? When are they the most efficient? Do they prefer working in an office or at home? • Leadership skills – how would they manage a team of programmers? Do they see themselves as project managers, developers or maybe – conveniently for you – both? If you are looking for a programmer to replace someone else you can ask the candidates about issues their predecessors have met in the past. As Shahzil Amin wrote: “their answers should be similar to the solutions you used, or better. If they can’t give a concise answer, that’s usually a good indicator that they are not the right person for the job.” Ask about their portfolio, A portfolio is a must for most programmers. If they don’t have one, ask them for examples of their work. What projects are they most proud of? Do they contribute to open source? Their answers will reveal some aspects you are interested in. Matt Linderman wrote: 22 IT recruitment process that works “though you may not be a coder, you’ll be able to tell if there’s some code there. And the fact that somebody is contributing something is a good start.” JohnPaul Bennett adds: “They will often program all day at work and contribute to the open source at night, for free! This makes open source programmers passionate about their craft. Also, keep in mind that someone who loves what they do tends to be more reliable and trustworthy.” Be friendly & approachable. A study by Mattersight reveals that a staggering 80% of employees “say they would take one job over another based purely on personal connections formed during the interview.” Be professional, but don’t forget to be human. A lot of people seem to believe these two are polar opposites, which they’re clearly not. Screening programming skills Screening programming skills is a crucial part of the recruitment process so you need to design a bona fide system of verifying skills. As Isaac Lyman argues, “a developer at her best is a Swiss Army Knife for software — someone whose creative, insightful and rational thought process makes her a valuable part of any discussion in the company.” How do you know if someone’s skill set and mindset can make a valuable contribution to the company? Knowledge of technical minutia is an important part of the equation but not the only one – so are problem solving, abstract thinking, creativity and a willingness to learn. How do you screen skills effectively? You might be tempted to ask your candidate to invert a binary tree on a whiteboard (nope), look at your code and find bugs (no, no, no) or throw random programming questions at them and hope you understand their answers (no, thank you, that’ll never work). Now, let’s focus on the much dreaded whiteboard interview. As Adrianne Jeffries reports, whiteboard coding sparks a lot of controversy among programmers. See what world leading techies have to say about whiteboard interviews. 23 IT recruitment process that works • David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp (he actually calls highly technical interviews “whiteboard algorithm hazing”), • Tim Dierks, Made of the ashes of supernovae. Security @Google, • Ivan Morgillo, Author of RxJava Essentials, Learning Embedded Android N Programming and Grokking ReactiveX, speaker, Android Engineer at @Clue. 24 IT recruitment process that works Sadly, the biggest problem of the technical interview is that it doesn’t resemble work to be done if hired. In many companies, candidates are asked to write code on paper or a whiteboard. In fact, the technical interview is by far the biggest problem of tech hiring: Sahat Yalkabov’s Medium post kind of says it all: Source: Medium Is there a better indicator of future performance than rote memorization? You bet there is. Research from Frank L. Schmidt (University of Iowa) and John E. Hunter (Michigan State University) “The Validity and Utility of Selection Methods in Personnel Psychology: Practical and Theoretical Implications of 85 Years of Research Findings” shows that work sample quality is the best indicator of performance if hired. How to get a viable work sample from the person interviewed? Well, there’s only one tool you really need to test coding skills and that’s a computer. Being able to recall and write bug-free code on a whiteboard doesn’t mean the person will do well. Remember that the closer you get to the actual work to be done, the more likely you are to hire a great dev. You can create a first day at work experience for the candidate using dedicated skill screening software. Observing a candidate doing his/her thing, coding away the way that feels natural to them and solving problems tells you a lot more about them than artificial trivia or whiteboard tests. For optimal results, you should test programming languages, frameworks and libraries, preferably in a manner which resembles real IT projects. Not only does it yield reliable results, it doesn’t make people frustrated. Win-win, right? 25 IT recruitment process that works How to optimize skill screening Test skills early in the process, Avoid interviewing people who don’t meet the requirements of the position to speed things up. One of the biggest gripes for recruiters is spending time on the wrong candidates. Skill screening is especially important in the context of recruiting developers – your aim should be to improve the Quality of Hire and Time to Hire. Screening at early stage allows you to do exactly that. How can you verify if someone can code? Test them. Apparently there are many people who think they can code when, in fact, they can’t. To screen such candidates, you can conduct a simple online test – “the goal is not to prove that the candidate is some kind of coding genius, but that they know what the heck programming is. Yes, it’s sad and kind of depressing that this is even necessary, but if you don’t perform this sanity check, trust me – you’ll be sorry” points out Jeff Atwood. You can also implement a paid audition project where your candidates will deal with real life tasks. Find a flexible tool, Use a platform which allows you to use ready-made programming tests or create your own from scratch (like our very own Devskiller) so that it fits your needs. Ready-made tests created by experts help you kick off testing programming skills quickly and make it a part of the pre-screening process in an easy way. Bear in mind that creating your own programming tests is especially valuable if your IT department is heavily involved in the recruitment process and wants to verify whether a candidate will be able to deal with specific programming problems that they are hired for. Test programming languages, frameworks and libraries, The real value of a programmer is not only mastering one programming language, but also knowing certain frameworks and libraries inside out. Thus, they are able to solve programming problems quicker and are able to find a better solution. 26 IT recruitment process that works Source: Devskiller This is extremely useful for tech recruiters who can’t code. Asking random or vague questions like “Are you familiar with XYZ?” can’t provide you with clear answers you should use to support your decision. Say no to ABC tests, ABC tests itself are just not enough to assess if somebody can resolve programming problems or write good quality code. Multiple choice questions combined with algorithmic tasks may be sufficient to use if you are recruiting for an entry position but are simply not acceptable in any other case. If you want to screen programming skills with a test, pick up one that also contains programming or SQL tasks or code review challenges to see the candidate’s programming skills in action. Make sure your test resembles work to be done if hired for the position. Test actual knowledge. Inverting a binary tree on a blackboard doesn’t tell you if the person is going to do well at work. Their knowledge of technical minutia combined with a positive interview experience is far more likely to do so. Allow the candidate to use their favorite IDE and all other resources while verifying their programming skills, e.g. Google, GitHub, Stack Overflow, just like they would do at work to resolve problems. 27 IT recruitment process that works What makes a good programmer apart from technical skills? What are the qualities of a great software developer? What qualities make great software developers… really great? Below you will find a list of features that you should take into consideration when recruiting a programmer and some tips on how to verify them. Learning skills If you have to choose just one skill great programmers have, it is definitely the ability to learn. In his article “What Skills Employers Want in a Software Developer: My Conversations with Companies Who Hire Programmers”, Matt Weisfeld mentions the words he heard as a young programmer looking for a job: “ ‘We don’t hire people for what they know, but what they can learn’. These words have always resonated with me. From that point on, my career strategy as a programmer has always been to look forward instead of simply focusing on a specific, current technology. As someone else told me more recently, ‘As a programmer you don’t have a single 30-year career, you have 30 one-year careers.’ ” Programming is constantly changing, so a person who doesn’t want to learn is going to lose out. It is important if your new programmer is going to be better at the job you’re offering and how fast he or she can learn new things. Top programmers always follow the latest trends, they look for new solutions and learning opportunities. They are the masters of self-learning. These programmers are relatively easy to find – ask your candidates how they learned a specific skill. Do they read/follow any programming-related websites, magazines, books? What do they do to be up-to-date? Their answers will show you their willingness to learn. Learning doesn’t refer only to programming – good programmers have to be quick learners also outside of programming, for example, to understand the environment where their software will be implemented. Ask them whether they mastered any skills (cooking, singing, drawing, skateboarding or anything at all). If so, they are more likely to master something else. What about their degree, does it matter? In his article “This is why you never end up hiring good developers”, Laurie Voss writes: “engineers write code and ship software; academics prove theories and write proofs of concept. Somebody smart might be able to do both, but it’s by no means a given, or even very strongly correlated.” 28 IT recruitment process that works Curiosity “Curiosity is, in great and generous minds, the first passion and the last” said Samuel Johnson and that is also true for programmers (and their great and generous minds). Let’s look for a more contemporary reference which develops Johnson’s point of view: Dan Pupius says that “curiosity is important throughout the life of an engineer” because it pushes you to learn new languages, experiment and look for new solutions, which is exactly what you want in an engineer. It also drives you to investigate the architectural choices of others, as well as question assumptions. Pupius actually claims that a lot of qualities usually associated with great engineering “stem from a rich sense of curiosity.” Another great techie, John Allspaw, Chief Technology Officer at Etsy makes a good point in his post “On being a senior engineer”. He says that top notch developers are inquisitive and they tend to ask themselves and their peers the following questions while they work: • “What could I be missing?”, • “How will this not work?”, • “Will you please shoot as many holes as possible into my thinking on this?”, • “Even if it’s technically sound, is it understandable enough for the rest of the organization to operate, troubleshoot, and extend it?”. Although at first glance it may seem that these questions are asked by a serial pessimist, that’s not actually the case. They are asked by an inquisitive individual with a passion to write elegant and self-consistent systems. Passion & enjoyment According to John Krystynak, “genuine commitment to continuous learning” is one of the essential qualities of a good developer. As Krystynak rightly argues, “you have to love the fundamental practice of going from not knowing to knowing, every single day” otherwise you won’t be good at it. This holds especially true in the world of IT. While it’s useful to have your way of doing things, it’s essential you venture out of what you know and find new (perhaps faster) ways of getting things done. One of the ways to do that is by noticing patterns and drawing conclusions quickly. 29 IT recruitment process that works There are great many ways to develop when you’re a developer (pun intended), including: • Attending industry events, such as conferences and hackathons (which Thomas So of AppLovin calls “job readiness training)”, • Finding a mentor, • Working on a side project, • Asking for peer feedback. With no passion, there is no motivation to search for new solutions. Passion can help get through difficult cases. Are your candidates excited when you talk? Do they seem to enjoy programming? What do they sound like when they talk about their previous work? Ask for their opinion – if they have a strong opinion and they can talk a lot about something – they are passionate about it. Working without passion and enjoyment will make your new staff constantly unsatisfied. Communication skills Programmers who don’t want to or can’t communicate with other team members don’t perform effectively in the long run. Check if your candidates can convey their ideas both accurately and effectively. You can apply the pitching method often used in the world of start-ups. Can your candidates sell themselves in a short presentation on their skills or field of expertise? Do they explain things in a way layman would understand? It will tell you much more about a candidate than a regular interview. In his Quora answer to this thread, Damien Filiatrault, Founder of Scalable Path states that “good communication skills directly correlate with good development skills.” Here’s why: • You need to know what questions to ask when you don’t understand or need to double-check, • It’s possible for you to figure things out based on communication with colleagues without having to rely on written specifications, • Concepts are typically understood and communicated quickly in a team of successful developers, • It’s possible for great programmers to communicate cogently with both technical and non-technical staff. 30 IT recruitment process that works Awareness Phil Haack says that best developers know when to code and when not to. He argues that in some cases reinventing the wheel puts unnecessary strain on the project because you can use existing libraries to save time. Sounds logical, but doing everything from scratch is still one of the biggest time thieves. Awareness also manifests itself through risk tolerance threshold. This is crucial because often you need to refactor live systems, which is where things can go terribly wrong. Being able to realistically assess the risk without the ego getting in the way is a hallmark of an exceptional programmer. A positive attitude A positive attitude is one of the key qualities of a great software developer. Programmers solve problems day in and day out, but that doesn’t mean they should dwell on them. A “getting sh*t done” attitude is much needed, partially because tasks and tickets tend to pile up. It’s important to decide when it’s time to push a good enough solution out the door and move on to the next thing on the list. The caveat here would be to not flood your developers with more tasks than they can handle and keep things realistic. In this Quora thread, Filiatrault actually puts “positive attitude” on the top of his list of essential qualities possessed by good developers. He says you can test the waters and ask a few seemingly simple “small talk” type questions to see if the responses given focus on the positives or negatives. These questions include: • “Do you consider yourself lucky? (cocky vs. humble) • How was your commute to the interview? (complainer vs. no worries)” Adaptability In a changing environment such as programming, not being able to adapt or handle change is a major no-no for a good programmer. A candidate who complains over changing requirements will not be a good team player. The IT world is changing rapidly and developers need to stay adaptable. For that reason, it’s a safe bet to hire people who are always on the lookout for new tools and ways of doing things, follow industry news and simply care about the craft. 31 IT recruitment process that works Clear thinking skills Programming is connected to logic, so a programmer’s strong, clear thinking skills are of key importance. You can check this by performing a logic questions test or you can leave blanks in what you’re saying to see if the candidate will figure out what you’re talking about. Ability to plan Good programmers have the ability to plan their actions after analysing a new assignment. Asking candidates to explain their approach to a new task is a tried and true way of checking this ability. Respect for deadlines Some programmers cringe at the very mention of the word “deadline”. Being on time should be a priority for your programmers. Do they meet their deadlines? Ask your candidate to describe a situation when they were faced with a deadline and how they dealt with it. Top reading speed and comprehension skills Typing code is, in fact, just a fraction of a programmer’s work. They spend the vast majority of their time reading, so slow readers won’t be very efficient. It can get worse if your programmer misreads or doesn’t understand what a spec says. You don’t want to waste your company time, do you? Judging one’s own knowledge Nobody knows everything, so the ability to accurately judge one’s own knowledge is an asset. Are your candidates trying to hide their gaps in knowledge? They may try to do so in other situations as well. Socratesian “I know that I know nothing” may not be sufficient, so you should also look for a strong desire to figure things out. The ability to handle failure There are no programmers who haven’t failed at some point, so the ability to handle failure will tell you a lot about your candidate. Ask them about their failure and how they eventually 32 IT recruitment process that works solved the problem. Your candidates claim they don’t fail? You’ve either found a genius or a person with a really huge ego. Teamwork mentality If candidates speak badly of their former managers and their previous work experiences, they are likely to think too highly of themselves. They may ignore orders, do their own thing and complain about the stupidity of orders (or about “this ignorant person who obviously doesn’t understand programming”). Even if they disagree with somebody, good programmers are able to understand the reasons for a particular decision. It’s worth looking into instituting a “No Assholes Policy”: “There is no level of brilliance and productivity that can compensate for poisoning the morale of your team, and once a team culture is broken it is very hard to fix. Hiring these people, even to get you through a crunch, is not worth what it costs. And if you hire one by mistake, fire them fast, and without hesitation.” Just ask yourself a really easy question: would your team enjoy working with this person? Do YOU want to work with them (it doesn’t mean being friends)? Laziness Yes, laziness. In the article entitled “15 Characteristics of a Good Programmer”, John Rampton writes about three good qualities of good programmers enumerated by Larry Wall, i.e. laziness, impatience and hubris. A lazy person can come up with perfect time-saving solutions. But it can also have some drawbacks, so it may be better not to rely on laziness as the dominant feature. Keep in mind that hiring the wrong person is more expensive and wastes more time than waiting for the right one. How to verify these qualities during interview Recruiters usually have only up to 1 hour to get to know your candidate during the interview. That’s not much. Assessing soft skills, next to verifying programming skills, proves to be crucial as these skills can influence delivering results to a great extent. How to assess them the right way? 33 IT recruitment process that works One of good ways to do it is to use behavioral interviews. They are often employed by recruiters to evaluate candidate’s past experiences and behaviors in order to determine their potential. Behavioral based questions are said to reveal in-depth information about the way the candidate thinks and feels and what type of experience they have from previous jobs. It is believed that past performance can be a good indicator of future behavior. As Katharine Hansen states, “behavioral interviewing is said to be 55 percent predictive of future on-the-job behavior, while traditional interviewing is only 10 percent predictive.” How to get started with behavioral questions As a recruiter, first you need to identify desired skills and behaviors and then structure openended questions and statements to elicit detailed responses accordingly. You should also prepare a baseline profile of desired behaviors which are considered necessary to perform the job successfully. This will let you evaluate the candidate against an ideal profile and see how they fit. How to structure behavioral questions? The way questions are formulated is crucial. If you ask a question in an ambiguous way, you will not be able to draw valuable conclusions. Behavioral based interview questions generally start with any one of the following phrases: • Tell me about a time when you… • Describe a situation when you… • Give me an example of a time you... • Think about an instance in which you… • Tell me how you approached a situation where… By asking such questions you should be able to obtain a description of a situation, task, action and result. Remember to treat these questions as a starting point for a conversation. In the words of Rachel Ferrigno, Content Marketing Manager at Stack Overflow, “You should never assume something in an interview – we all know what assuming does.” As Karl Sakas points out in Rachel Ferrigno’s post “4 Behavioral Question Mistakes to Avoid When Interviewing Developers”: “Be sure to ask follow-up questions, too—otherwise, you’re wasting an opportunity to dig into a candidate’s thought process.” So ask follow-up questions as they will let you get to know more details and evaluate the consistency of answers. 34 IT recruitment process that works Below you will find sample behavior questions to evaluate the most common attributes during a non-technical interview. Ability to adapt 1. Describe a situation in which you met a major obstacle in order to complete a project. How did you deal with it? What steps did you take? 2. Tell me about a time you had to work on several projects at once. How did you handle this? 3. Describe a situation in which you have experienced significant project change that you weren’t expecting. What was it? How did that impact you, and how did you adapt to this change? How did you remain productive through the project? 4. Describe a situation in which you had to adjust to changes over which you had no control. How did you do this? Communication skills 1. I’d be interested in hearing about a miscommunication you had with your supervisor. How did you solve it? What was the reason for that? How did you deal with that situation? 2. Tell me about an instance when you had to communicate a really bad piece of news to your supervisor or team members. How did you handle it? What was the outcome? 3. Give an example of a time when you didn’t agree with another programmer. Did you stand up for something that you believed was right? 4. Tell me about a time when you had to present a complex programming problem to a non-technical person unfamiliar with IT jargon. How did you ensure that the person understood you? 5. Describe a situation in which you felt you had not communicated well enough. What did you do? How did you handle it? 6. Tell me about a situation that you had to speak up and be assertive in order to get a point across that was important for you. 35 IT recruitment process that works Problem solving skills 1. Tell me about a situation when you made a mistake at work. What happened exactly and how did you deal with it? What steps did you take to improve the situation? 2. What is the biggest problem you have faced across projects so far and how did you solve it? What made the problem difficult to resolve? What was the result? Would you do anything differently now? 3. Give me an example of a time when you noticed a small problem before it turned into a major one. Did you take the initiative to correct it? What kind of preventive measures did you undertake? 4. Walk me through a difficult/complex problem/project you encountered. How did you decide what to do first? What information did you need? What obstacles did you face? Which ones were you able to overcome? Did you have to ask for help? Teamwork 1. Tell me about a time when you worked with someone who was not completing his or her share of the work. How did you handle the situation? Did you discuss your concerns with your co-worker? With your manager? If so, how did your co-worker respond to your concern? What was your manager’s response? 2. Describe a situation where you had to work in a team that didn’t get on very well. What happened? What did you do and what role did you take? How did the situation evolve? 3. Describe a team experience you found disappointing. What would you have done to prevent this? 4. Give me an example of working cooperatively as a team member to accomplish an important goal. What was the objective? To what extent did you interact with other project members? 5. Tell me about the most difficult situation you have had when leading a team. What happened and how did you handle it? Were you successful? What was the most important thing you did? Additional resources: 45 behavioral questions to use during non-technical interview with developers 36 IT recruitment process that works Biggest mistakes you’re making when screening in tech Mistake #1 Not testing (or testing too late in the process) A lot of problems come from the fact that recruiters don’t test early in the process and waste their valuable time and resources on candidates who are not a match due to lack of skills and expertise. We tend to believe the best of people, but it should be our goal to evaluate a person’s potential to do well in this particular job based on their skills. It’s only fair these are tested impartially in a way which verifies their knowledge accurately. It’s not rocket science that random questions posed by people pretending to know the craft don’t serve that purpose. That’s why skill screening software is not an option but a necessity. Testing coding skills allows you to check knowledge of technical minutia quickly and without unnecessary effort so you can focus on other attributes the candidate should have which cannot be tested that easily. Testing early on also allows you to find A-players at the beginning of the hiring process before someone else snatches them away. Most talented devs don’t sit around and wait for recruiters to come back with an offer – they typically have projects queued up. The longer your process, the less likely they are to be available when you’re ready for them. In fact, according to MRINetwork, accepting another job offer is the #1 reason why job offers are rejected. Source: MRINetwork If you find a gem, don’t let other people take it away from you because of the time it takes you to make a decision. However, don’t think you should make it a priority to hire fast – the more you know about a candidate, the more likely you are to make an informed choice. 37 IT recruitment process that works When making a final decision, don’t hinge on one report – give yourself the luxury of having numerous sources of knowledge of your candidate as it reduces the risk of mis-hiring. Mistake #2 Not hiring for culture Deciding if someone fits your company culture can be tricky because there is no single test you can use with great accuracy. There are a number of ways to verify cultural fit, i.e. via increasing the number of points of touch and upping the number of encounters to hire through consensus. In an interview with Meet the Boss, Liane Hornsey, former Google VP of Operations argues that you need to hire through consensus – if you don’t, your company culture may become diluted. Hornsey herself had 14 interviews across two continents, but since then Google’s attempted to reduce the number of interviews. According to Shannon Shaper, Hiring Innovation Manager at Google, the company established that four interviews was enough to make a reliable hiring decision. Look for people who are in alignment with what you’re trying to do – Mark Zuckerberg argues that people who believe in what your company does are more likely to be driven to learn than some career programmers. Michael Hyatt explains seeing the candidate in a social situation such as a work lunch or dinner with the candidate and their spouse is a valuable source of knowledge because you get to see how the applicant treats their partner, the waiters and other restaurant staff. Mistake #3 Ignoring the potential of the candidate According to Harsh Patel, CEO of Hack Reactor, technical adaptability is the quality to be on the lookout for. “As is” is important when it comes to coding, but the ability to learn new things quickly is a safe bet in the long run. Another thing to look for is raw intelligence: Mark Zuckerberg argues that some of the best people he hired “had very little programming experience coming in” but their raw intelligence outweighed that of some career developers who had all the applicable skills. They were also highly motivated to develop the right skills because they believed in the organization. 38 IT recruitment process that works How to use a first impression effectively in screening Let’s look at a study by Mattersight. According to data gathered in the course of the research, a staggering 80% of employees “say they would take one job over another based purely on personal connections formed during the interview.” This is HUGE for recruitment professionals because HR is often where that first contact happens. As a recruiter you must become an ambassador of your company if you want to recruit and retain top tech workforce. Remember that first impressions are a double-edged sword – you’re making inferences during the interview, but so is the candidate. Make sure you come across as likeable and try to establish rapport early on. Affinity effect If you still think that you’re 100% unbiased when interviewing developers in your recruitment process, think again. Ever heard the old adage “birds of a feather flock together”? We tend to choose people who remind us of… ourselves. Why is this important for HR professionals? We often empathize more with people who we believe are similar to us in some respect. This means that if you rely on interviews and resumes without checking the knowledge of technical minutia, you might be subconsciously sabotaging your recruitment process. On the one hand, that’s not actually a bad thing, because it allows you to hire for company culture. On the other, there’s a risk you might hire people who you subconsciously feel are similar to yourself, and not people who are best for the job. 39 40 IT recruitment process that works Motivation 3.0 Once you start discussing details with the candidate, what should you talk about to make them interested? Think about what motivates people (and no, it’s not just money). According to career analyst and author Dan Pink, it’s actually: • Autonomy – the desire to direct our own life, • Mastery – the need to keep getting better at what we do, • Purpose – believing we can make a difference in the world with what we do. Autonomy, mastery and purpose are intrinsic motivators different from the traditional “carrots and sticks” extrinsic motivators. Source: Practical Workplace Wisdom According to Pink, it’s time to move away from relying solely on extrinsic rewards (also called “the carrots-and-sticks”, or “motivation 2.0”) towards intrinsic satisfaction (referred to as “motivation 3.0”). Pink believes that “there is a mismatch between what science knows and what business does” and quotes extensive research suggesting that monetary rewards can actually backfire in more complex tasks. He argues that monetary incentives tend to narrow our focus, so they work only for simple tasks. For more complex ones you want to do the opposite so shortening focus is bound to make the process more difficult than it actually is. Pink also points out that monetary incentives tend to work well for short-term goals, but may have a negative effect on long-term ones. It must be emphasized that fair pay is necessary, but your organization should also do all it takes to foster intrinsic satisfaction. This means that contrary to what many people believe, it’s not all about the money. IT recruitment process that works Of course, top tech talent needs adequate pay, but you need way more to make the devs stay with your company. You need to pay people fairly and adequately AND you need to make sure you appeal to intrinsic motivators. You should mention both intrinsic and extrinsic motivators early on when discussing the vacancy. Furthermore, research by Dale Carnegie Training suggests that you should also make sure that the immediate superior of your hires is competent and caring. Research findings suggest that if they’re not satisfied with their immediate management, there is an 80% chance that employees will become disengaged. Take a look at these numbers: - “26% of Engaged Employees would leave their current job for just a 5% pay increase, - 46% of Partially Engaged Employees would leave their current job for just a 5% pay increase, - 69% of Disengaged Employees would leave their current job for just a 5% pay increase.” You really need to make sure that the people you recruit stay around, as bad hires cost A LOT. How to alleviate the effects of all the abovementioned psychological mechanisms When looking for developers: Probe their technical skills, Stop asking people to invert binary trees on a whiteboard. Instead, start assessing programmers in their natural environment. Emulate their first day at work and the tasks they will be asked to complete if hired. Don’t be a jerk, Remember the Mattersight study saying that people are more likely to accept a job if they like the person who interviewed them? Don’t forget that technical interviews “should be a collaborative conversation and not combative interrogation” – be fair and give people a chance to talk and showcase their knowledge during programming assessment. Rely on the opinion of others, Ask a colleague to join the interview so your brain won’t get in the way. Don’t let your personal bias run wild: remember that you want diversity, not a clone army. 41 42 IT recruitment process that works Test knowledge of libraries and frameworks, According to Laurie Voss, “a good engineer will try to maximize productivity by using libraries to solve all but the most novel problems.” Don’t just ask people to come up with a commonly known solution – try to single out good engineers by testing the right skills. Remember that you need to hire people who will succeed in that particular position, and not these who excel at interviews. Use intrinsic and extrinsic motivators to make people stay. Of course money can make or break a deal, but let the candidates know there’s way more than that. Autonomy, mastery & purpose should be your organization’s new BFF. Tools for screening technical talent Results of Recruiting Software Impact Report by Capterra presented by J.P. Medved indicate that 75% of hiring and talent managers use either applicant tracking or recruiting software to improve their hiring process. Source: Capterra There are several assessment and screening tools which help you get through your IT recruitment process smoothly as well as save your time and money. In the case of IT recruiting, it is not only a matter of confirming information in a resume, verifying behavioral or decisionmaking traits, but also technical screening. Is your organization ready for digital HR? Not every business is. According to Deloitte University Press research, 38% of companies are thinking about digital HR, and only 9% of them believe they are fully ready for it. 72% of organizations believe digital HR is an important priority and 32% claim it is very important. IT recruitment process that works Source: Deloitte University Press Starting from video interviews, technical skills and psychometric tests to background checking, find out what you can do to get your new employees on board as fast as possible without compromising Quality of Hire. Video Interviews Have you ever experienced a situation when you met someone and you instantly knew this person is not who you are looking for? Talking face-to-face is the best way to find out if the candidate meets your expectations. Fortunately thanks to the Internet, you don’t need to spend time arranging and conducting the interviews offline. It’s both time and money consuming to you and your candidates. There are plenty of tools for video interviews starting with free solutions such as Skype, Facebook Messenger, FaceTime, Hangouts, etc. They are great when you have just a couple of candidates. Here’s a list of more advanced tools. 43 IT recruitment process that works RecruitLoop RecruitLoop offers automated video interviews for free. These interviews are one-way only. You create a questionnaire and send it to your candidates who record their answers on the RecruitLoop platform which is fully brandable. You have access to your notes and videos anytime and you can share them with your team. You can rate and tag your candidates. Answers are recorded so they can be used regardless of the time zone difference. Moreover, candidates answer the same set of questions which helps you differentiate. You can prepare several questionnaires when screening for multiple positions and your candidates only need a webcam to complete the interview. SparkHire SparkHire is an automated and live video interviewing platform. For automated interviews it works similarly to RecruitLoop – you create a questionnaire and your candidates record their answers on the platform. Recording can be done by means of a webcam or via mobile app. You can put the link to the interview in the email, on your website etc. Live interviews allow you to conduct and record face-to-face interviews. You can comment, rate, tag your candidates records and share them with your team as well as keep your candidates up-to-date with their status. You can also send rejection emails straight from the platform and customize your site on the platform by adding your brand color, logo, welcome video, photos. Zoom Zoom is not a typical interview tool and it primarily aims at video conferences, but you can use it in your screening process. It’s useful in group interviews – when you want to interview more people at once or there are more people involved in the recruitment process. You can record your interviews which is very useful. Zoom also works on mobile, tablet and other devices so it is a flexible tool for your candidates. There is also a possibility of sharing screens so you can ask your candidates to carry out a task and watch them complete it. 44 IT recruitment process that works Technical screening process / programming skills testing In IT, recruitment skill testing is essential to prove your candidates really know what they claim to know. Technical screening is important so you don’t waste time of your IT and HR teams on weak candidates. You can do it either through online coding tests or technical interviews. Devskiller Devskiller is an online testing platform which helps companies verify programming skills of developers. At Devskiller, we make assessing programmers skills look like their 1st day at work. The design of the platform directly addresses the key problems of hiring IT talent which tech recruiters are forced to tackle every day. Devskiller verifies the knowledge of programming languages, frameworks and libraries as well as imitating a real programming environment which are essential to finding the best developers. Thanks to customized online testing carried out early in the process, you get a smaller, better-qualified and suited IT candidate pipeline before the time-consuming process of interviewing even begins. The tool is user-friendly and easy to use for HR professionals with no technical background which decreases high costs of engaging tech teams. In short, our customers improve their recruitment process by reducing the number of unnecessary interviews by 60-70% and decreasing Time to Hire by 30-50%. Psychometric Testing Psychometric tests help you discover what kind of people your candidates are. These tests show their strengths and weaknesses, their motivation, how they behave, and how quickly they get the right answers. Bear in mind that the results of psychometric testing shouldn’t be the only decision-making tool as the methodology has some drawbacks, too. There are two types of psychometric tests. The first one is aptitude and ability test, and the second is personality questionnaire. The first group measures a person’s ability to perform or carry out certain tasks. The second one measures a person’s manner of doing things, how they interact with the environment and other people. Psychometric tests can consist of these kinds of tests: 45 IT recruitment process that works • Personality test lets you assess if your candidate matches the position they apply for with their personality characteristics, • Numerical reasoning tests tell you how the candidate deals with numbers and numerical data, • Abstract reasoning or lateral thinking – it checks the ability to learn and adapt to new things, decision-making, problem-solving and shows you if your candidate can identify rules and patterns in data, • Verbal reasoning questions – these questions show you whether your candidates can logically draw conclusions, identify important issues and if they can explain them clearly to others. AtmanCo AtmanCo offers its own original psychometric scientifically validated assessment test. The test was created to help recruiters and HR professionals and it measures 11 different dimensions on a scale of 1 to 9. Valid results should be the same over time. In addition to the Atman test, AtmanCo offers a behavioral-based pre-generated interview guide. It helps you identify the best candidates and their weaknesses. Questions are created using the results of Atman test. Using a test and a custom interview is more effective, reliable and bias-free and it leads to quicker decisions. Pymetrics Pymetrics is a platform with fun and quick games which helps you find the person who fits the desirable cognitive and emotional profile of your perfect employee. The games are based on neuroscience research and by using big data they assess 50 key cognitive and emotional traits. They are non-directional which means they measure if traits are beneficial in a particular profession. The games are anti-biased so it helps you avoid making a biased decision. If you don’t know what profile your perfect employee should have, you can use prebuilt industry profiles for support. 46 IT recruitment process that works RightPeople RightPeople offers a variable set of psychometric tests for any industry. They collect more data to create a more accurate picture of the candidate. All tests are legal and culturally relevant. According to your requirements, the company can design a customized test for you or you can use their standard one. The results are analysed and available on the platform or sent to you via email. Tests cover areas such as: cognitive ability / intelligence, personality assessment, safety, integrity and reliability, time management, shift work, customer service, work values. Reference / Background checking Background checking helps you find people who are great not only on paper, not only during interviews but also in real life. It also helps you ensure you are protecting your company data. References are by far the best reality check tool out there. Make sure you double check since sadly references tend to be fake. Be sure you are talking to real previous employers and if you have a chance, try to check at least two references. Checkr Checkr provides a fast and mobile-friendly background check of your candidates. It provides you with an identity check (identity verification, address history), criminal record check, driver check, drug check, and credit check. One of the most useful checks are national and international verifications of employment (over the past three employers or the last seven years with additional information on employment), education (confirmation of degree received, course of study, and dates of attendance) plus licenses and certification checks. HireRight HireRight runs a comprehensive customized background check in more than 240 countries and territories, supporting applicants in 20 languages. It provides you with flexible tools to make the check fast and smooth regardless of company size which means even small businesses can verify multinational backgrounds of their candidates. Among the checks are: 47 IT recruitment process that works criminal background checks, identity checks, drug & health screening, candidate experience, education checks, global screening, and driving records check. HireRight boasts a 95% satisfaction rate as it takes the anxiety out of a background check. VidReferencing Automated reference checking from VidCruiter works similarly to automated video interviews. You create a customized questionnaire you want to be filled as reference and ask your applicants to contact their references on your behalf. They don’t know what is being reported. The format of the reference may be video, audio or written. You track all files and you can rate the references. You also have tangible proof you did your job best as a recruiter. Another benefit is that VidCruiter also provides live and automated video interviews. Social Media Screening process Tech workers spend a lot of their time online so their online presence tells you a lot. Although basing your screening decision on social media profiles is perceived controversial, to some extent they can be treated as extended resumes as you can find some more information on your candidates and get to know them better. Do they fit your company culture? What do they like? What is their personality? Do they do anything controversial? Do they have any other skills? Checking social media accounts helps answer these questions and even prevent some future problems (such as controversial tweets which lead to a huge brand crisis or embarrassment). Don’t forget that account privacy settings may not let you see all the information and your perception can be biased. Moreover, there are many fraud accounts (i.e. hacked ones) and the information you see may not be reliable. Use social media checking responsibly and with the respect of privacy of your candidates. As you can see, there are various tools which can assist you in your IT screening process. Smart usage of these tools saves your time and streamlines your decision-making. Tech talent tend to appreciate you more when you value their precious time. That’s why finding the best candidates as fast as possible is a win-win situation in tech recruitment. Using technology (video interviews, online technical tests, psychometric testing etc.) always makes you look more tech-savvy and helps you create a better candidate experience. 48 IT recruitment process that works Self-Assessment 1. How do you verify the coding skills of your IT candidates? Do you check the knowledge of languages and libraries? 2. Do you use whiteboard testing? What are the advantages and disadvantages of this method? 3. What tools do you use to run background checks? Do you rely on one tool or multiple tools? 4. How many references do you usually check before you hire? 5. Have you ever changed your decision based on negative references? 6. Do you check the social media profiles of your candidates? What type of content prompts you to remove them from the pipeline? 7. Do you use psychometric tests? If so, how and when in the process? 8. How do you alleviate personal bias? 9. Does your company use motivation 2.0 or motivation 3.0? Do you appeal to intrinsic motivators in your job descriptions? 49 IT recruitment process that works Chapter 4: Offer/Hire 50 IT recruitment process that works You’ve spent hours looking for the right people, gone through their social media profiles, their repositories and online activity. You’ve exchanged emails or talk and then you finally get to meet them, either in person or via video interviewing tools. You’ve talked to them, you’ve verified their skills and… boom! You’ve found THE ONE. How to optimize Be quick, According to MRINetwork, it takes on average three interviews and three to six weeks to get an offer. In comparison, it was one to four weeks in the second half of 2015. Source: MRINetwork If you look at these numbers, you shouldn’t be surprised that “47% of declined offers in the second half of 2015 were due to candidates accepting other jobs” (MRI Network study quoted by Glassdoor). Top developers not only have jobs, they usually have opportunities and projects lined up. If your recruitment process drags for weeks, they are likely to choose other projects. Remember that the best devs out there are taken rapidly and you need to act fast. 51 IT recruitment process that works Offer attractive pay, According to Glassdoor research, “78% of software engineers say the top reason they would leave their job is salary and compensation.” If the offer is turned down due to salary, consider making a counter offer, negotiate bonuses or agree to a salary review after 6 months of employment. Don’t forget about perks, According to Jobvite, ”both classic and new-fashioned benefits help get candidates in the door. 78% of recruiters surveyed say medical/dental coverage is most effective at attracting new candidates, and 65% report that 401(K) helps. But 44% also report flexible work hours and casual dress code appeal to employees.” Source: Jobvite Be open to negotiation, Candidates are now feeling more confident than ever. According to Jobvite, salary is negotiated more than ever by recruiters – 68% of businesses “have increased the average salary offer for candidates in the last year”. Weigh your words. Verbal terms can be legally binding so make sure there is no discrepancy between verbal and written offers. Any misunderstanding regarding terms of employment is likely to cause disappointment on the side of the dev, which is the last thing you want at this point. Finally, make sure offer terms do not discriminate, either directly or indirectly. 52 IT recruitment process that works The biggest mistakes you’re making when offering a job and hiring Undercover Recruiter lists most commonly made mistakes that lead to candidates turning down an offer: • “Salary is less than what they wanted, • Candidate’s personal situation changes including being offered a job they are more interested in, • Business takes too long to either offer the position or get a contract out to the candidate.” Here’s a list of most common mistakes while making an offer. Mistake #1 No candidate debrief According to James Andrew, post-interview candidate meetings allow you to “calibrate search and come to a consensus”. Multiple points of touch and multiple encounters are much needed when recruiting to get a 360 view of the candidate. For that reason, it’s important that your talent acquisition team sits down and talks about candidates post-interview. Candidate debriefs foster hiring through consensus and reduce the impact of personal bias. They are also a sign of respect to the candidate who spent their time coming in and talking to you. Mistake #2 No follow-up for unsuccessful candidates Your hiring managers are your storefront because they represent the entire organization. Treat all your candidates with respect, including unsuccessful ones. Update people on the status of their application and let them know once the decision has been made. If people send you “thank you” emails after their interview, always reply and politely thank them back. “If an organization is together enough to proactively update you on your status and turn you down directly but kindly, keep them on your radar” says workplace expert, author and speaker Alexandra Levit in a Mashable post by Jennifer Parris. “This is a culture that’s probably pretty desirable.” Levit’s suggestion goes hand in hand with findings of research by CAREEREALISM which points out that over 40% of candidates who got no follow-up from a company will not apply again to work for it in the future. 53 IT recruitment process that works J.T. O’Donnell argues that companies who don’t email unsuccessful candidates hurt their NPS (Net Promoter Score), which is calculated based on the company’s likelihood of getting a recommendation from its customers. Candidate experience has a direct impact on brand reputation and the eagerness to recommend a company to peers so you can’t afford to underestimate its power. Self-Assessment 1. Do you send follow-up emails to all candidates involved in the process, including unsuccessful ones? If you use resume walls, do you reach out to candidates who submit their CVs this way? 2. How do you contact successful candidates and let them know they were selected? 3. How long does it take you to give them a final offer? 4. How often do your offers get rejected? Do you investigate why it happens? If so, are you taking steps to address these issues? 5. Are you willing to negotiate salary and bonuses? Do you ever negotiate them beyond what was originally assigned to the job opening? 6. Do you offer benefits? 7. How can you make your offer more appealing than that of your competitors? Do you know the salaries and benefits they’re offering? 54 IT recruitment process that works Chapter 5: Quality of Hire 55 IT recruitment process that works In the paper “Measuring Quality of Hire – The Ultimate Recruiting Metric“, Dr. John Sullivan & Master Burnett discuss Quality of Hire (QoH). In their opinion, it’s debatable whether QoH measures the effectiveness of the recruitment process or the quality of a particular hire. This may be a result of the fact that various fractions of a given organization may perceive QoH based on their role and experience, which they call a perspective dilemma. According to Sullivan and Burnett, “recruiting professionals typically define Quality of Hire as a grouping of metrics that measure the degree to which candidates recruited and hired satisfy the requirements as defined. The defining characteristic here is that the evaluation is done post hire, therefore reporting on historical performance. Line managers on the other hand see Quality of Hire as a series of indicator metrics that reasonably predict how well a candidate will perform on the job if hired.” This means QoH needs to predict how well a person will do in the future, as well as grade performance post-hire. This dual nature of QoH makes it so controversial and problematic. If you’re interested in QoH, you must watch this Talent Connect 2014 speech by CEO of The Adler Group Lou Adler. Adler argues that you need to measure, maximize, and quantify Quality of Hire. He divides performance of people hired into three groups – top candidates (upper-third), middle (midthird), and least performing ones (lower-third). Source: YouTube 56 IT recruitment process that works Adler states that the problem of modern companies stems from the fact that they assume there’s a surplus of talent, while there’s actually a scarcity of talent. He also argues that of the top third, 75%–80% are passive candidates. Increasing Quality of Hire is synonymous with increasing the percentage of hired people from the upper third. Adler argues that in order to do so, you must go out of the usual “skills, experience and academics” job descriptions. To illustrate his point, Adler calculates the ROI of getting people who are 15% better. His calculations are based on hiring 100 employees with an annual salary of $100K. If you hire 100 people from the middle-third, they will generate $24mm per year. However, hiring 100 people from the top third will bring you 15% more profit – $3.6mm more, or $14mm extra variable profit over 4 years. Source: YouTube Adler argues that the ROI of hiring top-third ranges from 200% to 700%, so there’s a lot at stake here. 57 58 IT recruitment process that works How to optimize for Quality of Hire Attract in vs. filter strategy, Depending whether candidates are active or passive, you need to adjust your strategy. Passive candidates need to be attracted in, and this is exactly how most upper-third candidates are hired. Shift your sourcing mix, According to Adler, if you’re in a scarcity situation, you must shift your sourcing mix towards more passive candidates. Needs analysis vs. job description, Adler argues that the first person who talks to the candidate on the phone is key to great hires. They need to conduct a needs analysis rather than flood the person they are talking to with details of the job. Find engaged managers, Employ managers who can attract and retain top third people. Remember that even the most motivated person in the world won’t perform very well if they are badly managed or don’t like their manager. Focus on what the person can become, In the surplus situation, the hiring process typically looks like this: Surplus: Weed out the weak Active Best who apply However, as we’ve established 75% to 80% of the top third are passive candidates. Moreover, the quest for the best in tech is on and there’s definitely scarcity in the world of developers. Your hiring process should therefore look like this: Scarcity: Attract the best Passive Raise the talent bar According to Adler, the focus of hiring managers should be on the doing and not the having. IT recruitment process that works Of course you need to make sure the person has the right skills, but this can easily be done with skill testing software. You need to train your hiring managers to communicate what the person can become while doing the job, which usually strikes a chord with upper-third candidates. Their accomplishments are what makes them unique and they are most likely to be interested in what they can do in the position and not what they already know. Start listening, When you talk to candidates, ask them if they would be open to explore a position clearly more superior to their current ones (as Adler argues, 93% of people say “yes” to this question). Once they say yes, don’t dive into what skills they need to have or required academic background. Talk about what the job is, what they get to do at work and what they can become. This changes the conversation and gets your upper-third interested. Like marketing, hiring needs a sound value proposition it can rely on. Measure before you hire, Sullivan and Burnett argue you should measure the quality of applicants pre-hire based on a number of indicators (i.e. whether your top performers know them, if they have at least one counter-offer, if they are currently employed, if they have been referred by another top performer). A full list of issues worth-considering pre-hire can be found in Sullivan and Burnett’s paper. Test skills, According to Sullivan and Burnett, skill screening allows to make sure candidates have the right skillset. If you combine that knowledge with Adler’s point of view, your aim should be to focus on what the job is and use skill tests to determine whether the candidate can achieve what is expected of them and not the other way round. Know where your best hires are coming from. Look at your hires and single out top performers. Go back and look for a candidate source which seems to convert best for your company. If possible, experiment with paid promotion of your job postings in that channel or consider spending more time looking for people in this particular place. 59 IT recruitment process that works Self-Assessment 1. Do you track Quality of Hire in your company? If so, do you use it to predict how well a person will do in the future, grade performance post-hire or both? 2. Which of the hiring patterns do you follow in your organization? a) Attract the best Passive Raise the talent bar b) Weed out the weak Active Best who apply 3. Do you typically hire people from the lower, middle or upper third? Why? What factors compromise your Quality of Hire most? 4. Who is the first person candidates talk to on the phone? Does this person conduct a needs analysis or simply present the details of the job? 5. What is the best source of quality hires? Were all your current top performers recruited as passive candidates? 6. Do you collect feedback from developers regarding their supervisors? If you do, what sort of procedures do you follow to intervene when necessary? 60 IT recruitment process that works Chapter 6: Time to Hire 61 IT recruitment process that works It’s often repeated that tech talent is hard to find and that it is taking increasingly long to fill a position, but how long exactly? Here are the stats you should know: • According to a 2015 Dice report December 2015: Special Report, Hiring Survey, 49% of hiring managers say it now takes longer to fill open positions in comparison to last year, • Research from Bersin by Deloitte Talent Acquisition Factbook 2015 reports that it takes “an average of 52 days to fill an open position, up from 48 days in 2011.” According to a study by Dr. Andrew Chamblerlain, Chief Economist at Glassdoor “Why is hiring taking longer? New Insights from Glassdoor Data” filling tech positions is taking longer than before, especially in the U.S., Europe and Australia. Here’s Chamberlain’s list of tech jobs with the longest and shortest interview duration, with Senior Engineer and Senior Applications Developer topping the list: Source: Glassdoor Given that hiring top programmers must be both efficient and fast, here’s what you can do to speed things up. 62 IT recruitment process that works How to optimize for Time to Hire Start tracking, You can’t optimize the process if you don’t keep an eye on your metrics. You need to know what your Time to Hire is before you try to change it to know if you’re actually changing it for better or worse. Hurry up, Top candidates will be long gone after the average five to six weeks it takes to recruit in tech – according to Recruiter Sentiment study by MRINetwork, “47% of declined offers in 2015 were due to candidates accepting other jobs, up 10% from first half of the year”. If you find someone promising, don’t make them wait, especially in the scarcity situation we’re currently observing in tech. Look for bottlenecks in the process, You’re probably thinking you shouldn’t spend so much time analyzing resumes. Well, think again – according to an eyetracking study by the Ladders “Keeping an eye on recruiter behavior”, on average recruiters spend 6 seconds looking at a resume. Interestingly, self-reports from recruiters suggest that they “spend 4-5 minutes per resume.” Analyze your hiring process and see where you spend most time (platforms, activities, emails, phone calls, screening and so on). Split test your job descriptions, A good job description should encourage matching candidates to apply and simultaneously discourage others from doing so. Try various distribution channels and test copy variants for optimal results. Screen candidates early on, Avoid interviewing people who don’t meet the requirements of the position to speed things up. One of the biggest gripes for recruiters is spending time on the wrong candidate. Smart recruiting needs tools to steer away from this tendency, and code challenges are a surefire way to eliminate candidates who won’t be able to perform in this particular job. 63 IT recruitment process that works Don’t use your senior developers to verify programming skills of your candidates. Just don’t. Not only are you using their VERY expensive time on tasks which can be carried out by means of dedicated screening software, you’re also slowing down daily operations they’re usually engaged in. Self-Assessment 1. Do you track Time to Hire? If you do, what is your Time to Hire for the last three developers who joined your company? 2. What is the biggest obstacle when it comes to acting fast? Is it getting in touch with candidates, multiple interviews, extensive screening processes or procedures you need to follow? 3. What can you do to speed things up? Should you talk to your supervisor about the current state of affairs and see anything can be changed inside your company? 4. How can you make sure you don’t procrastinate when doing social media checks? 5. Have you ever tried A/B testing your job ads? Which elements of your ads do you think need improvement most? 64 IT recruitment process that works Chapter 7: Cost per Hire 65 IT recruitment process that works In “Tech boom! The war for top developer talent”, Dan Tynan argues that “in a world that increasingly runs on code, developers are king – and companies will pay a king’s ransom to lure top talent.” Here are two key stats regarding the “ransom”: • According to Bersin by Deloitte research “Talent Acquisition Factbook 2015”, it costs on average $4,000 for U.S. companies to to fill an open position, • CIPD reports these cost increase to “£6,125 when the associated labour turnover costs are included. (…) If if things fail to work out first time around you can expect to double these for the cost of rehiring once again.” These amounts show what it takes on average to hire for any position. The question is, what does it actually take to lure top tech talent? To calculate CPH, you need to add external and internal costs and divide the amount you get by the number of hires completed. Confused about the costs incurred in the recruitment process? In “Human Resource Management – Text and Cases”, Dr. S. S. Khanka lists the most commonly occurring ones: 1. “Salary of recruiters, 2. Cost of time spent for preparing job analysis, advertisement, 3. Administrative expenses, 4. Cost of outsourcing or overtime while vacancies remain unfilled, 5. Cost incurred in recruiting unsuitable candidates”. Considering that 47% of small businesses have trouble finding qualified applicants for open positions, a lot of money goes into expanding tech talent pool (based on data of the National Federation of Independent Businesses). 66 67 IT recruitment process that works You should also know how much it costs you NOT to hire. Here’s how much money goes into keeping positions open in the U.S.: Source: Beamery Blog The cost of mis-hiring is also high. In a Business Insider interview Tony Hsieh, CEO of Zappos estimates that bad hires cost him more than $100 million in the last 11 years. Hsieh mentions the domino effect of bad hires hiring more bad hires whose bad decisions cost the company so much money. “If you add up the cost of our bad hires and the bad decisions they made and then they in turn also hired more bad hires, the whole domino effect over the past 11 years it probably cost the company well over $100 million” – says Hsieh in the interview. How to optimize for Cost per Hire Audit your current process, Know how much you’re spending on internal and external costs to see if the methods you’re using to cut down CPH are actually working. Internal costs include: In-house recruiting staff Management Training Temporary staffing costs Office work External costs comprise: Relocation fees Immigration expenses Technology fees Travel expenses Third-party fees Consulting services Advertising costs 68 IT recruitment process that works Look at your budgets allocated to each of these categories and see if you can find room for improvement. Leverage recruitment tech, There are a number of ways you can use technology to make your recruitment process more cost-effective. The most significant ones include video interviews and code challenges. Developers are busy people, so the easier it is to communicate with you, the more likely they are to see your company as attractive. Offer video interviews to get a feeling of who they are during pre-screening. Make sure to test programming skills early on to avoid spending too much time on a candidate who doesn’t meet your predefined requirements. Remember that these should be documented so you can stay away from personal bias as much as possible. Build a strong career site, There are a number of factors at play here: first of all, you need to make sure your brand message is delivered on your careers site. Secondly, you should consider HOW it’s delivered. Use engaging visuals such as videos and images and make sure your application process is candidate- and mobile-friendly. Reduce turnover, Low retention rates cost businesses time, money, and productivity. Make your company a good place to be to retain your staff. To do so, find out what makes people leave (i.e. by means of exitinterviews). Is it pay, poor management, or lack of flexibility? Look for issues which are brought up repetitively and attend to them on the spot. Build a strong talent brand, LinkedIn research shows that their “customers with a strong talent brand spend, on average, 43% less to make a hire on LinkedIn than our customers with a weaker brand”. Source: LinkedIn IT recruitment process that works Self-Assessment 1. Do you track Cost per Hire in your organization? 2. What is the Cost per Hire for your three most recent hires? 3. Are you typically more focused on Time to Hire or Cost per Hire? Does focusing on one of these metrics pose any threats to your hiring process? 4. Do you have a strong talent brand across platforms you use to find developers? What can you do to strengthen your position there? 69 IT recruitment process that works Chapter 8: The cost of recruiting a developer 70 IT recruitment process that works The agency fee is just a starter. In the IT world where there is a talent shortage, hiring a new programmer (or any tech talent) increases in cost and effort as time goes on. The better the programmer is, the more expensive it gets. Time is money – it’s not only about the recruitment cost itself It sounds cliché but it’s true. The longer your position is unfilled, the more money your company loses. It’s gotten trickier as the result of a shortage of qualified programmers. An unfilled position can cost you upwards of $500 a day. Programmers know their value and they will not wait for you. ACT FAST TO GET TOP TECH TALENT! What’s more, slow hiring leads to slow decision making – a combination that can damage your employer brand. Hiring can be both stressful and exciting for each party involved in the process. The stress of waiting for recruitment results makes people feel negative about the recruitment process and the company itself. Moreover, the slowness has an impact on your current employees (since they are doing extra work to cover for the vacancy) and consumers (vacancy often causes errors and delays). That in turn means a significant loss of revenue and productivity. Cost per Hire: what it’s really about The amount of money spent on recruiting a new programmer varies depending on the skills, position type, level, market demand, geographic region and so on. The cost of recruiting a freelancer who works from home is different than the cost of recruiting a full-time programmer in Silicon Valley. It’s not easy, but let’s estimate the cost using the Cost per Hire (CPH) indicator: 71 IT recruitment process that works CPH = (external costs + internal costs) / number of hires Source: Devskiller External costs are recruitment expenses incurred outside your physical location. These may include advertising costs (expanding your employer brand, job posting), consulting services (legal, technical), immigration expenses (especially important when you recruit abroad, which is a very popular practice in IT recruitment), relocation fees, travel expenses (for both the candidate and the recruiter), technology fees, third-party fees (recruitment agencies, headhunters), etc. Internal costs include; in-house recruiting staff, management, office work, training, temporary staffing costs, etc. Recruitment entails both external and internal costs. If you hire a headhunter or a recruiting agency it charges you 15-30% of the new employee’s annual pay (external cost). If the recruitment is conducted by your employee, the time this person dedicates to the recruitment is your internal cost (hourly wage x hours). The most popular solution is a hybrid one. 72 IT recruitment process that works Basic costs of each stage of recruitment process Here are some detailed external/internal costs you need to cover: Source: Devskiller 73 74 IT recruitment process that works Estimation Let’s estimate how much it may cost to hire a senior software developer with a salary of $94,083 (which is median salary value estimated by PayScale) and Time to Hire of around 43 days (according to Wanted Analytics). The average agency fee (22% of the new hire’s salary) is $20,698, in-house recruitment (12%) costs you $11,290 and a hybrid solution (17%) is $15,994. These figures are the sums of external and internal costs which are partly described above. Moreover, as a company you’ll likely suffer productivity loss in this case totalling $33,251 or you will get contractor cover which costs you $22,167. You also have to take into account management time spent on the recruitment process, reviewing CVs, interviewing and repeating the process if the job offer gets rejected. Time devoted by a manager with a $62,000 salary (according to PayScale) for 10 days costs you $2,818 of their time and $8,454 in terms of productivity loss. The total for this scenario is $22,562 for in-house recruitment and $31,970 if you recruit with an agency – and if you add productivity loss or cost of contractor cover the number can exceed even $60,000! Source: Devskiller IT recruitment process that works As you can see, the cost of your new programmer greatly depends on you and your course of action. Just remember to list all positions mentioned above that go beyond individual recruitment costs. There are some unavoidable costs, but if you create a great employer brand and workplace (to avoid turnover), constantly work on your talent pool and prepare well for your next recruitment you can cut the numbers and hire better candidates. Additional resources: True cost of recruiting a developer [infographic] Self-Assessment 1. List all the actions you and your co-workers take during your recruitment process: • Sourcing, • Review application, • Prescreen, • Interview, • Hire. 2. Write down how much time each action takes if you’re doing it in-house and list all external costs associated to having it done outside of the company. 3. Can you see any areas where you’re spending a lot of money without satisfactory ROI? How can you remedy the situation? 75 IT recruitment process that works Chapter 9: Hiring more women in tech 76 IT recruitment process that works It’s common knowledge that the world of software engineering is a predominantly male environment. Diversity reports from tech leaders like Google, Slack, Pinterest and Uber show that women in tech are greatly outnumbered. Slack tops the list with 29.8% of women in technical roles, which is significantly greater than the results of its peers: Source: USA TODAY Gender diversity is a significant positive predictor of productivity and hiring more female workers is one of the main ways to diversify tech workforce. As Jessica Guynn of USA TODAY points out, Slack wanted to avoid “growing the way technology companies typically do by hiring a lot of white and Asian men. One of the executives penned a manifesto that pledged Slack would hire as many people from diverse experiences and backgrounds as it could.” This proves even companies who focus on diversity early on and make a conscious effort to diversify struggle to do so. The way Slack reached the top of the “women in tech” list is by a conscious, pre-planned effort. And that’s exactly the way you need to go about it. 77 IT recruitment process that works Women in tech: benefits MONEY: A 2015 McKinsey “Why diversity matters” report analyzing 366 public companies found that “those in the top quartile for gender diversity were 15% more likely to have returns above the industry mean”. Source: McKinsey PRODUCTIVITY: A Massachusetts Institute of Technology and George Washington University study reveals that employees tend to be happier when they work with people of the same gender, but are generally more productive when they work in a nonhomogenous environment. CREATIVITY: Nonhomogenous teams stimulate the brain because they tend to challenge stale ways of thinking. Due to what psychologists call fluency heuristic, humans tend to favour information that can be processed easily or is already known, which they believe to be true or more beautiful. That’s why certain songs or slogans grow on you after you hear them a couple of times. However, when you step out of what you already know, you’re most likely to achieve growth. 78 IT recruitment process that works EVEN MORE MONEY: According to 2014 Credit Suisse analysis “large-cap companies with at least one woman on the board have outperformed their peer group with no women on the board by 26% over the last six years”. Of course, correlation doesn’t equal causation, so you can’t just hire any woman who applies and expect to achieve growth – you still need to monitor QoH (Quality of Hire). While “greater gender and ethnic diversity in corporate leadership doesn’t automatically translate into more profit, the correlation does indicate that when companies commit themselves to diverse leadership, they are more successful.” One of the reasons is that female tech workers are probably more drawn to diverse teams where they get work with both male and female colleagues. Do developers want gender diversity? In 2016 Developer Landscape survey by Stack Overflow, 73% of developers said gender diversity was “at least somewhat important in the workplace” and 41% of them said it was very important. Software engineers who influence hiring decisions were most likely to believe in the importance of diversity in comparison to other developers. Source: Stack Overflow 79 80 IT recruitment process that works Female developers in numbers • According to PayScale, in the Tech Industry males dominate at all levels, If you look at their data you can see that the number of female workers occupying all positions listed below is much lower than outside of the industry. Tech still has loads of room for improvement and hard as we try, it’s still a boys’ club. Source: PayScale • Results of the 2016 Developer Landscape survey by Stack Overflow show just how male the software development world is, with a staggering 92.8% of survey participants identifying as men, Source: Stack Overflow However, this statistic underrepresents women in the industry and Stack Overflow staff say their internal data suggests the imbalance isn’t as severe. However, in majority of “programming teams, men outnumber women often by significant margin.” IT recruitment process that works • Industry leader Slack has most women in technical positions (29.8%). Women constitute 43.5% of their overall workforce worldwide, Source: Slack • David Smith ran an analysis based on the original study based on Face API by Jeff Allen from Trestle Tech and found that most GitHub contributions from female members were found in the “R” category, with almost 10% of contributors to R projects being female, Source: Revolutions 81 IT recruitment process that works • According to the authors of “Gender Differences and Bias in Open Source: Pull Request Acceptance of Women Versus Men”, gender bias pervades open source. The study looked at acceptance rates of contributions from male and female members in an open source software community and yielded interesting results: 1. “women’s contributions tend to be accepted more often than men’s, 2. women’s acceptance rates are higher only when they are not identifiable as women.” The results suggest that despite being more competent overall, women on GitHub are subject to a strong bias. As a tech recruiter, your job is to fill positions quickly and efficiently. Sadly, issues like diversity are often deemed less important than metrics such as Time to Hire. In order to hire diversely, you need to look at your team as a whole. Jeanette Stock of Pressly and Venture Out has an excellent point: “hiring the best person and hiring the best team which studies show is a diverse team are not necessary always opposite. You’re not hiring in isolation. Building a team is like taking raw blocks and trying to put them together in a way that makes the strongest structure, and if you have all the blocks that are leaning one way that you just stack on top of each other, eventually that tower is going to fall over.” If the team you’re hiring for is predominantly male but you want to bring change to your structure, here are the steps you need to take to attract women in tech. 82 IT recruitment process that works How to optimize for diversity Run mandatory unconscious bias training, It’s taken by all new hires during orientation at Google and the company is right to do so. It’s time you followed suit. Review your job postings for unconscious gender bias, There are some pretty ugly examples of gender bias out there, like this one Ella Gorev of Nulogy came across: …and this one when developer Leigha Mitchell criticized a sexist recruiter post: 83 84 IT recruitment process that works Work on your Careers page, It’s one of the first places people go to work out what kind of an employee you are. As Leigha Mitchell says, “if it’s plastered with pictures of white guys in flannel with beards, that’s a red flag.” Mitchell says if that’s the case the page should include a statement explaining that you want to diversify and why you want to do it. She adds that another frequently used trick she’s seen is including an outline of a female silhouette with a caption “this could be you!”. Mitchell also recommends involving women in the interview process, especially when talking to female candidates. This makes them more at ease when it comes to asking certain questions which can only be answered by another woman in tech. She suggests that if there are no women on the team you’re recruiting for, it’s a good idea to “bring someone from another team for a culture interview.” Bridge the gender pay gap, According to PayScale, gender pay gap in tech is lower than that of non-tech industry. However, there’s still a lot of work to be done. As you can see, the gap gets bigger as people move into more senior roles. Source: PayScale Here’s the data when you consider pay of similar men and women in similar jobs: Source: PayScale IT recruitment process that works Gender pay gap gets bigger as people move into more senior roles in this group, too. For example, the gap for similar men and women in similar jobs in tech industry reaches from -1% for Individual Contributors to -6% for Executives. Male Median Pay for Individual Contributors is $70,900 and Female Median Pay for the same job equals $70,000. For executive jobs in tech, Male Median Pay and Female Median Pay equal $174,600 and $164,800 correspondingly. Consider salary transparency, As Molly Koernke says, “salary transparency evens the playing field for women”. Don’t penalize women for negotiating pay, A Harvard University study “Social incentives for gender differences in the propensity to initiate negotiations: Sometimes it does hurt to ask” shows that women get penalized more than men when initiating salary negotiations, even by female evaluators “assessing willingness to work with a candidate from written transcripts”. Keep that in mind next time someone tries to negotiate pay and devise a comfortable environment for discussing salaries and policies. Give a small (and friendly) nudge, At Google, engineers typically nominate themselves for promotion, but the company found women wouldn’t do that as often as their male colleagues (even when they clearly should have). In her Washington Post article, Technical Reporter Cecilia Kang explains how Laszlo Bock (former SVP of People Operations at Google) and Alan Eustace (former SVP of Knowledge at Google) used hard data to remedy the situation. As one of the heads of engineering at that point, Eustace sent an email to his staff describing these two studies: • When answering math problems, girls tend to raise their hands less frequently than boys, even though they are more accurate in their answers when they finally decide to speak, • Women are more reluctant than men to offer their ideas in business meetings even though they are often better than many offered by their male colleagues (as evaluated by observers). Eustace followed them with a statement that it was time for to apply for promotions, and as you can expect, the application rate of female engineers soared. 85 86 IT recruitment process that works He sent the email a number of times and it always had the exact same effect. When he did forget to send it out, the number of female applicants dropped sharply. Encourage women to take action, but do it tactfully. Present data to make them feel more comfortable, but don’t go overboard. Don’t force female coders behave like men to be successful, Liking floral prints or neons has nothing to do with the ability to write good code. As Molly Koernke says, “women should be able to be themselves at the office without it hurting their career – bright clothing and all.” Make them stay, “Increasing diversity at the entry level is not enough because these ‘diverse’ people are not likely to stick around.” Paolo Gaudiano and Ellen Hunt point out that when new hires realize that their managers and executives are nothing like them, they are likely to jump ship. They also state that new diverse hires are prone to prejudice because the working environment they’ve joined is stale. Finally, they suggest that homogenous leadership may not offer basic benefits which are important for “diverse people”, like private space for lactating mothers. Broadcast empowering messages. Find strong, competent female software developers in your team and help them get their voice heard. Sponsor and attend women-in-tech events. Don’t forget about men – some of them are already industry leaders, use their influence to send their message. Find strong, male advocates who can work to foster diversity in a number of ways. Source: Code like a Girl IT recruitment process that works Self-Assessment 1. How many female developers have you hired in the last 12 months? What is the percentage of your female hires from last year? 2. What percentage of the developers in your company are female? 3. Do you offer benefits catering to the needs of both gender groups? Do you offer female-oriented benefits? How can you make sure these are not neglected? 4. Do you offer equal pay to male and female developers? Are you equally open to salary negotiations with both of these gender groups? 5. How can you encourage your female developers to nominate themselves for promotion? 6. Are your job ads and job descriptions free from unconscious bias? 87 IT recruitment process that works Chapter 10: HR and IT department cooperation – how to make it work 88 IT recruitment process that works Let’s face it, as far as recruiting tech talent is concerned, in many companies HR and IT don’t get along. There are many stories about their rocky relationship. On the one hand, IT departments grumble that recruiters don’t put enough effort into the screening process and are wasting programmers’ precious time by inviting candidates that don’t meet basic requirements to on-site interviews. On the other hand, recruiters complain that they are working their socks off and their work is always underappreciated. It’s important to understand where these misunderstandings and miscommunication come from in order to build a solid relationship and an effective recruitment process. The HR perspective The shortage of talent and the omnipresent war over tech candidates make the job of technical recruiters pretty challenging. A recruiter’s job doesn’t end with putting an ad on the job board, sitting back and waiting for CVs to come in. It requires being active – spending a lot of time looking through coding-related sites and searching for coders that match your requirements, going through social media, business profiles, groups and discussions and finally trying to get in touch with them. More active recruiters who know how important building relationships is attend meetups for programmers or try to be present on various sites and show that they care. They do a lot for building employer branding. Sourcing, however, can be ungrateful. Recruiters spend a lot of time with no success guaranteed. In fact, nobody sees how much work they have done, effort and energy they put into it and how much time it cost them. Everybody wants results. That’s why recruiters often feel that their job is not appreciated and valued enough by co-workers. Then comes screening which seems to be even more challenging. Based on CVs and often phone or video interviews you have to decide whether a candidate has the skills necessary to do a given job. But few technical recruiters can program themselves or have deep knowledge in this field which makes it difficult to assess skills adequately. The company wants good programmers, but nobody thinks and gives recruiters the tools and know-how that can support them with making the right decisions. In some companies there is 89 IT recruitment process that works dedicated software for that purpose, and in others they get support from the Subject-Matter Expert (SME). But still in many of them, technical recruiters are left on their own trying to meet unrealistic expectations. That’s why so often recruiters prefer to act cautiously and invite all candidates that might have the competencies needed for a meeting with IT staff. From their perspective, it’s the best way to ensure that they don’t miss a single valuable candidate. The IT perspective The IT team usually has a lot on their plates. If your company is recruiting new programmers it means that internal developers are knee-deep in work and don’t have the necessary resources to progress at the desired pace. If meeting tight deadlines with programming projects isn’t enough, they participate in project meetings, manage stakeholders and adjust their approach to IT project challenges. On top of that, they have to take part in the recruitment process being responsible for screening new candidates technical skills, as nobody else has the skills to do it. So far everything is pretty straightforward, right? But how would you feel if your precious time was wasted for interviewing weak candidates who don’t meet even the basic programming requirements? Or if after a couple of minutes you already know that the candidate is not qualified to work on the project you are recruiting for? Still even if the interview finishes within 15 minutes, as a programmer you wasted more than 30 minutes of your time or even more because you had to take a break from work. Let’s face the truth, most tech recruiters lack programming skills. This is understandable. What IT teams often find ununderstable is that HR professionals rarely ask them about tools used in the recruitment process, especially technical screening tools. Instead, they make the decision to purchase on their own. This is what really annoys programmers as they could be of great help in that matter. 90 IT recruitment process that works Where does the fault lie? Mutual grievances of HR and IT seem to be only the tip of the iceberg. It goes way beyond that. To avoid conflict, you have to get back to your recruitment strategy, setting goals, analyzing each step of the hiring pipeline and rethinking how you can streamline your IT recruitment process and make cooperation between HR and IT departments really work. As Dr. John Sullivan stated in “The Top 12 Reasons Why Slow Hiring Severely Damages Recruiting And Business Results”: “each unnecessary position vacancy day has a significant dollar impact on productivity, innovation, and revenue generation.” It is not only in the best interest of HR and IT to start getting along, but also it’s in the interest of CEOs, companies, and management as it’s necessary to deliver results. How to optimize You know that it’s much more complicated than just reorganizing the process. Make people talk to each other, You can start from workshops and brainstorming sessions which will help you identify bottlenecks and weak points of your current recruitment process. You can also use it to work out an approach that will meet everybody’s demands and discuss tools that can streamline the whole process. Foster collaboration, IT recruitment is a joint effort. The sooner all employees get on board, the better results you will achieve. Just imagine the effects it will have on your team: technical recruiters being proud and appreciated that they found real game-changers who are crucial for company performance acceleration and IT staff who finally work with people that significantly improve the effectiveness of what they do. 91 IT recruitment process that works Know the data, Try to be as precise as possible when talking to developers. Tell them why you want to do something and cite research supporting your point of view. Technical recruiters tend to get bad rep, but doing your homework means you are more confident. Learn the lingo. You don’t need to be able to code, but know what you’re talking about. You must know the difference between front-end, back-end, and full stack. If you don’t, make sure you read the next chapter where you’ll find a glossary of IT terms we’ve prepared for you. Self-Assessment 1. How is your IT team involved in the recruitment process? 2. At which stage of the recruitment process are they involved? How many people in total? 3. How often do you communicate and how? 4. Do you slow down their work? Do they slow down yours? 5. Do you use coding tests? If so, at which point in the process? 92 IT recruitment process that works Chapter 11: A glossary of IT terms for non-coders 93 IT recruitment process that works General terms Programming language is a language used by programmers to instruct a computer to perform a certain job. It’s normally a set of instructions that can be used to achieve the desired output of a computer application written in a certain programming language. Source code is a set of instructions and statements written by a programmer using computer programming language. This code is later translated into machine language (binary code) by a compiler. Source code is the only stage where a programmer can read and modify a computer program. Read more: Wikipedia Framework is code that is already written and covers low(er) level, generic functionalities so programmers can selectively change it with additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications. It consists of many predefined solutions for common functionalities that are used to help build software applications, products and solutions on top of it. Using a framework, developers don’t have to write all the functionalities of the software that they are working on because they are already implemented in the framework and ready to use with a single command. Frameworks can improve developer productivity as well as the quality, reliability and robustness of new software. Thus, knowledge of frameworks for a specific job is one of the most important skills of a developer. Examples: Bootstrap, React, Spring Framework, Rails, Symfony. Read more: Wikipedia Library is a collection of predefined functions or routines that a program can use. Libraries are particularly valuable for storing frequently used routines because you do not need to explicitly link them to every program that uses them. Example libraries: JQuery, Google Guava, RxJava, d3.js. Culture Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. Described in Agile Manifesto. Read more: Wikipedia DevOps represents a change in IT culture focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture) and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation and monitoring tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective. DevOps core principles are consistent with many Site Reliability Engineering (see: SRE) principles and practices. One could view DevOps as a generalization of several core SRE principles to a wider range of organizations, management structures, and personnel. One could equivalently view SRE as a specific implementation of DevOps with some idiosyncratic extensions. Read more: Gartner, O’Reilly Media 94 IT recruitment process that works SRE (Site Reliability Engineering) is a discipline that incorporates aspects of software engineering and applies that to operations whose goals are to create ultra-scalable and highly reliable software systems. It encourages product reliability, accountability, and innovation. Read more: Google Roles Front-End Developer essentially creates whatever has a digital visual presence with which people interact (client-side environment). Traditionally, a front-end developer is a person who is comfortable with both design and coding; in other words someone who is comfortable using simple design tools and is able to create a website using HTML code, style it using CSS and make it interactive using JavaScript. UI designer, or “User Interface” designer, is the one that designs what the application looks like from the perspective of the user to enable users to interact with the application. UI designers must understand what front-end developers expect from them and know how to communicate with them, as well as have design skills. Often this person does not have to be a programmer at all. UX designer or “User Experience” designer is a person who helps create a better experience of using the application. This person simplifies the visual part of the application and brings out the features that are used most often. His/her job is to make the application as easy and useful for the users as possible to increase usability. Back-End Developer is involved in the process of combining a server, an application and a database to solve a problem (server-side environment). This entire process is solidly entrenched in logic, a network of processes and queries being resolved in split seconds to give you a certain desired output as a user. They are different from front-end developers in that the job of a back-end developer is completely free of any visual design and relies on logical reasoning and software architecture that aims to deliver a particular output. Full-Stack Developer is one who is comfortable working with both back-end and front-end technologies. A general knowledge of technologies from every section of the development process is necessary for a frontend developer. This of course means that they will not be an expert in any one particular field but can rather offer a better overview of applicational possibilities and capability of bridging the gap between how the system functions and how it looks and feels for the user. MEAN developer is one who uses JavaScript software stack for building dynamic websites and web applications. MEAN stack developers are experts in using MongoDB, Express.js, AngularJS (or Angular), and Node.js. Because all components of MEAN stack support programs written in JavaScript, MEAN applications can be written in one language for both server-side and client-side execution environments. System administrator (SysOp, sysadmin) is a person who is responsible for the upkeep, configuration and reliable operation of computer systems, mostly servers. Read more: Wikipedia 95 IT recruitment process that works Programming languages and technologies Java is a compiled, object-oriented programming language, similar in syntax to C++. It is intended to let application developers “write once, run anywhere” meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Read more: Devskiller C is a general-purpose, imperative computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents many unintended operations. C was originally developed by Dennis Ritchie between 1969 and 1973 at Bell Labs, and used to reimplement the Unix operating system. It has since become one of the most widely used programming languages of all time. Read more: Wikipedia C++ (pronounced cee plus plus /ˈsiː plʌs plʌs/) is a general-purpose programming language. It has imperative, object-oriented and generic programming features and it provides facilities for low-level memory manipulation. Read more: Wikipedia C# (pronounced “C sharp”) is a programming language that is designed for building a variety of applications that run on the .NET Framework. C# is simple, powerful, type-safe, and object-oriented. Read more: Wikipedia Python is one of the most commonly used programming languages (top 3 according to IEEE Spectrum research). It was first released in 1991 and gained popularity for being simple to learn, yet powerful in solving problems. The syntax is similar to C++ family yet equipped with a variety of modern solutions. Read more: Devskiller Visual Basic .NET is a multi-paradigm, object-oriented programming language implemented on the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language. Although the “.NET” portion of the name was dropped in 2005, “Visual Basic [.NET]” is used to refer to all Visual Basic languages releases since 2002 in order to distinguish between them and the classic Visual Basic. Along with Visual C#, it is one of the two main languages targeting the .NET framework. Read more: Wikipedia PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. Read more: Wikipedia JavaScript (also known as JS) is a high-level, prototype-based, untyped, dynamic language. Depending on the environment JavaScript can be interpreted or compiled. It is a multi-paradigm programming language, supporting object-oriented, imperative and functional programming styles. Read more: Devskiller Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions. Perl 6, which began as a redesign of Perl 5 in 2000, eventually evolved into a separate language. Both languages continue to be developed independently by different development teams and they liberally borrow ideas from one another. Read more: Wikipedia 96 IT recruitment process that works Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro “Matz” Matsumoto in Japan. According to its creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. Read more: Wikipedia Swift is a general-purpose, multi-paradigm compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux. Read more: Wikipedia R is an open source programming language and software environment for statistical computing and graphics. It is widely used among statisticians and data miners for developing statistical software and data analysis. Read more: Wikipedia Go (often referred to as golang) is a free and open source programming language created at Google. Read more: Wikipedia Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It was the main programming language used by Apple for the OS X and iOS operating systems, and their respective application programming interfaces (APIs) Cocoa and Cocoa Touch prior to the introduction of Swift. Read more: Wikipedia SQL is the most popular database programming language. Historically, this declarative programming paradigm has been a key feature for ad-hoc queries run for data introspection executed by human users directly with SQL (rather than with a UI). In modern days, SQL is also embedded in other, more general purpose programming languages like Java in order to access data from central databases. Read more: Devskiller Scala is a general-purpose programming language providing support for functional programming and a strong static type system. Designed to be concise, many of Scala’s design decisions aimed to address criticisms of Java. Read more: Wikipedia Android is the world’s most popular operating system (it’s not a programming language) dedicated mainly to mobile devices. The source code is developed by Google under the Android Open Source Project (AOSP). Subsequent versions are usually released annually and are announced at Google I/O conferences. Read more: Devskiller Databases Database – a collection of information stored and used by the software, organized in a way that can be easily managed. Traditional databases are organized by fields, records, and files. Relational Database is a database organized with the relational model. Relationships are a logical connection between different tables established on the basis of interaction among these tables. All relational databases use SQL (Structured Query Language) to operate on data (insert, update, load). Looks like a spreadsheet. Examples: Oracle, MySQL, Postgres, SQL Server. Read more: Wikipedia 97 IT recruitment process that works NoSQL Database – non relational or non SQL database. Unlike relational databases it uses other forms than tabular data like key-value collections, multi-level structures, graphs, etc. Such databases are usually chosen for their performance, scalability and flexibility in schema design. CAP theorem states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees: consistency (every read receives the most recent write or an error), availability (every request receives a non-error response without guarantee that it contains the most recent write) and partition tolerance (the system continues to operate despite an arbitrary number of messages being dropped or delayed by the network between nodes). In other words, CAP theorem states that in the presence of a network partition, one has to choose between consistency and availability. Read more: Wikipedia ACID – Atomicity, Consistency, Isolation, Durability. A set of properties related to the database engines guaranteeing after finishing modification data will be consistent. Read more: Wikipedia User Interface GUI/UI, or “Graphical User Interface”, is a visual part of the software or a website that allows the user to interact with the application. Every time when you are using an application you use it by clicking through GUI. Responsive Design is responsible for making the interface of the application display well on all possible devices like phones, PCs or tablets that we use to access it. CSS (Cascading Style Sheets) is a method of assigning formatting rules to an HTML page which allows the content and presentation of a website to be separated. This separation gives web developers the ability to instantly change the appearance of a specific HTML element, like position, colors, fonts, etc., throughout an entire website. Read more: Wikipedia Material design is Google’s conceptual design philosophy that outlines how apps should look and work. It breaks down everything from animation and style to layout and gives guidance on patterns, components and usability. Read more: Wikipedia Bootstrap – a free open-source front-end web framework for designing websites and web applications. It makes it very easy to create webpages by empowering designers to select from a large collection of pre-built elements, behaviors, and shortcuts. The aim is to unify design and allow both non-technical and technical designers to improve the quality of their design. Read more: Wikipedia 98 IT recruitment process that works Testing Unit testing is a software development process in which the smallest testable parts of an application (called units) are individually and independently checked to see if they succeed. Most popular libraries are: JUnit, Mocha, NUnit, RSpec. Integration tests are a level of software testing where individual units are combined and tested as a group. These tests are performed in order to expose defects in the interface and in interactions between integrated components or systems. It occurs after unit testing and before validation testing. Read more: Wikipedia Acceptance tests are a level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with business requirements, user needs, and business processes. Acceptance tests determine if a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system. Read more: Software Testing Fundamentals Performance tests are a type of software testing that intends to determine how a system performs in terms of responsiveness and stability under a certain workload (usually under stress). Read more: Software Testing Fundamentals Development tools and processes Version control system is the management of changes to documents, computer programs, large websites, and other collections of information. Changes are usually identified by number or letter code, termed “revision number”, “revision level”, or simply “revision”. For example, an initial set of files is “revision 1”. When the first change is made, the resulting set is “revision 2”, and so on. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged. Read more: Wikipedia Git is a free open source distributed version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files. Read more: Wikipedia Subversion (svn) is another popular open source version control system. In contrast to Git, all developers use one centralized repository. Read more: Version Control with Subversion Commit – In version control systems, a commit is a saved change made to the source code. Commits are usually added/deleted files or directories, changed file contents, etc. Read more: Wikipedia Trunk Based Development is the practice of merging all developer working copies to a shared mainline several times a day. Read more: TrunkBasedDevelopment 99 IT recruitment process that works GitHub is a popular Git hosting service. It is mostly used for code. In addition to Git, it provides several collaboration features such as bug tracking, feature requests, task management and wikis. Website: GitHub.com. Read more: Wikipedia GitLab just like GitHub is a Git repository hosting which provides wikis and issue tracking functionality. It’s an open source project developed by GitLab Inc. Website: GitLab.com. Read more: Wikipedia Bitbucket is Git and Mercurial repository hosting service owned by Atlassian. Like its counterparts, it provides several collaboration features such as issue tracking and wikis. Website: Bitbucket.org IDE, or “Integrated Development Environment” is a code editor application designed to help programmers write, run and debug code. Examples: Eclipse, IntelliJ IDEA, Visual Studio, PHP Storm, etc. Build tools are used to convert programming code written by the developer into binary code that is executable by computer and run it. It usually manages external dependencies (libraries or frameworks) which are used in the project. Examples: Gradle, Maven, Rake, MSBuild, Phing. Automation server (like Jenkins, Bamboo, TeamCity) helps automate the non-human part of software development process with continuous integration and facilitating technical aspects of continuous delivery. Read more: Wikipedia Continuous Integration – extension of Trunk Based Development practice, where each integration is verified by automated tools and tests to give fast feedback and detect errors as fast as possible. Read more: Martin Fowler Continuous Delivery – software engineering approach in which teams produce software in short cycles, ensuring that it can be reliably released at any time. This means deployment package is prepared and automatically tested continuously (e.g. once per day) and ready to ship to production. Read more: Wikipedia Continuous Deployment is similar to Continuous Delivery but ends up on the package being deployed to production instead of just ready to be deployed. Deployment – pushing new software package version into target environment. Feature – a distinguishing characteristic of a software item (e.g., performance, portability, or functionality). Source: Wikipedia Release – making the version package (features) available to end users. Deployment Pipeline defines the sequence of stages to pass until application is rolled-out to production. By breaking up the deployment lifecycle into stages, you collect increasing confidence, usually at the cost of extra time. Early stages can find most problems yielding faster feedback, while later stages provide slower and more thorough probing. Stages can include building, deploying, testing, archiving, etc. Read more: Martin Fowler 100 IT recruitment process that works Ticket / Issue / Incident is a running report on a particular problem, its status, and other relevant data within an issue tracking system, They are commonly created in a help desk or call center environment and almost always have a unique reference number, also known as case, issue or call log number which is used to allow the user or help staff to quickly locate, add to or communicate the status of the user’s issue or request. Read more: Wikipedia Architecture Architecture – in information technology (especially computers and more recently networks) architecture is a term applied to both the process and the outcome of thinking out and specifying overall structure, logical components, and logical interrelationships of a computer, its operating system and network. Read more: WhatIs.com API (Application Programming Interface) – set of definitions, protocols, schemas, tools and practices to communicate with the application. To developers, API is what Graphical User Interface is to users. It allows developers (and finally other applications) to communicate with applications. Read more: Wikipedia REST, (Representational State Transfer) is a set of guidelines for building web services providing interoperability between remote computers. It is focused on resources and basic operations (like editing, reading, adding) related to them. Commonly used to expose public API. Read more: Wikipedia SOAP – Simple Object Access Protocol is a way of exchanging structured information between computers. Compared to REST it’s more formal, less flexible and requires schema definition (WSDL). Read more: Wikipedia Monolith is an architecture style based on running on a single application layer that tends to bundle all the functionalities needed by the architecture together. To put it simply, it means being composed all in one piece. Monolithic software is designed to be self-contained; components of the program are interconnected and interdependent rather than loosely coupled as is the case with modular software programs. Furthermore, if any program component must be updated, the whole application has to be rewritten, whereas in modular applications, any separate module (such as a microservice) can be changed without affecting other parts of the program. Read more: WhatIs.com Distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages, appearing to its users as a single coherent system. The components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components. Read more: Wikipedia Service-oriented architecture (SOA) is a style of software design based on discrete software components (services) that collectively provide functionalities of larger software architecture. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. In this approach, services are provided to other components by application components, through a communication protocol over a network. Basic principles of service-oriented 101 IT recruitment process that works architecture are independent of vendors, products and technologies. Service-oriented architecture has been mainly used and focused on big enterprise scale. Read more: Wikipedia Microservices – a variant of the service-oriented architecture (SOA) architectural style. The idea behind microservices is that some types of applications become easier to build and maintain when they are broken down into smaller, composable pieces which work together. Each component is autonomous, developed separately, and the application is then simply the sum of its constituent components. This is in contrast to a traditional, “monolithic” application developed in one piece. Microservices style is used by many organizations (like Netflix, Uber, Facebook) today as a game changer to achieve high degree of agility, speed of delivery, and scale. Read more: Martin Fowler CRUD – acronym of Create, Read, Update, Delete. It describes a type of applications focused on simple data editing without any rich business operations. Colloquially called “database viewers”. Read more: Wikipedia Infrastructure Infrastructure refers to composite hardware, software, network resources and services required for the existence, operation and management of an enterprise IT environment. It allows an organization to deliver IT solutions and services to its employees, partners and/or customers and is usually internal to an organization and deployed within owned facilities. Cloud service is any service made available to users on demand via the Internet from cloud computing provider’s servers (i.g Microsoft Azure or Amazon Web Services) as opposed to being provided from a physical on-premises servers. Software as a Service (SaaS), sometimes referred to as “on-demand software”, is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is the most familiar form of cloud service for consumers. SaaS providers make the application available to users through the Internet, usually a browser-based interface. SaaS customers can enjoy the software without having to worry about development, maintenance, support, update, or backups. The downside, however, is that your software experience is wholly dependent on the SaaS provider, which is responsible for stability, reporting, billing, and security. SaaS examples: Gmail, Dropbox, Salesforce, or Netflix. Read more: Wikipedia Platform as a Service (PaaS) – is a category of cloud computing services. PaaS functions at a lower level than SaaS, typically providing a platform on which software can be developed and deployed. PaaS providers abstract much of the work of dealing with servers and give clients an environment in which the operating system and server software, as well as the underlying server hardware and network infrastructure are taken care of, leaving users free to focus on the business side of scalability, and the application development of their product or service. It allows customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. 102 IT recruitment process that works PaaS makes the development, testing, and deployment of applications quick, simple, and cost-effective. PaaS examples: Pivotal Cloud Foundry, Heroku. Read more: Wikipedia Infrastructure as a Service (IaaS) is the most basic cloud-service model offering computing infrastructure – virtual machines and other resources – as a service to subscribers. It’s a lower level compared to PaaS. Typically, IaaS provides hardware, storage, servers and data center space or network components. It allows to quickly scale up and down with demand and pay only for what you use. This makes IaaS well-suited for workloads that are temporary, experimental or change unexpectedly. IaaS examples: Amazon Web Services and its EC2. Read more: Wikipedia Automation – IT automation is the linking of disparate systems and software in such a way that they become self-acting or self-regulating. Read more: TechTarget.com Infrastructure as Code (IaC), also referred to as programmable infrastructure, means writing code (which can be done using a high level language or any descriptive language) to manage configurations and automate provisioning of infrastructure in addition to deployments. IaC is not only about writing scripts, it also involves using tested and proven software development practices that are already being used in application development, e.g. version control, testing, small deployments, use of design patterns etc. In short, this means you write code to provision and manage your server, in addition to automating processes. It’s an approach to managing IT infrastructure for the age of cloud, microservices and continuous delivery. Read more: ThoughtWorks Containers consist of an entire runtime environment: an application, plus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package. Containers are a solution to the problem of how to get software to run reliably when moved from one computing environment to another. This could be from a developer’s laptop to a test environment, from a staging environment into production, and perhaps from a physical machine in a data center to a virtual machine in private or public cloud. Read more: CIO Operating system is system software that manages computer hardware and software resources and provides common services for computer programs. All computer programs, excluding firmware, require an operating system to function. Examples: Microsoft Windows, macOS, Linux. Read more: Wikipedia Shell is an interface that enables the user to interact with a computer. It provides user interface for access to an operating system’s services. In general, operating system shells use either command-line interface (CLI) or graphical user interface (GUI), depending on a computer’s role and particular operation. The name comes from the fact that shells are layers around the operating system kernel. Read more: Wikipedia Metric – measurement of a particular characteristic of a program’s performance or efficiency. Log is a record of what has happened. Typically it helps diagnose problems or get certain insights on what is going on in an application’s life cycle. 103 104 IT recruitment process that works Conclusion Tech recruiters and developers are not on the best terms and there’s a reason for this state of affairs. Many tech recruiters don’t do their research, neglect the importance of industry reports, don’t follow influencers, and fail to personalize. They act like there’s still a surplus of talent and are surprised that the final outcome of their recruitment processes is far from ideal. In other words, they are oblivious to the challenges of modern IT recruitment. Because they lack important skills and knowledge, they go around sending bad outreach messages which further tarnishes our precious reputation. However, this can actually work to your advantage. If you educate yourself, know your data and use it, people you’re trying to recruit are going to notice and appreciate your work. Make sure you do all it takes to distance yourself from HR people sending vague emails with “a couple of cool opportunities” to developers who don’t even have the skills predefined in the job description. The next step to grow your career as a recruiter (and your company) is to get certified and start reaping benefits from what you’ve learned. Devskiller is a powerful tool for testing developers skills through programming tasks, with a strong focus on applied knowledge. It allows you to accelerate your tech hiring based on coding tests which mirror your candidate’s 1st day at work. Time to get serious. Get Tech Recruitment certified now and prove your value for the employer. Start hiring the best developers out there, every time. Get Certified devskiller.com Questions? Email us at hrcertification@devskiller.com