DEV Community

Cover image for Career Advice: Work Yourself Out of Your Job
Lorenzo Pasqualis
Lorenzo Pasqualis

Posted on • Updated on • Originally published at coderhood.com

Career Advice: Work Yourself Out of Your Job

This post was first published on CoderHood as Career Advice: Work Yourself Out of Your Job. CoderHood is a blog dedicated to the human dimension of software engineering.

Not all software developers are interested in being promoted to higher levels in the ranks of an organization. Climbing the career ladder can be a risky and scary move. If you are not ready for it, you might land in a position that you are not qualified to take. Unless you have a good mentor, promotions can be daunting.

Most software developers I know want to code; that is what they love to do, and what makes them happy. Higher level system architecture, technical leadership or management are not for everyone. However, if a promotion is something you want, remember this one piece of counterintuitive career advice:

Work yourself out of your job

I know, sounds crazy, right?

The fallacy of being indispensable

Imagine that you are the only developer responsible for maintaining a vital piece of software. You are the only person who understands it and can fix it or improve it. Being in that situation might look like a good place to be. Some people call it "job security," and makes you feel indispensable. Knowing that the company needs you gives you a sense of security because you feel like you can't get fired. But, think about it, is your goal not getting fired? Or making career progression?

If you are interested in a promotion, you don't want to be unreplaceable in your current role. Share your knowledge and train somebody to take your place when you get promoted. You must work yourself out of your (current) job by helping someone else grab your seat.

Help your boss help you

Your boss needs to see you as someone who can take more responsibilities, and who can pave the road for a smooth transition. If you are accustomed to keeping your responsibilities close to your chest, protecting your code as if it was a prized possession, letting it go might feel like giving away the keys to your kingdom. However, if you want to get a promotion, you need to let it go. You cannot expect your boss to manage the transition for you. Make it easy for him or her. Help your boss by working yourself out of your current job as a way of pushing your career to the next step of the corporate ladder.


If you enjoyed this article, keep in touch!

Oldest comments (7)

Collapse
 
luispa profile image
LuisPa

Great advice!

Collapse
 
lpasqualis profile image
Lorenzo Pasqualis

Thank you!

Collapse
 
eljayadobe profile image
Eljay-Adobe

I always strive to make my job unnecessary.

I've never succeeded, but it aligns perfectly with what my employer wants, and it works for me.

Collapse
 
lpasqualis profile image
Lorenzo Pasqualis

Absolutely!

Collapse
 
albertocoder profile image
Alberto Calabrese • Edited

This is very interesting. Never saw this way. Sadly sometimes you don't meet very good people. You obviously can find the bad guy that replaces you after you trained someone.

Collapse
 
lpasqualis profile image
Lorenzo Pasqualis

That does happen, but the question to ask is "why." Looking at that person as a "bad guy" is a way to explain it, but is that good explanation? What would be the evil motivation of someone to replace a highly productive individual? Why would they do that? Most likely there was something not quite right with the performance of the individual who was replaced. Maybe there were misunderstandings, or maybe incompatibilities, or maybe the person who was replaced was simply not very effective. Hard to generalize as there are so many realities that depend on the context, but asking "why" is key for growth.

Collapse
 
harry_wood profile image
Harry Wood • Edited

Reading the headline I thought you were going to touch on a more software engineering angle:

Many good engineering practices could be described as "working ourselves out of a job". We might keep ourselves busy doing repetitive ops tasks, but good engineers will look for ways of automating such things. We might keep ourselves busy doing a lot of repetitive copying & pasting of boilerplate code, but good engineers look for abstractions and follow the DRY principle. We might keep ourselves busy maintaining spaghetti code, but good engineers will try to write clean code, and spend time refactoring. We might keep ourselves busy explaining to developers how our codebase works, but good engineers will have some sort of documentation. "Working ourselves out of a job", except it's really just keeping ourselves in a more interesting job, where we're being passionate, inventive and always learning.

On the other hand... we might keep ourselves busy endlessly reading up on and following all of the advice and "best practices" to the tee, learning new technologies on the bleeding edge to see if they make our jobs easier, etc, but good engineers will pragmatically pick and choose advice to follow and practices/technologies to adopt.

"working ourselves out of a job" by exploring things which make the job easier ....but also maybe just getting on with it :-)