SpeakingSoftware

View Original

S3E6 - Why you're not advancing in your career

See this content in the original post

Show Notes:

I've seen many talented developers who have become stuck in their careers. And it sucks! These people were exceptional coders but just couldn't make any traction up the career ladder. The worst part is that they weren't even sure why; despite their hard work and talent.

It's not a mystery though folks! There are very real and very fixable reasons why many technology professionals don't see advancement or good/frequent salary bumps. In this episode we’ll walk through my top 5.

Show Transcript:

In my long tenure as a Software Engineer, I've seen many talented developers who have become stuck in their careers. And it sucks! These people were exceptional coders but just couldn't make any traction up the career ladder. The worst part is that they weren't even sure why; despite their hard work and talent. And what happens then is that they leave for greener pastures, and the cycle begins anew. 

It's not a mystery folks! There are very real and very fixable reasons why many technology professionals don't see advancement or good/frequent salary bumps. Once you know them you're 50% of the way to getting past these issues!  

Let's jump through them! The main reasons for not advancing in your career are: 

  1. Lack of communication Skills 

  2. Limited Leadership abilities 

  3. Tunnel Vision, or the inability to see the bigger picture 

  4. Resistance to Change 

  5. Poor time Management 

Now that we've named them, let's dive in and talk about them in more detail. 

1. Lack of Communication Skills 

The core concept behind this is very simple.  To paraphrase Vinh Jiang – If you are a technical 10 but a communication 3 – you'll only ever be able to convince people you're a technical 3. Let that sink in!

If you can articulate what you're doing, your goals, constructively participate in both technical AND non-technical discussions - then you are WAY more likely to progress and be considered when salary adjustments and promotions come down the line. 

If you can't quantify your work and its impact, then no-one will be able to assess it. You might be working on a new project for a client, and doing fantastic work! Y'know, really pushing your knowledge and abilities to the limit to really deliver a great solution. However, if you are not keeping the team and management up to date with what you're doing, how fast or solid it is, how much or how little time it's taking, etc.. then they can't recognize that and understand that. 

A big part of getting ahead is having your manager advocate for you, but you have to enable them to do that, for them to fight for you. You have to arm them with what they need so they can position you as the right choice for any opportunities that come up. 

2) Limited Leadership Abilities 

Devs who lack leadership skills and initiative also find it hard to move up the ranks. You have to show you're ready for the next steps by demonstrating that behaviour for them in your current position. I see a lot of engineers complain that they don't progress because they’re not given opportunities – but then they're not demonstrating the qualities required by those opportunities! 

Even if you're not looking for a lead position. You still need to communicate, negotiate, delegate appropriately, be able to task shift, and play a positive role in developing and shaping the culture in your team/department. You have to be seen to help/mentor other devs. You have to be organised. Be responsible. Be accountable. Own your tickets. Write your docs. Don't forget meetings! 

Leadership qualities go beyond direct actions though. You need to understand that there a reconsiderations for projects beyond the technical: 

  • Strategic value – can this task land us a new client, or make an existing one happy enough to write some cheques? Would taking on this task mean fixing or building a bridge with another department or an exec? 

  • Opportunity Cost – if we do this, what do we miss out on? 

  • Allocation – do we have the people power available to do it? What happens if we shift people around – how much time do we lose? 

  • Budget – what is the time or fiscal expense here? Can we handle it both short and long-term? E.g. might have to hire contractors to get project across a fixed deadline, etc. But that might mean you can't afford a hire later. 

As a dev you’re going to say “these are not my fucking problem”, and you’re right! However I would bet that you report to someone who these things are their problem. If you're aware and sensitive to them, you become part of the solution quite quickly: and that counts for a lot! 

This leads nicely into... 

3) Tunnel Vision, or the Inability to See the Big Picture 

Developers who only focus solely on their technical actions miss the broader perspective of how their work impacts the business. So many fail to learn or understand the company's goals, and consequently how their work fits directly into the overall strategy. We talked earlier about communicating your value - lacking context makes it very hard to do that! 

If you know the product domain, if you know the customer(s), if you understand the problem the product/service is solving – you then understand that each technical task is a small stepping stone on that road. Some tasks get you further along that road than others – and that distance travelled isn't always proportional to the tasks complexity or difficulty. 

Knowing this means you can see what opportunities are there to help the company on it's journey. You can understand how to sell your actions to the people that matter. 

4) Resistance to Change 

This is a huge one for me. SO many devs learn 1 set of tools, and that becomes "the hammer". They then see everything as nails. This is a dangerous road to go down!  The developers that I see progressing the most are those who do not resist change! They're not reluctant to try new technologies or methods: it's the reverse! They research, play and end up being the drivers for evolving our tech stack and methodologies. 

Let me be frank here folks - The technology industry is constantly evolving, and those who are not adaptable are viewed as a liability rather than an asset. If you're not on the train, you're in the way. Being able to investigate new technological trends, discern their values and integrate it into your development pipeline means accelerating development speeds, quality, and your own career prospects. 

5) Poor Time Management 

This is a huge one. Time management falls into 2 categories here: 

  • Being done on time. 

  • Projecting when you're going to be done. 

Being done on time – if you or the team have committed to a deadline, then you gotta make it. IF you can't make it, you need to raise that at the earliest possible moment. You can't tell your manager a day before a deadline that you're still a week away from a working solution.  

You also need to ensure you're not sabotaging yourself from making deadlines. Tailor or Sam may need help, but how much is that going to pull you away from your task? Can you help them later, or tomorrow? Is someone else better placed to help them? Your manager has to help keep your path clear, but you gotta make sure you're keeping pace and not getting distracted! 

Projecting when you're going to be done - we're talking estimates here. I know you're rolling your eyes at this one. How long is a piece of string, right? Stop fighting it and get good at understanding estimates! If you can't estimate a task, its mostly likely because you don't know or understand the solution. Get that clarification and get an accurate estimate together.  

Don't just estimate development tasks though! Include time for writing unit tests and for writing docs. So many devs will clock a task at 3 days, but then it takes 2 weeks once writing tests get factored in, docs get written, etc. Normally the fact it takes that time is not a problem if it's projected for. However, it is a problem if you project something that takes 3 days and then ends up taking 2 weeks. It massively fucks up allocation and planning, which means a headache for your manager. Not good!

If you can't manage your time effectively, you will not be trusted with more significant projects or leadership roles. 

Conclusion 

There we go! 5 very real and very solvable reasons for why you may not be moving up the ladder! You'll see the common theme here is being aware of what happens in the company outside of development tasks. Building up that personal responsibility and business acumen are the very things that will get you noticed and recognized by the people above you. 

Continue to grow your technical skills, but do understand your value to the company exists beyond slapping the keyboard. The sooner that you understand and embrace that, the more you're going to see traction when it comes to your career.