Why is Your Company Losing Money by not Open Sourcing: 1. Hiring
Did you miss my talk on PHPPrague 2018 Conference about this topic? Read this post.
As a PHP meetup organizer in the Czech Republic, I'm in contact with many companies and HR agencies that try to hire PHP developers. I used try because the most of them use old-school methods, boring job offers, employees benefits like meal vouchers, possibility to work from home for only 1 day a week. They often end-up in giving up or using body shopping of random programmers for huge amounts of money.
Honor exceptions like Veronika Hlaváčová, who goes to meetups with disruptive ideas and is doing great job in teaching this the HR world.
And you don't have to take my word for it. Do you know Github? It was founded in 2008 by 3 guys. One of them Tom Preston-Werner who wrote a post about investors vs. values in Optimize for Happiness and also Open Source (Almost) Everything. If you have only 5 minutes to read a post today, go read one of them instead. It's well of pure wisdom.
I found this post 2 weeks after my talk and I must say, I was surprised how many ideas I share with him. 7 years prior to my talk! Tom shares great insight on how to run a huge company while keeping human values in the center.
In this part we'll focus on the point where the companies I meet suffer the most - a hiring process. I think this is a big problem because they're not willing to accept it, which hurts both the company and developers.
Your company is growing and you get more project offers than your team can handle. You'd be actually losing profit if you had smaller team. Let's start hiring with HR!
And by HR mean I mean a person who can handle relationships a slightly better than the job they're hiring for.
You're skilled HR, so you prepare a job offer with a story about your company, list of benefits, that you're using PHP 7.1 and Symfony 4. You'd pay 2 most popular job advertisement websites to spread the job offer. If you're lucky and your programmers are proud of working at your company, they will share it on their Twitter accounts.
You'll collect over 50 replies from developers in 2 weeks period and you invite them to a job interview. You might ask them to make an entrance task (which will tell you nothing) that will be evaluated by one of your senior programmers and cost his time.
You'll pick top 20 people on the job interview and ask the senior programmer to join you. 30 minutes per each, you and the senior programmer → another cost for 10 hours of 2 people.
After some evaluation, you'll pick 2 developers to join your team on full-time. After only 30 minutes of spending time with them, where was probably no coding. And if there was some live coding on the interview - it really was waste of time, because programmer who can't work on their machine and they have to work in front of 2 people intensively watching them, they're not really in the best position to show their real skills.
Imagine you'd meet 20 girls for 30 minutes each
and then you'd decide to live with one of them the next week.
These 2 developers come to the work for their first week and they try to integrate to the team. Senior programmers found out they know much less then they told during the interview and have to teach them few skills in his paid working time. That way, the project is suffering.
In the end, you decide to pick 1 programmer because you have only 1 senior who can teach them and they have a very different skill set.
- Estimated HR hours: 20
- Estimated senior programmer hours: 60
- Estimated total costs: 10000 $
- The person hired: 1
- How much of this work can be automated next time: ~10 % (the job offer is already written)
You're a senior developer in your company and you have few open-sourced packages on Github. It's Selenium wrapper or set of the coding standard. You're looking for a very specific developer. The one that understands the code you write finds it interesting and clean but also looks for a code where he or she can learn new skills. So you won't post a general job offer anywhere, because you know that would only attract people looking for any PHP job.
What you're looking for a double match right from the beginning. A programmer wants you and you want a programmer. So instead of posting a job offer and paying agencies which knows nothing about your company culture nor your code level, you'll get straight to the source of people who already know you.
You go to your package on Github and open page with all the contributors. You know you need people that are active now, not years ago, so you limit only to last year or so.
You know these people are your focus group, because they know your code, you know them, they know how to contribute, they know git (obviously but not standard), your team accepted their solution to your code, so they will be much better colleagues than just anyone who knows PHP 7 and Symfony 4 and if they contributed twice and more, you know they're into you.
Then, your HR and you will prepare a short email to express your gratitude for their contributions, to praise their skills and to ask them if they're looking for a job. You'll send such post to 10 most active contributors you find.
4 of them will reply with interest and you'll invite them to the interview, with you and your HR. Thanks to the low number of contestants, you can spend 1 hour with them and invite them for a lunch to get to know them as a person. Because that who you'll be working with - a whole person - and you want to be sure you'll match each other.
You don't need to see any code, because you already know their level from merged pull-requests. Neither do they, because they can imagine your company code level from open-sourced packages. But you know your public and private code differs, so you'll show them part of private code anyway, just to be sure they're ok with it.
After these 4 hours, you'll mutually 2 developers that you'll hire for a full-time. You know their level well at that moment, no surprises here.
In the end, you decide to pick 1 programmer because neither this process is ideal.
- Estimated HR hours: 4
- Estimated senior programmer hours: 6
- Estimated total costs: 2000 $
- The person hired: 1
- How much of this work can be automated next time: ~80 %
So, how much money is your company losing by not open-sourcing?
The B. process is not ideal if you're doing the first time, because there are a lot of new things to learn. But I think your HR can handle it and get there on the 3rd round.
Have you tried something similar to open hiring? And what are your proven practice to get the best colleagues? Let me know in the comments.