Feeling Stuck in Your Career as a Programmer? Get Into Business Operations
You're a programmer and you’re stuck.
Things aren't going your way when it comes to your career.
You've been fighting to make progress for months, maybe even years. It’s like you’re trapped in a glass bubble. You shout for attention and the recognition you deserve, but it feels like no one can hear you, and they don’t acknowledge your hard work.
And this is where the thoughts start to creep in:
“I've been trying for so long now… why haven't they seen that?”
“They just don't appreciate me.”
“If they're not careful they'll lose me.”
“That's it—I'm never staying late again.”
“And what does ‘You're just not ready' even mean anyway?”
“Maybe I should just do it. I should just quit.”
More and more frequently, I hear the same conversation from colleagues about career progression. And the story seems to be the same each time: They’ve been fighting to be recognized, but nothing seems to be working.
The thing is, they’re nearly always making a huge mistake—they just don’t realize it.
Let me explain.
The Big Career Progression Mistake
I’m just going to come out and say it.
If you want to progress in your career, don’t focus on incrementally improving yourself.
Instead, find ways to completely change the game for your company.
Maybe you’re wondering why I’m advocating against incrementally improving yourself. Isn’t that what career progress is about, after all?
When it comes to making progress, most see it as a straightforward process that goes a little like this: We go to our boss and tell them we’re seeking a promotion. Then our boss tells us precisely where we need to improve, and we then follow their instructions and gain our promotion as a direct result of having made these self-improvements.
This thinking is flawed, however.
Why? Let me explain…
The thing is, we don’t need to improve ourselves per se, we need to improve our workplaces. It’s usually implied that becoming better ourselves helps our employers, but this isn’t always the case.
But there’s also another problem when it comes to asking your boss to tell you the areas you might need to work on.
(I learned this lesson the hard way after years of building interfaces and products for people.)
It’s this: People don't know what they want. But they're very capable of recognizing what they don't want when shown something tangible.
The mistake many programmers make is that they show their bosses an incrementally improved version of themselves, rather than giving their boss what they need, which is areas such as an improved business, customer outcomes, and increased revenue or profit. And that’s where the idea of “stealing” your own progression comes in.
This tactic even has a name: Marketers call it the Blue Ocean Strategy.
The analogy comes from sharks in the sea. Instead of searching for food in a red ocean, one that is already blood-soaked from other sharks feeding, we should instead seek blue oceans (those that are untainted by others).
Whilst this seems like a crude concept on the surface, of course you should fish where the fishing is good. But many, despite knowing it, don’t follow this advice when it comes to their own career.
In a programmer's case, it's about finding ways to improve the way your company does business overall, rather than staying siloed in your own workspace. You, the programmer, are seeking out blue waters, where you can really make a difference, rather than fighting it out on the well-trodden ground.
Most companies won’t know where they need technical improvements; that’s where they need you, the expert to offer your opinion. For instance, your CEO is not going to know that moving your delivery pipeline to Jenkins could make all the difference in speed of delivery for your software or that a day spent on implementing a distributed logging stack could drastically improve your companies ability to catch errors before customers report them.
But that leads us to the next question: What can we take ownership of?
Where You Can Take Ownership
Often, when I explain the former, it leads to the same reaction.
It’s usually along the lines of “Sounds good…”
- “But, I don’t know where to start.”
- “But I can’t just change my business.”
- “But I’m a programmer. That’s my job; shouldn’t I just get better at that?”
All it takes is some creativity. Think of yourself not as a programmer or a cog in the works. Instead, elevate yourself above the system, and see it as a whole. When you do this, you should be able to identify areas that you think could use some improvement.
To make this as easy as possible, I want to go through a few areas I often see neglected in businesses. Hopefully, this list will get you thinking about different areas in your company’s operations that you can get involved in.
1) Logging and Metrics
Logging and metrics are vital for healthy production applications. But does your company have good logging tools implemented for the application you’ve been working on? And if not, why not?
As programmers, it’s easy for us to get caught in the trap of delivering only on our immediate deliverables. But the real impact is intended for the end user, the customers. Usually, programmers look for faster performance and easier UX. And that should all lead to greater sales or revenue for the company.
So, really our work isn’t done when the feature is completed; the work is done when we can verify the impact on our customers. This can be achieved with good metrics and logging.
Some ways you can get logging and metrics into your company are:
- Raising awareness of the purpose of monitoring and logging with your fellow developers and product team. A lunch session maybe?
- Helping to improve the standard of logs in your company, ensuring they are accurate and have appropriate data within them.
- Or even going full hog and implementing a logging aggregation/visualization tool such as Datadog or ELK stack and helping teams to set up their own dashboards and alerting.
If you can provide this capability for your business, it could have a big knock-on effect on the quality of the software you deliver. This impact can then be used to help your case for progression.
2) Your Product Function
Nearly every company I’ve worked for struggles in the product department. Some organizations don’t even have employees dedicated to their products. It is a fairly new concept, and one that is not very well defined, which means that product-related activities often fall on programmers when they don’t even know it.
Product work usually involves understanding the needs of your users and looking for ways to measure current and future features to form a backlog of potential changes. This is, however, a difficult task for anyone outside of the development team: It can be hard to see where (and which) analytics are useful.
But as a programmer, you have that insight. If you can work with and encourage your business to start measuring the benefits of the current features and the benefits of new ones, you’ll gain a lot more clarity into the areas of your product or service that are making a real difference on your company’s bottom line.
You can start by taking your next feature and asking “What’s the impact we’re trying to achieve with this change? What is the behavioral impact we want from our consumers? And how can we measure that we’ve created the impact we wanted?”. When you’ve got these answers, you can set about setting up an experiment to test this way of working.
3) Lead Times for Deployment
Lead time is the time between “commit made” to “deployed in production.”
The process of getting code to production is a struggle for nearly every tech business. It's an area that takes a lot of systems thinking, automation, and teamwork to make it slick. Over time, most businesses find their lead times increasing. More code, complexity, and regression testing can manifest days, weeks, months, or even years of delay. These long lead times then reduce the time between a feature being built and delivered to a customer, which can mean lost revenue for your business.
But, if you can work out how to improve your deployment lead time, the improvement could make a significant impact on your business’s ability to deliver for its customers. So start studying up on deployment pipelines—they could be where you find your big career break.
4) Design Systems
Many companies I’ve worked with have struggled to sync their design teams with their development. The impact? Products that are oddly dissimilar in ways that are hard to express. Maybe some part of the UI is slightly different or looks different. Usually, this is because there are multiple sources of truth for the design of visual components.
The solution is a design system.
A design system is just a fancy way to describe consolidating your existing design resources into a single place. In most cases, it’s a repository of your company’s fonts, colors, or even components. When done correctly, a well-made design system can drastically reduce the amount of time it takes to deliver new features or even products.
For a programmer, this presents an opportunity. The design system often lives in the void between a design and development team. The development team has the skills to implement, yet the design team has the knowledge. If you can bridge this gap and bring these two functions together, this could be a great way to make a big impact on your team.
5) Testing Approach
Testing is paramount to delivering high-quality software. But it's such a nuanced area of software development; it's like a dance. It's a delicate balance of not too much and not too little in all the right places. How organized is your corporation’s approach to testing? Nearly all technology companies could have better automated testing, more unit-test coverage, better integration tests, or consistent end-to-end testing.
With a solid test strategy, your employer could reduce the number of bugs that make it to production, and that same test strategy could help developers find bugs they’ve created, more easily and quickly. This could mean less money is then spent on manual quality assurance, and another big win for your progression case.
6) Recruitment Process
This might seem like an odd one in this list. But a lot of business performance originates in how an organization hires. Hire good candidates and the business will flourish; hire the wrong ones and it could be years, even decades of pain for the business as they wrangle with hires that don’t really fit the culture or don’t have the right skills for the job.
This is a prime example of an area of a business that is often neglected as human resources struggle to understand how best to assess technology candidates, which means you can step in to help out. If you can find out how to save your company time by implementing an automated solution, you could make the lives of those who have to deal with the process far easier.
A Quick Word of Warning
Whilst I’m evangelizing the idea that you shouldn’t passively wait to be given the chance to make an impact for your company, which you really should not, I must explicitly call out a word of warning here.
The warning is this: You must be very careful and tactful in your approach.
Your intentions should come from a place of genuine concern to help the company you work for and improve the work of those who you work with. Your approach can’t just seem authentic; it must be authentic. If you appear to be acting for personal gain, whether this is your intention or not, your best-laid plans could come back to haunt you.
Before you embark on your journey of change for your company, simply consider the impact your actions may have on others. For instance, you don’t want to make it seem like you’re trying to steal a job from someone else. Why? Because this will likely incur a defensive response from your colleagues, who will try to protect their livelihood. It doesn’t matter if the work you’re doing is to help them. You must remember that it’s all in how your actions are perceived by others, not how they are intended.
Steal for Your Career
So we’ve had a look at the biggest mistake that programmers make when it comes to career progression: focusing too much on improving themselves and neglecting to improve the company they work for.
But you’re not going to make that mistake, right?
With this knowledge in hand, you can go back to work and start looking for the opportunities to make more of an impact in a blue ocean in the company you work for. When you start making an impact on the business, you will soon see the tides shift for your career, and it could be the leverage you need to get unstuck.