Why You Should Make the Worst Parts of Web Development Even WorseBy Andrew McDermott
Being a developer can be a nightmare…
… if you’re in the wrong environment. For many developers, it’s a constant source of stress, frustration and anxiety. As a web developer, you love writing code.
More from this author
The other headaches? They’re things you can do without.
If you’re experienced, you’ve dealt with the same headaches over and over. At times it feels as if someone’s playing a cruel joke on you or that everyone you work with is crazy. And the worst part?
These headaches aren’t going away.
When they’re ignored, these mistakes typically leave developers feeling miserable, jaded and downright unhappy.
That doesn’t have to be you.
Savvy Developers Use These Headaches to Their Advantage
They turn these everyday disasters into opportunities they can use. Average developers complain about these headaches, hoping to avoid the inevitable. All-stars use these everyday disasters to make themselves and others better.
What’s their secret?
It’s a simple secret most aren’t willing to accept. It sounds obvious to most people when they hear it, when in reality, it’s anything but. Here’s the secret.
Do what others won’t.
Do this, and your value as a developer skyrockets. Master it, and you become irreplaceable.
Experience is Great, Vaccination is Priceless
For many developers, these headaches are crippling. Most developers hate dealing with these problems. At a certain point they begin to feel trapped. They’ve got a full blown case of learned helplessness. On an emotional level, they’re afraid they’ll be blamed if something goes wrong. And to a certain extent they’re right.
But avoiding the problem isn’t the answer.
Facing the problem gives you freedom and control. When you face the problem the despair, anger and fear loses its sting. As great as experience is, it can’t hold a candle to vaccination.
Dominate these problems and you vaccinate yourself, emotionally and psychologically, against them.
Which problems are we talking about?
Headache #1: Fixing Someone Else’s Broken Code
You’ve just been hired at a new job. Your first to-do item? Fixing a poorly made application the previous developer left behind. Which either has no documentation (he didn’t believe in that) or too much documentation.
But the complications don’t end there.
Developers, like writers, are unique. They all have their own style, their own way of doing things. The code you happen to be working with is long, complicated and filled with bugs. Tossing the whole thing out and starting over would be best.
Only you can’t.
Because this code is live and in use.
Make it worse:
So you put a stop gap in place. You make the temporary fix you need to keep things going. But you don’t stop there.
You take the time to map things out. What does the undocumented code do? Which libraries are being used where? Where are the conflicts? What are the dependencies? Learn absolutely everything you can about the poorly made system you’re fixing.
It’s tedious and miserable, at first. But it’s something the vast majority of developers do their best to avoid. Here’s why you should do it.
Thorough understanding gives you the ability to create change that sticks. You’ll know the system better than anyone else on your team. That makes you indispensable.
Do this well and you’re able to survive mass layoffs, company politics, and disasters. They can’t afford to lose you, you’re one of the few developers that knows things inside and out.
Headache #2: Fixed One Bug, Created Ten
After three hours of searching, you’ve finally found it. The fix is easy enough, so you push the update out. Only now, instead of that one original bug, there are ten.
Maybe the library you’re using has lots of bugs. Maybe your update created a conflict with something else. Or maybe the bugs are unknown — as in you’ll never find the problem. If you’re lucky these bugs will magically go away on their own.
Make it worse:
First things first: get up and walk away. There may be a lot of pressure to find a solution, but your conscious mind needs a break. So you do the smart thing and you walk away.
Doing this moves the problem to your subconscious mind where you’ll continue to work on it. Had a solution pop into your head while you were in the shower? Come up with a brilliant idea while you’re falling asleep? That’s your subconscious at work.
But there’s another reason you should walk away.
Fear, stress and anxiety affects your mind negatively. A research study by the NIMH showed that cognition, memory, decision making, even spatial navigation were impaired by negative emotion.
Deal with your negative emotions first, then come back.
Start asking questions, focusing your attention on isolating the problems. Revert to a previous revision.
- Are the bugs still there?
- Are they the same bugs or slightly different ones?
- Were any of the bugs resolved when I reverted to a previous version?
- When are these bugs present?
- Are these bugs superficial, non-critical, critical or showstoppers?
Asking lots of questions trains your mind to search for answers. The answer tells you something about the problem. Keep asking questions to find the problems faster.
Headache #3: This Thing I Need, It Is the Problem
You’ve been assigned to a new project — integrating a client’s website with a new provider’s API. They provide you with the keys and credentials you need. Seems like everything’s good.
Until you run some tests.
Everything looks right but you can’t get things to work. You reach out to your point of contact and you ask for some help. They can’t make heads or tails of it either. Your API calls aren’t working.
You’re already behind schedule. At this rate, you won’t hit the deadline if things aren’t resolved in the next day or so. But no one seems to know what the problem is.
Make it worse:
Here’s a habit we used in our agency. We made it a habit to find an alternative provider, solution or option. If a client wanted A, we gave them A but we had B ready to go, just in case.
- If clients want Netsuite, you’d have Tracmor and TradeGecko on the backburner, ready if something went wrong.
- If they’re using a particular library, we’d find (or in some cases, create) a new library. This is tricky to do and depends on your ability to spot serious red flags ahead of time.
- If they wanted things developed in Java, we’d have a secondary language with code samples, libraries, API documentation, etc. ready, just in case.
In the beginning, it feels tedious. If you’re on a development team you already have a lot to do. It feels like you’re running from one fire to the next, doing all you can to keep up.
Know what I mean?
We felt the same way. But here’s what we found. Doing this extra work forced us to be efficient. We were prepared for the unexpected and our process improved as a result.
You’ll quickly get a sense of who is good at what, and you’ll rely on each other to get things done. You’ll begin to gel as a team and at a certain point, the work is being done — without words.
This doesn’t mean you stop talking. It means your discussions and conversations become more efficient. These kinds of teams dramatically outperform groups that simply work together.
Headache #4: My Co-workers Are Incompetent
You’re in a kick-off meeting with the client and they ask for something impossible, stupid or harmful. Your co-workers are doing their best to appease the client. This leads you to believe they’re either accidentally incompetent or willfully incompetent.
Kind of like this.
Make it worse:
You’ll have to spend more time talking with your co-workers. You’ll need to figure out whether their problem is…
- Accidental incompetence, also known as the Dunning-Kruger effect. It’s a cognitive bias where the incompetent believe they’re more skilled (and others are less skilled) than they actually are.
- Willful incompetence becomes a problem when co-workers know just enough to be informed but choose to ignore what they know in favor of what they want.
So how do you deal with this? Co-workers with accidental incompetence need training for that specific skill. Do that successfully and the vast majority of people realize and admit the truth.
They weren’t as skilled as they thought.
Willfully incompetent co-workers, on the other hand, are harder to deal with. It’s common for these co-workers to play things close to the chest. They have a reason (good or bad) for ignoring the right decision, but they’re not telling.
Find the reason they’re ignoring things and their resistance fades away.
But what if you can’t? What if they refuse to work with you? You put these co-workers in quarantine. You work around them, focusing your attention on others who are willing to help you get things done. Just keep things friendly, civil and kind.
Expect these co-workers to feel threatened and even cause trouble.
Headache #5: I Have to Do the Impossible (By Tomorrow)
Your boss comes to you with an emergency. He needs four new features within 24 hours, and he’s demanding that you get it done. If they’re not, you’ll miss an important deadline. The problem? Each of these features will take a few weeks to finish.
What’s worse, your boss already promised the client these updates would be done on time. His careless planning and loose lips have created a huge potential headache for you.
Make it worse:
Say yes to the absurd demand…
… but state your list of conditions clearly and accurately. Instead of fighting with your boss over his impossible demands, rope him in on it like this…
- I can get it done if I have X, Y and Z. Would you help me get those?
- I’m supposed to be doing X; did you want me to completely ignore that and focus on Y?
- X will prevent this from happening, would you take care of that for me so I can get this done for you?
Here’s the beautiful part about this.
This is an emergency in their mind — it’s all hands on deck, right? If they’re asking for the impossible and you’ve roped them in, they’re going to have to help. They’ll have to do the impossible too.
If they don’t do their part, you can’t do yours. What’s worse, they won’t be seen as a “team player” if they refuse to help you.
Remember that video I shared earlier in the article? (scroll up and watch it if you haven’t yet). It’s satire, but let’s go with it. They wanted their “expert” to create a transparent line. He used logic and reason to explain things, but the client wasn’t having it.
There’s an easier way.
The expert could’ve asked for her help.
- “Would you provide us with a transparent pen? One that draws invisible lines?”
- “Do you have a previous example of 7 lines that are all perpendicular to each other?
The client would be responsible for providing or presenting more clarification. If the task is actually impossible that’s going to be a problem for them.
I’m oversimplifying a bit here but I think you get the point. Rope your boss, the client or co-workers in. Ask them to shoulder the weight of their impossible demand. The vast majority of people realize their mistake, becoming advocates for what you want. All because you made things worse.
Sometimes, Worse is Actually Worse
Sometimes you can’t do what you want to do — you’re forced to do what you have to do.
I get it.
Learn from these situations, deconstruct them. There’s an opportunity lurking in every headache or obstacle. It sounds cliché but it’s true.
Use these opportunities and you’ll find that your influence grows. Suddenly you’re able to command more money, handle more responsibility and help more people. You’ll become known as the person who makes things better, all because you made things a little bit worse.
Making Things Worse Can Actually Be Better
Doing what others won’t means you’ll face these headaches and win. You’ll win the battle and the war, creating a solid plan for the future.
Instead of avoiding the problems, you have what you need to face them head on.
It’s tedious at first, but this mentality becomes the gift that keeps on giving. It cements your position as invaluable. It insulates you against disasters — layoffs, job cuts, and internal politics.
Being a developer doesn’t have to be a nightmare. Your days don’t have to be filled with fear, stress and anxiety.
Peace of mind, job security, abundant opportunities, they’re yours — if you do what others won’t.
- 1 Tech Stacks, Frameworks, Being Creative, and Being Real, with Tim Holman
- 2 Sass, HAML, and Inventiveness, with Hampton Catlin
- 3 How to Migrate Your WordPress Site to A New Hosting Provider
- 4 An Alternative Laravel Package Development Workflow
- 5 How to Improve Site Performance (and Conversions) with Dareboost