Culture over skill
In my experience, the hungry minds with a positive attitude far outshine the technical mercenaries over the long term.
Why hiring is so hard
Hiring is hard. Finding the right people at the right price is hard. How do you find the best teammates?
Hiring, like looking for any relationship, is hard for several reasons:
- You generally are trying to gather data over a short period of time to evaluate a person in the round and ideally over a long period of time.
- It's typically in the best interests of the object of your evaluation to put their best face forward. Nobody wants to show you the skeletons in their closet, ever, let alone during an interview process.
- People change over time. As much as we may try to refrain, it's actually quite difficult to prevent life from having an impact on work.
- The best talent can often be quite expensive.
Treating culture as a talent
Like almost any other profession, there is a serious interaction effect on overall productivity that occurs between the skill level and worth ethic of each team member as individuals as well as an emergent "team factor" that inevitably arises out of any group of people working together on anything over a lengthy period of time.
I would argue that the team factor actually plays a much larger part to play than what many teams realize.
To create a successful team, you ideally want people with at least some shared interest: it could be anything from "let's make this product great together" to "I'm not a boomer but gee I really love punk rock". Anything that people can bond over is essential. When your average software dev is an introvert, and particularly when operating in a remote culture, gravity seems to pull us all into isolation, into making the minimum possible contribution to the team in order to protect their own time and feelings.
It's a natural but insidious phenomenon.
What to do about it
As a person in a leadership role, it is your responsibility to ensure that every single member of your team knows that somebody cares about them. That they matter. That there are people they work with (at least you, but ideally not just you) who are watching out for their careers and for their happiness.
This fountain of goodwill must be genuine. If it's not, it'll taste like spoiled tap water and be dead obvious from a mile a way and won't help at all.
The financial angle
This "culture first" mindset is superior from a purely business / financial sense as well.
Like many professions, a software engineer's overall output increases exponentially with seniority. Mind you, I'm not talking seniority in terms of age or title, but rather in terms of actual mastery of the craft of writing code. What may take an rookie a quarter to acheive can probably be done in a month by a long-running amateur, a week by a journeyman, and only a day or two by a master.
While output increases exponentially with skill, it's often the case that compensation does not. Over a 5-year period, an engineer may double their output while only getting paid 20% more, for example.
The real opporunity lies where you can 1) hire a dev before they hit their productivity inflection point, and 2) level up that employee quickly because your team is efficient at sharing knowledge and best practices.
This second point only comes into effect if you have a solid team, and particularly if devs are comfortable being vulnerable with each other.
Which only happens if your devs play nicely with each other.
Conclusion
Perhaps in another article I will share my views on what the different componentsof personality traits and skill levels make the best team.
But for now, suffice it to say that I will always prefer culture over skill.