Gatekeeping is a common term in the Software Development industry and depending on whom you ask it can have positive or negative connotations.
I thought it would be a fun exercise to define what this term means to me, so without further ado, what is a gatekeeper and what does gatekeeping even mean?
For our discussion I will define a gatekeeper as:
a person or group who controls access to something, be it a project, process or even something abstract like a company’s culture
Individuals usually end up in the position of a gatekeeper due to context (time on a project), seniority (technical expertise) or due to owning rights (project creator). In broader terms everyone is a gatekeeper. For example, you decide who or what goes into your own house.
Becoming a gatekeeper can also happen organically. When an employee is the only person remaining in the company that tackled a particular project they become a gatekeeper by default until another team can build the necessary context to run that project.
I like to think of the act of gatekeeping as a funnel that starts with a broad set of inputs and only a subset of those make it to the end of the funnel and get incorporated into the resource being overlooked by gatekeepers.
Input might be dropped due to a lack of alignment with the project vision, poor code quality or simply a lack of time. All according to the gatekeepers’ opinion, of course.
Given that, what can be considered positive or negative gatekeeping?
Positive gatekeeping happens when gatekeepers are able to share context, knowledge and align other contributors towards their vision. Over the long term the friction with the remaining contributors decreases since the overall context is increasing.
Successful open source projects are a good example of positive gatekeeping since creators are able to share their vision and knowledge. The consequence is that new maintainers and core contributors end up joining and a community is formed around the project. This is reflected through good documentation, onboarding experience, tooling and a consistent codebase.
It’s important to mention that we are trading higher friction upfront for lower friction in the long run and doing so at scale is increasingly hard.
Every developer has experienced negative gatekeeping at some point in their career. You might remember it as a senior developer blocking your work but not sharing their knowledge and helping you get better at your craft, or leaders pushing decisions from the top without sharing their vision or hearing your input.
Negative gatekeeping trades lower friction upfront for higher friction in the long run. It’s easier for gatekeepers to do something themselves since they already have the context, but coworkers or contributors will keep depending on them for every other task that requires the same context. This will have negative consequences as time goes on.
Gatekeepers will burn out due to the sheer amount of demand for their attention, while coworkers/contributors will feel frustrated that they are not improving their craft or being heard. Both scenarios will leave the company in a worse place and as a leader you should pay special attention to the kind of gatekeeping that is happening around you and your team.
Leadership and gatekeeping
I don’t see leadership being discussed as much in the context of gatekeeping, but a lot of problems can be framed in this context.
- Knowledge silos due to lack of context sharing
- Team velocity since gatekeepers are bottlenecks
- Lack of individual growth due to poor mentorship
- Amount of bugs, again due to a lack of context sharing
- Team member turnover due to burnouts
As a leader it’s important to pay special attention to the type of gatekeeping that is happening around you (and by you). Sometimes just becoming aware of the situation is enough to promote change. Below is a non-exhaustive list of things that have worked for me in the past in no particular order:
- Recognizing team members for good mentorship skills
- Celebrating thorough documentation
- Publishing project updates
- Creating spaces for knowledge sharing like dedicated slack channels or meetings
- Making clear what vision and goals we have for a team or projects
What else has worked for you before?
Gatekeeping can be either positive or negative, pay attention of which one you are promoting on a daily basis. It can be tempting to be the person “holding the knowledge”, the person that people depend on for their daily tasks. Fight that urge, you are stiffling your team’s growth and spending time gatekeeping them when you could be sharing your knowledge and making time to learn something entirely new.
Software development is not a zero-sum game.