Flask on AWS Serverless: A learning journey - Part 2
About 3 years ago I learnt some basic Python, which I've used almost exclusively to
I've been through my fair share of job hunting. Perhaps too often. But I know enough of the job finding and hiring process to know that it is broken, and desperately needs fixing. This post is a pet peeve, that's been brewing for a number of years. My biggest gripe is that it takes far too long, for both sides:
For the potential employee, it takes a minimum of two months.
For the employer, its at least double that.
The basics of the hiring process is as follows:
A department in Company A realises it is taking strain - the workload is too much for the current amount of staff. Most of the time it is purely reactive like when there has been some turnover of current staff, or possibly sometimes there is demand planning done at the start of the financial year, or when a new strategy or operating model is released.
Department looks at its budget, and realises it can hire x amount of people, at y (junior, middle management, senior) different levels. They agree this with HR.
The hiring manager writes up the specs of the positions. Most of the time he copies it from the spec that currently exist (maybe from the spec that was published when they hired him 10 years), and modifies it a bit. It contains heavy company lingo, with some industry nomenclature. If he has the time, he might Google a bit to see what everybody is using to hire.
The job spec gets sent to HR. Some review takes place, approvals, and sign-offs.
HR release the spec on their internal job board, and maybe concurrently on their external job portal, and to any recruitment agencies that they normally use (about five). A closing date is set about three weeks in the future
After the closing date, there are about two hundred applications. HR easily dispose of most of them, either by guessing, key work scanning, and just plain luck.
About ten CV's/applications are sent to the hiring manager. He selects about five to interview. HR contacts them to set up interviews, or asks the recruitment agencies to contact the applications. Since the recruitment agency is a just a delayed man-in-the-middle, this will take atleast a week.
Depending on Companies A recruitment policies, there will be about two to four rounds of interviews, with these stakeholders: HR, hiring manager, co-workers, senior manager and finally with an executive/partner. It will consist of standard HR questions (tell me about your greatest weakness), technical questions (tell me what happens when you click search on google), psychometric tests, brain teasers (why is a manhole cover round) or just plain ludicrous (hands candidate a rubik's cube, holds a timer, and says "GO!")
Each round of interview needs to be scheduled (1 week)
Conduct all interviews with the five candidates (2 weeks)
Review each candidate with go/no-go (2 weeks)
Rinse and repeat for each round
After the final round, you have a one or two candidates left. You make an offer to the best one.
Only now does the candidate get to see the financials. If he accepts, he starts to serve his notice period. If he rejects, you hopefully have the other candidate waiting.
Notice/resignation period can be anything from 30 days to a calender month (which could last almost two months)
In South Africa, a large consulting firm (which globally hires 60K people annually) realised that it needs to double its workforce by 2015. Thats not even taking into account doing work offshore / near shore and bringing in cheaper labour (thats the Indians!). An expert recruiter told them that the SA workforce simply cannot support and deliver that amount of candidates. Considering that other companies are also increasing the workforce (except for Cell C still handing out letters), the demand is not sustainable. Add BEE, ridiculous recruitment times, un-managed resignations - and you can see that the situation is even worse.
Personally, I've found jobs via both recruitment agencies and direct applications. In 2005 I responded to a job post in The Star newspaper via fax (old school), twice via recruitment agencies, and recently via LinkedIn. My recent experience lasted 7 months: I went for my first interview in November, and I start the new job in June. Most of the times I had received multiple offers, so I had the luxury of choosing the best. The longer the recruiting process, the bigger the potential to lose good talent to the competition. Thats why its even more important for companies to implement a more agile way of recruitment, to ensure that they can effectively compete in the job market. In some cases, if I was lucky to get my timing correctly, at the end of the process I had two or more offers to choose from. And in some cases, I had to accept an offer from one company, while the other companies offer came a week later, and I had to politely let them down.
We need more that just LinkedIn Recruit or Stackoverflow Careers. We need more that just better tools - what we really need is a culture and mindset change. Companies cannot simply rely on their popularity and size in order to attract talent - they need to actively seek it out. They need to understand that talent is a scarce resource, and they are operating in a competitive environment. For every person that is invited for an interview at Company A, he is probably also going through the recruitment process at two or three other companies. Considering that SA is an emerging market, the demand in IT, (specifically in the Communications and Technology industries) is more than the supply pool can handle. Companies need to actively source talent in a fast and efficient way. But perhaps the biggest thing that holds them back, is the risk. The risk of making the wrong decision and hiring the wrong guy. But even now, with the three to seven rounds of interviews that candidates have to go through, the wrong guys still get hired. And its not about hiring a guy with the wrong skill set t. Its easy enough to weed out the posers. What is harder is to find people with the same cultural fit, to make sure you don't hire a manage-by-excel guy. And with South African labour law, its almost impossible to fire someone. So I get it: its difficult to find the right people. But surely the risk of being understaffed is greater, and every extra day that you take looking for good talent, you are losing them to other companies.
The long recruitment timeline needs to be drastically cut. I am suggesting a faster way of running the interviews: at the moment, candidates go back and forth for each round of interview. They attend interviews during their lunch breaks, or they might even take a half-day leave. Assuming that each company has three rounds of interviews, and that the candidate is being interviewed by at least three companies, thats atleast nine rounds of interviews that he will attend. From each companies perspective - if they start off with five candidates for round 1, three for round two, and 1 for the last round, thats 9 interviews that HR needs to schedule. Considering that you need open slots in the each stakeholders diary, and in each candidates diary, you can easily see why this takes at least a few months.
What I am suggesting is a bit radical: we schedule ALL rounds with ALL candidates in a single day, or maybe even over a few days, but definitely within a week. At the end, you have a final list that you can make an offer to. Lets go through it:
Consider Department B in Company A is hiring for a single position. After HR sifts through the initial applications, the hiring manager invites five people for interviews. (Important point: at this stage, the people that are invited to attend interviews are already potential candidates. That means you've already weeded out the obvious no-gos, and that the selected ones possess the required skills, experience, etc on their CVs. The interviews now are really to confirm what is on their CVs, and to ascertain the culture fit). The candidates are advised that they take leave for a whole day. This should be individual one-on-one interviews with each candidate, but it could also include grouping candidates together to make things go faster. HR then books the following on the scheduled day:
The above can perhaps be done over two days, if the list of initial candidates is large, perhaps with different groups on different days. The benefits of this technique is:
Now this potentially poses a challenge to current recruitment agencies. But they can use this to their advantage They can handle all of the scheduling of interviews with the candidates. They might even use their premises, which could be ideally set up to cater for enough seating and activities to keep candidates busy for the day. They could even make it into a recruitment fair: by inviting a few companies to interview at the same time. The HR and hiring managers of each company could attend, choose which candidates they want to interview, and then make their decisions. Its fair game!
I agree that this alone is not enough to change current conditions. We need better tools as well. Most companies use Taleo as their internal job board, which is ugly and difficult to use. Candidates have to register their profiles on each companies site, and setup automatic notices or remember to check back often to see if there is an opening. LinkedIn has only partially solved this. Recruitment agencies seem to rely purely on online tools such as Careerweb and CareerJunction, which leaves much to be desired.
We need the Agile for Hiring!
Some related links:
Hire by auditions: http://blogs.hbr.org/2014/01/hire-by-auditions-not-resumes/?utm_content=buffer638c3&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer#!
And webrtc gives the recuiter the ability to interview without even having the candidate on-site. That will save weeks in terms of time
And this may help: http://www.entelo.com/