Thought on hiring and career planning in application to software development.
Skills for sale
Imagine you can somehow measure your skills as you measure your weight.
In reality, of course, a single number doesn’t catch the multitude of nuances of your traits. An area can become a better representation of your skills. We usually call it “area of my expertise.” I call it amoeba to emphasize that it’s a living creature. It’s moving and growing.
When you apply for a job, though, the recruiter is not interested in the full set of your skills. What matters for them is the intersection between skills and the team stack.
The inconvenient truth is that when you apply for a job, you sell yourself for a discount. The more you know, and the less the overlap between what you know and what the team can utilize now or in the foreseeable future, the bigger the discount is.
On the hiring side, there is another common misconception. Imagine someone who worked with the team for a long time and grew with it. Such old-timers fit the team stack perfectly. As a result, they develop a false feeling of knowing everything that matters.These persons become obnoxious interviewers; they look for no less than a perfect match and can’t see beyond their own area of expertise. They are arrogant. They look for no less than 100% match, and they are disappointed in the entire world. “People are so stupid these days,” they think.
Alignments inside the team
To further expand the idea, I allow myself to simplify the model even more and represent your skills with a 2D-vector, an arrow on a plane.
A team stack can also be represented as a vector. We can visualize your effective skills as a projection of your vector to the vector of the team direction.
Suppose you are a Python developer proficient in Django and PostgreSQL. When you join the team that uses Flask with MongoDB, you can count on some of your skills to be applied in the new environment, but some others become obsolete.
The picture above is a graphical interpretation of the idea that alignment matters. The better your technical stack is aligned with your forthcoming team’s stack, the more valuable your knowledge becomes in the new context.
The same applies to non-technical skills and value alignment. For example, if you came to a remote-first company from an environment where you never worked remotely, a significant share of your communication skills becomes obsolete. What was natural there, is impossible here.
You can find out that someone can have negative effective skills. It’s a person who, willingly or not, undermines the team’s work by neglecting the workflows or destroying the team morale otherwise.
Dynamics of the alignment
When a newcomer with a misaligned skill arrow joins the team, inevitably, they start two processes.
First, they start growing their arrow in the direction of the team stack. While doing so, a newcomer can be way out of their comfort zone, especially when the misalignment is large and the area to grow is huge. It is beneficial for the person, as long as the advancement is sustainable and the amount of stress is not overwhelming.
Getting back to the question of selling for a discount. If your goal is personal or professional growth, then joining a misaligned team can be a great deal for you too. As you develop new skills, your compensation matches the new reality, and a newly acquired knowledge is yours forever.
Second, they start changing the environment by moving the team towards their skillset. For the team, it can be harmful or useful. I lean towards thinking that it is usually beneficial in the long-run but brings more pain in the short-term. Moving the team arrow can mean questioning best practices. The team may learn that they are at a local maximum. It can bring new technology to the table and help the team adopt it.
On the other hand, there is no good in questioning all the basic assumptions every time a new talent joins the organization. This practice creates friction, pushes people out of their comfort zone, and if applied too often or too aggressively, results in anxiety, and affects team morale.
A manager must recognize it and keep both processes under control, fostering the desired dynamics and suppressing harmful consequences.
Fragility of strong alignment
There is a flipside of strong alignment that I would like to specifically outline. Imagine you have an almost perfectly aligned team, as shown below. We can guess the team utilizes its potential very efficiently.
As in the second picture below, the company has to pivot due to a change in the market. The team stack has shifted 45° Suddenly, the team became unprepared for the change, and its cumulative effective skills got reduced by half.
If you read the book “Antifragile” by Nassim Taleb, this hyper-aligned team can serve as a perfect example of fragility. It works fine as long as the environment is stable but crumbles under the changes. An alternative configuration where members are not perfectly aligned and the team has a certain level of redundancy.
If you think of the environment in which teams and companies operate, creating multiple hyper-alignment fragile groups can benefit big corps. In contrast, small companies and startups would have higher chances to survive with teams that are not perfectly aligned.
As another example, the current pandemic and moving to work from home shows how the communication and the culture of some teams fall apart after such a dramatic shift, while some others managed to minimize the damage.
Let’s finally admit that it is impossible to fit the entirety of a human being, joining a company into the Procrustean bed of a single number. Admitting this, let’s extend the model. Instead of measuring the overall score, let’s calculate the score by each of the core skills and values independently. The projection of each of the skills to the team’s vector is the effective score in each category.
We can visualize where we are, according to our team estimations, with a radar chart.
It looks like another amoeba. I call it a “meta-amoeba” because it’s built from multiple tiny creatures and their intersections with team stack. This meta-amoeba is not moving and only growing into the directions of its axes.
In the context of recruiting, we have a particular area of team expectations, sort of a necessary minimum that allows you to work effectively. The candidate is hireable if the area of team expectations lays inside the meta-amoeba of their skills.
The picture above represents a candidate that doesn’t seem to be hireable – software architecture skills are not enough.
Finally, a few words about the meta-amoeba evolution: if you work in a company long enough and the company is actively growing, there’s no doubt the required skill set will evolve and shapes the size of your meta-amoeba. In a small company, you start as a more “well-rounded” jack of all trades. With time, and depending on how you decide to turn your career, your meta-amoeba will probably become more stretched in one or another direction, grow new legs or lose some.
As long as its growth is under your control, and you love what you are doing, you are fine. Worse if you find yourself with a meta-amoeba that is either frozen or stretched in a position that you don’t like.
Beyond amoebae and vectors
The models above were born from my attempt to explore the complexity of human relationships in the team. To fit this in my head, I mapped these relationships (abstract concepts) into geometrical figures (concrete representation). Now, I can think of human behavior in terms of lines and arrows.
It turns out to be a helpful exercise, but it goes with a caveat. The mapping is arbitrary; there is no inherent relationship between geometry and human behavior. As soon as I feel like I am stretching my amoebae and vectors too far, I throw them away and get back to square one.