I saw this tweet the other day and it made me sad.
Alegarciy 🇨🇷 SWE looking for internshipJunior tech question of the topic of "Gatekeeping": 🌈🧙♂️
Sometimes there are people that behave in a Gatekeeping manner, for example:
A) Not passing the knowledge they possess
B) Believing that advanced stuff is just for a selected few
My solution 👇
#TechNewbieTips02:28 AM - 30 Jul 2021
Development is a team sport
Unless you are flying solo like Marco Arment on Overcast or David Smith with his many wonderful apps, then chances are you will be working as part of a team. As is common in a team there are people with varying experience levels and skills. For the team to work at its best, knowledge needs to be shared.
Sadly, some team members choose to indulge in "Empire Building" where rather than share their skills and knowledge they would rather become vital. The hero. The only person with enough knowledge in certain areas that can fix issues.
These people don't like to share.
They were probably the kid in kindergarten who hid the red fire truck at the end of every recess so that only they got to play with it.
Before talking about how to avoid becoming a gate keeper I want to speculate on why some people so readily indulge in this behaviour and why, from their point of view, it is reasonable.
You see, these people are terrified of being replaced.
They are scared that new people coming in will know more, work harder and cheaper than them, so they build a little empire of secrets and infrastructure that only they understand. They are protecting for downside risk and in doing so a reinforcing side effect kicks in that solidifies their belief that they are just a new hire away from obsolescence .... they never get promoted.
The reason they never get promoted is because they are made themselves too important in one area and are quite literally irreplaceable. The problem with being irreplaceable is that they are also un-promotable, so they fall into this toxic positive feedback loop where they feel more vulnerable to they hoard more which makes them less likely to be promoted reaffirming their fears. They have protected themselves from downside risk so well that they have entirely removed all upside risk, they trapped themselves.
They have become the gate keeper that @alegarciy talks about above.
While being un-fireable might sound great, the reality is less so, as highlighted. So, how do you avoid becoming so yourself?
- Remember that a key part of being a senior developer is getting the most out of other members of the team, you should be a multiplying factor. A force for good. So get used to this from early on. Openly explain your code to other people, grab 10 minutes with someone during a piece of work and tell them what you're doing, ask for their thoughts. Get used to being open about your code.
- Invite people from other teams to review your code. We all fall into the trap of inviting the same few people to review our pull requests. Break the pattern once in a while and add someone new to the mix. They will be exposed to more of what other teams are doing and you will get fresh input.
- Write documentation. I know it's dull but it's vital for a healthy team and codebase. Docs increases organisational knowledge, reduces your inbound requests for help and improves your communication skills. It can even catch bugs because it forces you to look at your code from a new perspective.
- Stay up to date. This doesn't mean doing 10 Udemy courses a year but at least keep abreast of new frameworks and carve out some time each year to try a new technology in work or as a side project. This will keep you employable and stop that fear of "being replaced" building up.
The trend here is transparency. If you are transparent and proud of your work you will beat back the negative, gate keeper tendencies that can build as you move through your career.
Let your code thrive in an open museum, not locked away in a private collection.