So what does it mean to be ready to leave all the time? It means “making yourself replaceable”; “Humiliate yourself”; “Automate your work.” You may have heard these more popular shortcuts (and you will need to sort it out and figure out what it is), and they give you a hint on what to do.
The key is NOT to be irreplaceable. If you are irreplaceable, then you will be stuck in your specific job as long as that job is relevant, with very little opportunity to take a break (no vacations, no growth). And when (not if) the work becomes unnecessary, your position will also become unnecessary.
Paradoxically, by being easily replaceable, you set yourself free. You make it easier for yourself to transition to a higher-level role and it is easier for you to change the projects you are working on. Do not agree? Confused? Here are 10 specific things you can do:
- Document your knowledge. Every time someone asks you a question, they underline a gap in the documentation. Take the opportunity to write down the answer (in a document, bug report, code comments – anywhere) so that the next person doesn’t need YOU.
- Document your long term plans. People need to know what’s going on in your projects and / or team by looking at these plans, rather than relying on you to tell them “in real time”. Plan several months ahead so that if you leave, your peers won’t get lost from day one.
- Document your appointments. Take notes (publicly, within the team) of all the meetings you attend, listing who was there, what was discussed, and any conclusions. Refer to these notes from the project documentation. Whoever comes to your place will need it to catch up.
- Bring others to meetings. If this is not a 1v1 meeting and you are the only person on your team attending the meeting, bring in someone else. Different points of view are helpful, but more importantly, you avoid becoming a single point of contact.
- Upgrade people near you. The goal is for them to be independent (which is usually considered “seniority” on a typical engineering ladder). Familiarize them with the plans and technologies and make sure they know how to use the documentation.
- Pick a replacement person and train them. In the same vein as teaching others, you will need to find substitutes for yourself to switch roles. Determine who can replace you and actively and continuously train them.
- Give power to people. Trust that they will do the right thing. If you are in a leadership position, do not have people come to you for permission. Let them make their own choices. Guide them in such a way that their selection is based on the correct data.
- Don’t make yourself a key link. Create mailing lists or other forms of communication that can accommodate other people, and then expand those groups. (The exception is when management needs names to be accountable.)
- Delegate. Once you give authority to others, include them in groups and meetings, and document your knowledge, they will be ready to accept work from you. Delegate work that can make them grow and focus on what only you can do.
- Learn continuously. Take the chance to expand your knowledge in any field that interests you and keep having fun. Bonus for you if this area coincides with your future project.
Please note that nothing here is intended to be a disclaimer. You still have to be responsible for all projects and teams that you own, and you must be responsible for as long as you are in your role. This is important because it is this responsibility that will open new gates.
Finally, note that by doing all of the above, you are actively improving your entire team, not just yourself, even if you are an individual contributor. You are actually practicing a subset of skills sometimes associated with boss / subordinate + engineers.