Agile vs Waterfall is obvious for projects, but what about hiring?

We all know the downfalls of hiring contractors through freelance websites — Language barriers, different timezones, cultural differences, miscommunications and the list goes on and on. But there are a lot of upsides to this model and I’d like to focus on one that’s usually overlooked — the agile recruitment process.

Can you hear the thundering crash?

Let’s start with what most people would probably call the “regular/only” way to hire people, what I’ll call here the “Waterfall recruitment process”.

Step 1: Write a job description — You need to really go overboard on this one, as you’re looking for an important resource in your company. The description has to be accurate and define a long term engagement.

Step 2: Promote the job opportunity — This is not as simple as it seems. Sometimes the job market is full of opportunities and recruiting is hard. Usually you’d work with an agency spending big bucks on each match.

Step 3: Start screening applicants according to resumes/references — No matter how specific you are, you get dozens of resumes that are not in the least relevant. You look at the inbox with disdain and wish for better days when an agency would actually provide the right employees and not everyone they ever encountered.

Step 4: Invite prominent applicants to an exhaustive, resource wasting process of interviews and testing — Each employee needs to be interviewed by HR, technical, management and some testing. Even if you’re only letting ten potential hires into this funnel, you’re talking about 30–50 hours of your valuable employees time being used up for hopefully one hire.

Step 5: Negotiate terms and Congratulations! You’re hired!

So why do I call this the “waterfall”? The answer is simple, because it’s an all or none process. Assuming you are looking for a long term employee, you are committing to a long term relationship with someone you’ve probably spent less than 2–3 hours in the same room together. You’ve probably given them a test which, let’s face it, doesn’t really account for more than screening out the really bad employees. Also, you’ve probably asked them verbatim questions that they have prepared answers for. (did anyone say “describe your biggest weakness? I’m a perfectionist.”)

So let’s be honest, you know close to nothing about this person. If you disagree then ask yourself this question — would you agree to enter a serious relationship (for instance, move in with a romantic partner) based on this amount of due diligence? Or if that metaphor doesn’t work for you, would you trust this new employee of yours with a suitcase with $100K in it? Because that’s essentially what you’re doing — spending a large amount of money on recruitment, salary, training and potential damages this employee may cause.

So how does agile apply to recruitment?

Now let’s dive into what I call the “agile” recruitment process:

Step 1: Write a job description — While it’s a similar step, it’s a much smaller one- You’re not committing forever, just generally throwing out there what you’d like to see in your employee.

Step 2: Promote the job opportunity — So this can be a bit more labor intensive. If you’re new to an online freelance website, and don’t have much of a recruitment history, you might have to go looking for applicants. After spending some money and getting positive reviews from employees, you’ll see that once you publish a job opportunity, the applicants will start pouring in.

Step 3: Start screening applicants — This is where the magic really begins. Applicants in freelance sites are used to a much more rigorous screening process. For instance, try asking a question that’s real easy for anyone capable to answer but will not be obvious for someone completely unrelated to the job. An example for a techie might be “When applying please state what is the name of the package manager used in node.js” (The answer is npm for all you non geeks out there.). While this question is a no brainer for even the most junior js developer, it screens out all the annoying applicants who just spread their offers without even reading the description.

Step 4: Immediately hire several applicants to work on micro tasks — Remember when I said the magic really began in step 3? Well, I was exaggerating. Not because the differences aren’t awesome for step 3, but step 4 will blow your mind. First, create really small issues. I mean tiny. For instance, I once created a task to go over 200–300 lines of code, find any use of email and make sure it’s lowercased. Yep, that small. How many should you hire? A lot! Hire anyone with a high ranking, suitable price and good communication skills when applying. Even if you hire 10–15 people for $20/hr on average, we’re talking about $200–$300, a trivial amount for recruiting a long term employee. Of those 10–15, you’ll probably want to keep working with 3–5 more. Keep those and start increasing the complexity of the tasks. Make sure you that even the harder/longer tasks are ones that you could check at a glance (no more than a minute or two of your time per hour of work for them).

Step 5: Smoothly transition to full-time employment — By now you probably have 2–3 favorites if not just one employee that you’d like to continue with. Now it’s go time. It’s been a week or two, the freelancer has completed a dozen or so issues, you’ve seen how it is to communicate, how much time it takes you to manage the employee for trivial issues you could easily do yourself. It’s time to pick up the pace. Ask your employee to devote 20–25 hours a week, if not full time, and start having daily voice/video conversations. Start investing in teaching your employee the grander picture and give them issues that would take you a while as well. Ask them to communicate with you over any questions and problems they encounter. Start investing in them as you would in a long-term employee you plan to keep, but remember to do it gradually. If you need tips on how to get the most out of your employees, read this post that covers a few pointers.

Step 6: Make sure the employee is a keeper — So it’s been about a month. You’ve got a great employee that does anything you ask. That may be exactly what you want, or maybe you’d like a leader. If that’s the case, I suggest having a conversation about a high-level task you need completed, something that would take a few days, maybe even a couple of weeks. Ask the employee to devote time to writing a plan on how to handle this high-level issue (break it up into sub-tasks etc…). Tell them to take their time and assure them that there’ll be a few iterations and they don’t have to get it right the first time. Keep on having video/voice conversations at least once a day if not more over the next few days. Now you know if this employee can lead a high level complex issue.

Step 7: You’re hired! — Congratulations! now you have an employee you really know and would like to hire. Have an honest conversation about how they feel working for you, what you like and what could be improved. The funny thing is, you never actually hired them, you just magically transitioned into the “working together” mode. Sort of like dating, getting to know a good friend or any other natural process.

To sum it all up, we’ve seen that the normal way of hiring people is stressful, wasteful and unnatural. Using online freelancers, you have the ability to completely change it up and have a smooth transition from strangers to co-workers. This method should not be limited to that medium. I have actually offered this process to several employers over the years, something I nicknamed “a mutual dating period” and have been lucky to have several agree. We usually start with working part time for a week or two, slowly transition to full time for a month or two and finally after a couple of months have an honest discussion about how it’s working for all parties concerned.

I love this way of hiring and being hired and aim to continue perfecting it. As an advancing manager and not an advanced manager, I would love to hear you thoughts and experiences about this matter.