When you’ve been in an industry for more than 20 years, you build up a fair bank of things you wish you’d known when you first started in that industry. This chapter covers off items that weren’t worthy of an entire chapter, but that I consider to be ‘savvy veteran advice’ that can stop you making some of the mistakes I did in the early days.
HOW TO BE WRONG
The best time to admit you’re wrong is as soon as you realize that you are wrong. Digging in your heels and escalating a debate when you know you’re wrong is bad for your professional reputation, for your team’s harmony, and for people’s opinion of you.
The key to graceful acceptance of being wrong is to always keep your mind open to the possibility that you are wrong. There is so much scope for knowledge gaps in the IT profession, this should always be a possibility in your mind. Technology is complex. Even when technology is well-understood, the way technology is implemented can leave gaps in your understanding of how something works.
By keeping an open mind, you can have calm and respectful discussions about a problem without painting yourself into a corner. Avoid using inflammatory language that makes you and the other parties want to double down on your opinions. Keep things friendly and non-threatening by using phrases such as “My understanding of that is …” and “In the past when I’ve seen this happen, it has been ….”
When you learn new facts that make you realize you’re wrong, you can genuinely thank the other person without feeling like they have won some sort of intellectual victory over you. Use phrases such as “I was never sure exactly how that fit together, thank you for clearing that up.”
It’s also good to remember that being wrong is a natural part of your daily work in finding the right answers to problems. When investigating problems you will have to go through a process of elimination. Of the ten possible solutions to a problem, the faster you can identify the nine that are wrong, the sooner you will arrive at the solution that is correct.
So get used to being wrong. And build a reputation of admitting when you are wrong. Nobody will keep score. Quite the contrary. Most people would prefer to work with someone open-minded and willing to accept their own knowledge gaps.
Technical debt is the cost, usually measured in time, of additional rework that accumulates when you choose an easy solution to a problem instead of a better solution that would take longer to implement. In other words, the time you save today is a debt that needs to be repaid in the future.
Sometimes technical debt is necessary and desirable. Today’s ‘quick fix’ may be important to restore service to a critical business system. The problem is when the quick fix becomes the permanent solution. Like a bad loan with a high interest rate, technical debt tends to grow if not paid off quickly.
Technical debt adds constraints to future work. If you want to make a change in the future, but first you need to do the rework on your previously implemented easy fixes, it makes it harder to find the time and resources to make the new change. Eventually, you start to feel like it’s impossible to get anything done at all due to decisions made in the past. Some of those decisions will be yours. Some will have been made by your superiors, or your predecessors, and were out of your control. You might even resent them for making those decisions, even though they may have been necessary due to constraints at the time.
The first solution for technical debt is to quit your job. This is the easy solution. You get to walk away from the problems and get a fresh start at a new job. Or at least, that’s how it seems. There is a risk that your new job will be saddled with even more technical debt than your last job. That won’t be immediately obvious. Technical debt tends to reveal itself slowly as you work in a new environment and try to make changes and improvements. And if the employees who made the decisions that caused that technical debt are not still working there, you’ll have limited information about what problems and constraints led to that situation in the first place.
Quitting also robs you of the opportunity to gain new skills by solving the problems that are in front of you. This is the second solution, to stay and pay down the technical debt. Naturally, it is also the harder solution.
Paying off technical debt is only partly dependent on your technical skills. There is a far greater dependency on your ability to break down complex work into manageable chunks, make convincing business cases to invest in long term solutions, and use time management skills to get the work done.
Quitting might seem like the logical choice for someone who values a healthy life-work balance. Why work hard to solve problems that someone else created? I don’t believe in that point of view myself. In fact, I believe that staying and solving technical debt problems can provide you with a better life-work balance in the long term. The possible benefits include:
- Proving your value to your current employer, and using that to build a case for the role you want (e.g. a promotion, a pay raise, or switch to remote work).
- Building better, more resilient systems that require less maintenance and after hours work.
- The stories and experience you accumulate that will be highly valuable in any future job interviews.
- Extra money, if the employer is willing to pay you overtime for the extra project work.
Of course, none of those are guarantees. You are always taking a risk to stay in a job and and solve technical debt problems. If you are convinced that nothing will change, that you won’t make any progress, and all you’ll be doing is wasting your time, then perhaps it is time to move on after all.
ADDICTION TO FIREFIGHTING
Wikipedia defines ‘hero syndrome’ as a phenomenon affecting people who seek heroism or recognition, usually by creating a desperate situation which they can resolve.
It’s a nice feeling when you save the day. Some of my strongest memories throughout my career are of major events where I and my team battled a critical systems failure and restored service.
But have you ever seen those people who seem to rush from one emergency to the next? Everything is a disaster that needs an immediate response. Every solution is a release of pressure, until the next emergency appears not long after.
Like the firefighter who dabbles in arson on the side, those people are addicted to solving crises.
But constant firefighting is exhausting work. And it gets you nowhere. All you’re doing is beating back the flames and returning the status quo. Nothing ever really gets better. Which suits some people just fine. If you can fill up your day fighting fires, you’re under no pressure to fill time with meaningful work that helps the business to grow and prosper.
At some point the customer is going to wise up. Why do we keep having so many problems? Why isn’t there any improvement?
I’m going to level with you, there are only two reasons that IT systems run in a constant state of emergency:
- The business isn’t investing in good systems.
- The IT department or provider is failing the business.
If you work for a business that doesn’t take IT seriously, there’s probably not much you can do. Find solutions, design upgrades and improvements, ask for the money to make them happen. Connect them to metrics that the business cares about. Be lean and economical. Stretch budgets as far as they will go. And if they still say no, you get to choose whether to stay on and fight fires for a living, or leave.
YOU’RE NOT A MAGICIAN
Here’s a list of things you can’t do:
- be in two places at once
- travel long distances at a moment’s notice
- read your email while you’re asleep
- work without sleeping at all
- instantly conjure up replacement hardware
- know the precise time that a broken thing will be fixed
- travel back in time
- explain events that you did not witness
- find every bug in every piece of third party software you run
- read minds
- hit a moving target
- fit 80 hours of work into 40 hours
- make the internet go faster
- reconstruct lost data using hope and tears
- never take a day off
While an employer would never expressly ask you to do any of the above, they may make requests of you that require the above things to be within the realm of reality. If you’re not able to communicate with your employer that their expectations are unreasonable and indeed, unachievable, it might be time to find a new employer.
SUCCESS AS A BARRIER TO SUCCESS
When you do a task well, your boss will give you more of that task to do. This can be both a blessing and a curse.
If you demonstrate a knack for pulling out-of-control projects back from the brink of disaster, you’ll be the one they call every time a project is about to blow up. If you demonstrate a skill for coding reliable scripts for automating processes, you’ll be asked to write more code to automate more processes. If you’ve got good personal skills and a knack for making customers happy, you’ll be the one sent in to placate every angry customer.
If you enjoy the task, then you’ll be happy to do more if it. I happen to enjoy writing scripts, so being given the task to automate a process is enjoyable for me. On the other hand, even though I’ve saved a few projects from becoming disasters, it’s not an experience that I’d like to repeat. I’d rather be involved in projects right from the start, instead of only stepping in when they are falling apart.
In the short term, working on tasks that you’re good at, but that you don’t enjoy, is not especially harmful to your career. In fact, I recommend you happily accept work that you’re not highly interested in, but are capable of doing well. It’s part of being a good team player. But over the years it can steer your career in directions that you don’t necessarily want to go. One day, you might just realize that you don’t like anything about your job, even though you’re good at it.
I see this quite a lot. IT professionals find themselves in a position where they can’t understand why they don’t like the job that they’re doing, even though they still feel that interest in technology in general. It’s a confusing situation if you don’t recognize it for what it is.
The further you get from your ideal job, the harder it is to make a switch. If you’ve been successful at doing the things you’re good at, then you’re probably getting paid a good salary to do it. Taking a pay cut to move into a different area of IT that you’re more interested in is a difficult decision to make. Especially if you have debt, or a family that depends on your income.
Obviously the ideal solution is to avoid the problem in the first place. Or at least recognize when you’re in the situation, and start to plan a way out of it. If you find yourself repeatedly doing the same tasks, ask yourself whether you can see yourself doing that same task every day. Consider whether the job you’re doing has you positioned where you want to be on the technology adoption curve (see Chapter 1).
If you find yourself heading in a direction that you don’t want to go, then you have two options:
- Talk to your boss about aligning your role with your interests. This will involve some give and take on your part. It may be that you’re being asked to do something that nobody else on the team can do. Before you can stop doing that task, you need to make it possible for others to do it. That could mean writing documentation, delivering training, or improving a system to avoid that problem happening in the first place. In most cases, if you’re willing to invest some effort into solving the problem, then your boss will be open to change.
- Find another job. Use the opportunity in job interviews to discover if a prospective employer has the same problems you’re trying to escape. If poor project management or resourcing is the problem, ask the interviewers about how they manage their projects. How do they staff their project teams? How often do projects run over schedule? What project management methodologies do they use? Look up their current and former project managers on LinkedIn to see how long they’ve been with the company.
What if you can’t change your job or find a new one? Maybe you live in an area where there are very few jobs available. Moving your entire life to another place is a big step. I couldn’t imagine uprooting my whole family, forcing my wife to change jobs and my kids to change schools, just because I was unhappy with my job.
This is where a focus on life-work balance and happiness outside of work, both of which are core messages of this book, will help you to get through the boring, uncomfortable, or just plain bad jobs during your career.
COMFORT IS THE ENEMY OF PROGRESS
When you get good at something you start to feel very comfortable doing it. Whether it’s a scripting language, a development framework, or a specific tool, being good at it feels good.
When we’re comfortable, we like to stop and enjoy it for a while. Like sitting on the couch after a long day, and not wanting to get up and cook dinner. We want to stop and relax. Everything else can wait.
But technology doesn’t stop. Things keep moving while we’re sitting there enjoying the comfort. Along comes something new and different from what we’re comfortable with. People say it’s better. But there’s a learning curve. Learning new things is uncomfortable, and sitting still is very comfortable. So comfort wins.
The trouble is, while you sit there in your comfort, other people keep moving. The longer you wait, the further they move ahead of you. Now it’s no longer uncomfortable to learn something new, it’s a frantic race to catch up. Because getting left behind in the technology industry spells career death.
Comfort is the enemy of progress. And if you aren’t moving forward, you’re moving backwards.
Enjoy your growth as a professional and a person. Enjoy what you’ve learned. Enjoy the feeling of accomplishment, of being skilled and capable. Then build on it. Don’t sit in comfort. Continue to make progress.
How do we do that? Commit to learning and expanding your knowledge. Read one interesting article or blog post each day. I use a variety of resources to help with this:
- I use Feedly and a bunch of RSS feeds to keep up with what’s happening in my areas of interest. Almost every day a great article appears in one of those feeds that teaches me something I didn’t know before. I skim through the feeds in the morning, and add anything interesting to Pocket to read at lunch or after dinner.
- I scan Medium every few days for interesting articles. Like anything, Medium has its fair share of content that isn’t of use to me personally. But at least once a week I’ll find a great article on technology, or productivity, or personal growth.
- I subscribe to a series of curated newsletters. I’m interested in Python programming, so I’ve subscribed to the Python Weekly newsletter. As a beginner, a lot of it goes over my head. But I also find interesting, beginner-friendly articles to read.
- I’m a paid supporter of Longreads. At least once a week I find an amazing long form article worth sitting down to read with a coffee on a Saturday morning.
- I often listen to audiobooks and podcasts when I’m running, doing tasks around the house, or cooking.
I recommend you also set aside the time to do two to four hours of focussed learning each week. Block it out in your personal calendar, so you always know it's there and you aren’t tempted to fill that time with other things.
You don’t need to study and cram every single day and night. In fact, I recommend you don’t. I don’t always do this. Sometimes it’s better to do something in silence and let your brain process a problem or some knowledge you’ve already exposed it to that day. Rest and idle time are as important to learning as the actual learning itself.
Rewards are also important. Operating in a permanent state of deprivation is exhausting, and builds up resentment. I find it hard to forgo playing my PS4 to sit down and study every single night. But I find it much easier to say, “Thursday night is my study night, and if I get it done then I can play games on Friday night.”
Each month take stock of what you’ve learned. If you haven’t learned anything new, ask yourself why. Did you get ‘too busy’? Nobody is too busy for one article a day and a couple hours a week of learning.
It’s a matter of priorities, and not letting yourself sit in comfort all the time.
DON’T TAKE THINGS PERSONALLY
We’ve decided not to proceed.
Those five words opened the meeting, and I took a moment to compose myself. I’d just been told that a solution I had worked on for a year was getting scrapped.
It wasn’t just my solution. A team of us had worked together to try and get it happening. The idea was bold. Implementing a backup solution that would address a customer’s concerns about data restoration times in a large email environment. It was a lot of data, in a complex environment, with a limited budget to make it work. You might think it was an impossible task. We gave it our best shot anyway.
After a year of design work, testing, problems, troubleshooting, and vendor support calls, we actually got it working. The problem was, it was going to cost a lot of money to run it. So the customer decided to cancel the project. They dropped the news to us in a project meeting on a Friday afternoon.
In my younger days this type of situation would upset me. All my hard work flushed down the drain by some upper level manager who didn’t understand the technical side of things. I’d spend time and energy complaining to my peers, then waste even more time and energy sitting in quiet frustration.
But this time I didn’t get upset. After more than a decade of seeing projects succeed and fail, I’d stopped taking these things personally. For one thing, it doesn’t help the situation. My energy is a finite resource. Spending it on something that can’t be changed is pointless. And being a serial complainer, someone who whines when things don’t go their way, isn’t a label I want to earn for myself.
Just because an idea is good, that doesn’t mean it deserves to be implemented. Some ideas don’t fit the situation. Sometimes a different idea is chosen, even if your idea was better. There are any number of reasons why that can happen, including political reasons. When there’s room for just one idea to be chosen, yours won’t always be the one. If it’s a good idea it will get another chance in the future.
The solution can be elegant and efficient, but that doesn’t mean it solves a big enough problem to earn a place in the environment. Maybe another solution is simpler. Maybe another solution is more complex and impressive sounding. And maybe the best solution is to just do nothing at all.
Your sales proposal can hit all the right points, but that doesn’t mean the customer can’t choose someone else. It happens. Another customer will come along.
If a customer doesn’t like you, why would you want to work with them? You wouldn’t. And if it’s something you can change, whether it be your hair, your clothes, the way you present your ideas, the price you charge, then you can decide whether to change or not. If you like the way you are, accept the customers who don’t see you as a fit, and seek to please the customers who think you’re the right fit.
It’s hardly ever personal. And even when it is, you shouldn’t take it personally. Your ideas can live on and find new life when the next opportunity comes along, if you let them.
Chapter 7 Recap
- When you’re willing to be wrong, and admit you’re wrong when you are, it is good for your professional reputation, for your team’s harmony, and for people’s opinion of you.
- As frustrating as it can be, technical debt offers the opportunity to gain new skills by solving the problems that are in front of you. These skills will stand you in good stead in future salary negotiations with your current employer, or help you secure a role with a new employer.
- Let go of your addiction to firefighting. It gets in the way of doing meaningful work that helps your business grow and prosper.
- If your employer is sending you subtle messages that they expect you to be able to do the impossible, either address these unrealistic expectations with them, or find a new employer.
- Beware of the curse of competence. You might quickly find yourself spending your days doing things you’re good at, but don’t especially enjoy.
- Beware of getting too comfortable. A simple program of continued learning and growth need not be onerous or time consuming. And will ensure you never find yourself left behind.
- Don’t take business decisions personally. A large number of factors come into play when these decisions are being made, seldom are those factors personal to you, and choosing to depersonalize those decisions will significantly benefit your mental health.
Found a problem with this page? Let me know and I'll fix it ASAP.