Developer farming for fun and profit
There are a lot of articles being written about:
- Gen Z loving to switch jobs
- The Great Resignation
- The talent shortage in tech
- How all of these things combined make hiring in tech hard
This is not one of those articles.
A brief history of software developer head hunting
This article approaches the talent shortage from a different angle.
I do not believe that it’s about hiring bonuses, “Golden Hellos”, or other perks. The companies with the best talent pools–the ones that aren’t experiencing a hit because of the Great Resignation–are the companies that invest for the long-haul. If you aren’t willing to solve the problem in the long-term, you will forever be playing whack-a-mole.
I started programming in 1985. Back then, pre-Internet, there wasn’t a huge demand for developers. When the Internet came along, things changed. Those of us that moved from “traditional” programming to “Web applications” began to see that there weren’t a lot of people in the field. The result was that as “Bubble 1” grew, developers that could make the Web do things could write their own ticket.
Sadly, Bubble 1 did not last long–just a couple of years. After that, everyone expected a glut of talented developers to be on the market and salaries to drop. As it turned out, that didn’t happen. Demand for developers leveled off, but it didn’t dip. It only leveled off for a year or so before companies began to realize that there were still markets out there that could be developed.
Since then, software development has survived Bubble 2, the economic crash of 2008, and COVID. In each of those “economic downturns”, software development–and specifically, developers–came through largely unscathed. Throughout all of them, demand for new developers has vacillated between steady demand and a talent war.
Since demand has not slacked off, and it doesn’t look like it will any time soon, companies need to start looking beyond the traditional head-hunting techniques, large bonuses, and silly perks to get the developer talent they need to get the job done.
DISCLAIMER: If you plan on being out of business in less than 2 years, ignore this strategy, and keep doing what you are doing. This is a long-term plan.
Everybody else, keep reading.
Train your seniors to farm
Anyone can be a gardener, but only those serious about it are farmers.
Step 1 in this plan is to invest in your senior developers. They know how to code, and they know your application. Now, you need to add the secret ingredient that will activate them and turn them into developer farmers: You need to teach them to mentor.
Your seniors control your team, whether you want them to or not. Your mid-level and junior developers take their cues from your seniors, go to them for help, and often talk to them about things that they wouldn’t talk to you about. Senior developers already have the trust of your team.
You need to teach them how to mentor. This may just be investing in a book for each of them and organizing a book club for a few weeks to discuss what you’ve learned. It may mean you hire a training company to deliver mentoring training. Whatever it takes, each of your senior developers needs to understand that they not only have the tools, but the responsibility to be a mentor to junior developers.
If you want to get your next senior developers up to speed and ready to be promoted, bring your mid-level developers in on the mentoring training. It’s not yet part of their job, but if they are trained and able to see the seniors actively doing it, it will set the expectation.
Start planting the seeds
Now that you have seniors that are ready and willing mentors, you can start bringing on junior developers. For every senior developer you have, bring on one junior developer. You still want your senior developers to be productive members of the team.
Carefully screen your junior applicants. You want the ones that are eager to learn. Not every junior developer will flourish in this type of environment. Find the ones that have a little bit of experience in programming and want more. Lack of professional experience should not be a serious deterrent at this point, since you are planning on teaching and mentoring them.
Consistently cultivate your new garden
You won’t make the right decision every time. You will most likely have senior developers that can’t or won’t participate. That’s fine. You can’t force mentoring. That having been said, if you have someone who refuses to participate in a program this important, it’s probably time to talk with them about their long-term plans.
You will also find that there will be juniors that looked good in the interview but just aren’t cutting it. It happens. My favorite ones are those that recognize this within themselves and choose to leave the company before their probation period is over.
As far as the others are concerned; that’s why we have a six-month probation period for any junior developer. It gives you the chance to help them find better opportunities as it becomes clear that being on your team isn’t their best fit.
What to do if you don’t have the seniors in place
This plan assumes that you have senior developers on your team that you can begin spinning up as mentors and farmers. If you don’t, all is not lost. You just need help getting started.
Gun.io can help you find the exact senior developers you need to get your project moving forward and help get you ready to plant the seeds and grow your own team, in-house.
Wrap up
For as long as I have been a developer, many companies have had the wrong mindset about hiring. We need to stop “hunting” and start “growing” developers. Maybe “cube farm” isn’t the derogatory term that it’s made out to be.
Maybe, if we plant a person and fertilize them liberally with training, mentoring, and the freedom to fail, we can grow the developers we need.
Then, maybe–just maybe–we can get our projects completed while preparing to plant the next crop.
Invest in budding talent, and reap what you sow.
Interested in working with Gun.io? We specialize in helping engineers hire (and get hired by) the best minds in software development.