6 Stupid Mistakes Smart Developers Should Make
“Keep your head down.”
“If you want to keep your job, work hard, keep your head down and do what’s in front of you. Remember, it’s the squeaky wheel that gets replaced.”
Have you ever gotten this advice? You’re not alone. It’s advice developers often receive when they leave college or start a new job. Sometimes that advice is implicit, other times it’s explicit. But is that the right move for you? If you want recognition as the all-star you are and want to be paid accordingly, the answer is no.
“Keep your head down” is damaging career advice.
So what are you supposed to do instead? How do you navigate office politics, huge workloads and poor management?
You make “stupid” mistakes.
The strategies I’m about to share are typically labeled as stupid, ignorant or foolish by those who don’t understand them. They’re counter-intuitive and bizarre sounding. But they’re career makers for those who understand and apply them.
Wait a minute.
“Why do I have to make mistakes? Can’t I get the career I want without making ”stupid mistakes?" The vast majority of your coworkers don’t get it. Not only will they not understand, many of them will criticize and mock you for it.
A word of caution. If you’re expecting this article to go over details like “coding mistakes” this isn’t for you.
Use these strategies well and you’ll be the one in charge of your own career.
Let’s start with the first mistake you should make.
1. Pick a Fight with Your Boss
When people see the word “fight” they cringe. Their mind goes to violent, abusive or dark places.
That’s absolutely not what this means.
When an employee picks a fight with their boss, there’s always a reason. Employees who do it late express their desires as revenge or slander. Most people choose self serving reasons — I want a raise, a promotion, more hours, better projects, etc. These are great and even necessary things to go for, but they’re focused on the wrong person.
Fighting with your boss over any self-serving topic is employment suicide. It’s the fastest and easiest way to lose your job, client or position.
Here’s the dirty little secret all-stars understand. If you’re fighting or begging for the things you want, you’re less likely to get them.
So what do you fight with your boss about?
You fight with them, for them. You fight for their goals, desires and aspirations. This is the part where many would chime in: "I don’t care about my boss or his lame aspirations.”
That sound about right?
Why should you care at all about their goals, desires, and aspirations? Isn’t that their responsibility? Helping them, helps you. Taking a genuine interest in their “stuff” is better for you in the long run.
- Looking for a pay raise? It’s easy to get when your boss believes you’re in his corner.
- Want a promotion? A supportive boss and supportive co-workers makes that inevitable.
- Want to start your own thing? You can ask your boss for contacts, an introduction and opportunities.**
Amazing careers, all-star recognition, preferential treatment, they’re all based on relationships.
So how do you fight with your boss?
You do it gently.
Here’s an important yet easy to ignore rule that many, many people seem to ignore. Don’t humiliate others. Don’t call your boss out publicly or corner them psychologically. Avoid trolling your boss to look good.
Ask gentle, well-timed questions focusing on what they want. Do it privately where appropriate and publicly with discretion.
Okay, what does that look like?
Your boss wants to launch a new site in 3 weeks.
“I noticed you added some new features to the list. These two features alone will add an extra four weeks to the project. Did you still want to keep those on the list or pick the features that’ll help us hit the deadline?”
I want this to work the same way as…
“I noticed they’re running these applications in this environment. We’ll need to spend an extra $16,000 to $25,000 to get this setup the same way. Do you still want me to look into this for you?”
Can you see what’s happing here? A single, well timed response tells your boss several things.
- You know what’s important to them (time and money in our examples)
- You’re looking out for his interests first instead of yours.
- You speak his language.
- You’re fighting his ignorance, rather than his intentions.
- You’re willing to extend compassion and respect, sharing your advice in a way that’s free from condescension and contempt.
This attitude is something employees, managers, executives and managers all look for. But they’ll never tell you.
2. Fail, Then Ask to be Punished
Is your career something that just happens to you? Or are you choosing the kind of career, the kind of life you want to have? Many developers go through their careers in a daze. They get a job, learn the rules, then settle in to 90/10.
90% maintenance and 10% development.
They spend most of their time maintaining someone else’s bloated, poorly written code. They’re responsible for fixing bugs and dealing with customer service issues. But they’re not getting the chance to actually create something useful.
If it does (and you’d like that to change) failure could be your way out. Let’s pretend…
- You’re working for an eCommerce retailer.
- They’re using an out-of-the-box shopping cart.
- Their inventory system isn’t compatible with their shopping cart software.
Your boss is stressed out; he’s getting chewed out by his boss. Customers visit the site to buy products (good), but those products are almost always out of stock (bad). As a result your boss has seen a 40% drop in sales. He’s got six months to turn things around. If he can’t he’ll be out of a job.
And that’s the problem. He doesn’t know where to start.
You know he’s going to start contacting “vendors” to see if they can do the impossible. But you also know they’re just going to try to squeeze as much as they can out of your boss. They don’t care about his problems.
But you do.
So you create a solution to his problem. You meet with the warehouse guys, you learn about their problems. You talk with your boss about his struggles. You talk with marketing to see how many customers leave. You listen, create specifications, and get to work.
If you’ve solved the problem, you’ve saved the day. You’ve given him peace of mind. But what if you fail? What if you get it wrong?
Easy. You ask to be punished.
And your punishment? Fixing the problem, whether that’s getting more details, changing your requirements, rewriting something, etc. If you’ve planned things well, odds are good you’ll get the chance to make things right.
And that’s important.
Because the first iteration will have problems. It’s pretty unlikely that you’re going to get things right the first time.
3. Say Yes to the Impossible
People in charge tend to ask for stupid things. Their demands are often times, foolish, ridiculous and unrealistic. Many of them don’t know what it takes to do what they want.
Which is exactly why you should say yes…
… with conditions. An unconditional yes, with no strings attached is a disaster waiting to happen. When developers respond with outrage, an unconditional yes is usually what they’re reacting to.
That’s not what most bosses want.
It’s true, none of them want to hear “No” or “I can’t” but they also aren’t looking for yes-men who lie. So you add conditions to your yes.
- “I’m supposed to be doing X; did you want me to drop that and focus on Y?”
- “I can get it done if I have X, Y and Z. Do you want me to talk to purchasing about getting that?”
- “Let me give it a shot. X could prevent me from getting it done but I’d like to try and work around it. Is that cool?”
- “Would you give me a day or two to figure out how to do this right?”
These answers show you’re loyal, committed and at the very least, willing to try. When you set the tone for this kind of behavior you’re building their trust in you. When you tell your boss no, he’s more likely to trust your judgment. You’re creating power now that you can use later on, when it’s really needed.
“He rarely says no. If he says no, you can be sure there’s a damn good reason.”
4. Make “No” Your Default Answer
You’ve shown everyone your loyalty, what’s the next step? Say no. Here’s an important caveat: this isn’t a power play. It’s not something you do to dominate or control your boss.
The goal here is protection.
You’re protecting your boss, your co-workers and the company from disaster. Your no cannot be self-serving. If it is, you lose all the trust, power and credibility you’ve created.
This still has to be about everyone else.
At some point, there comes a time when you need to say no. When your boss wants something…
- That will ruin the business
- Get him fired
- Destroy the company
It’s your job is to say no. Use the trust you’ve built and the credibility you’ve gained to protect and serve others.
If you’ve followed steps 1 – 3, that’s going to be pretty clear. You’ll have respect. When you speak, others will listen. If you have detractors who disagree with you, you’ll have allies who will support you. You won’t be the idiot employee that’s fed to the wolves.
But there’s another problem. You can’t use the word “no."
It’s actually more like you shouldn’t. Why? Because each “no“ spends a little bit of the trust, power and credibility you’ve built up. If your “no” is legitimate, you spend less. If it’s self-serving you spend a whole lot more, draining the goodwill you’ve built up.
So how do you say no without saying no? Here’s how Adam Grant, Wharton professor and author of Give and Take, does it:
- The deferral. I’m completely swamped right now. Would you follow up with me later?
- The delay. Would it be cool if I did this after I finished here? The deadline for my client project is today and I don’t want to be late.
- The introduction. I’m completely in the dark about Bootstrap. Sean is the Bootstrap master, would it be alright for him to take the lead on this?
- The bridge. Amanda and Rick are actually already working on data migration. Should I reach out to them?
- The relational account. If I do this I’d be letting Steve down. He was counting on me for help with his Angular project.
See the difference? Every demand has a consequence, something that’s easy for management to forget. But that’s exactly how it works in the real world. If you want X done, I won’t be able to finish Y, and so on.
Do it this way and you teach co-workers that every decision comes with a cost.
5. Be More Manipulative
Most people cringe when they think about manipulation. When that word’s used, it’s typically referring to people. Yes, manipulating people would be cringe-worthy.
I’m not advocating that you manipulate people.
I’m advocating that you manipulate problems. Most developers have a few tried and true solutions for their common problems. How many have two or three solutions to each of the problems they’ve encountered? How many make it a habit to learn how to solve each problem they encounter from two to three different angles?
Not too many.
When developers behave like order-takers, they rely on others to solve their problems. These developers can’t be bothered to hunt for a solution on their own. They need someone else to do it.
Then there are developers who are manipulative.
These developers focus their attention on the problems itself. They see how it affects everyone else. They understand the problem so well they’re able to attack it from two or three different angles. They create their own libraries, compensate for server environments, juggle a variety of tiny details and so on.
But what if you’re not that kind of developer? What if you’re not a collector of information?
In The Tipping Point, Malcolm Gladwell points out several types of people with rare and unique social gifts.
- Connectors are the designers and developers who know lots of people. They’re in the habit of creating or making introductions.
- Mavens are information specialists who collect, harvest and share new information. These developers have a deep set of skills and are almost “pathologically helpful.” A maven wants to solve other people’s problems, usually by solving their own.
- Salesmen are charismatic persuaders with a knack for negotiation. These developers are adept at getting others to agree with and believe in them.
It’s common to have a primary and secondary set of skills. As a developer, you could be a maven with strong salesman tendencies and so on.
Here’s how you use these traits to be more “manipulative” and achieve your best.
- Connectors can focus on connecting with more developers. They can create a Rolodex of specialists and generalists who they can either (a) contact for help and advice or (b) ask to fix your problem.
- Mavens should focus on both deep and broad learning. Learn to cover a wide variety of topics, going deep on each topic. Collect techniques, methods and approaches, using them to solve both specific and general problems.
- Salesmen should develop a list of ideas, methods or techniques to use. Like mavens, they should work on collecting and refining, focusing on ideas and methods. Be prepared to persuade others of your position, using both emotion and evidence. Just be absolutely certain that you’ve prepared for every negative outcome or issue.
There’s no need to try and force yourself to become something you’re not. Use the skills and talents you already have to become a manipulative all-star.
6. Turn Down a Big Promotion or Opportunity
When it comes to promotions, developers usually have a few options:
- Go to management.
- More money.
- Do your own thing.
There are two kinds of developers. The all-star developer that’s passionate about coding and loves to code, and the go-getter who’s looking to fill a need for significance and reward. If you’re focused on coding, you may not be as eager to become the boss. If you’re a go-getter in search of significance, coding could be a pit stop on your way to something better.
You have a choice to make.
Which developer are you? Where are you going? Think about what you’d like to do. Do you want to write code and make more money or do you prefer to lead others? Do you have the skills and aptitude you’ll need?
If you’re offered a management position, but you want to do your own thing, you have clarity. You can turn down the offer, get your employer to invest in your thing, or just keep coding.
Bizarre as it sounds, most developers aren’t aware they have a choice. They know they do but it feels like they’ll let everyone down if they don’t do what everyone else wants.
Turning down a huge payday or a golden opportunity seems like a stupid mistake to outsiders. But no one knows you better than… you. What others see as stupid or foolish may be just right for you.
As We’ve Seen, These Mistakes Seem Stupid
But there’s a method to the madness. That doesn’t make every mistake okay. Some mistakes are horrible regardless of how it’s done. You’ll want to avoid the mistakes below at all costs and repair the damage quickly if you’ve slipped up.
- Using humiliation and shame: It promotes defensiveness and hiding. If your boss or a co-worker makes a mistake, forgive. If they’re open to it, help them get back on track. Holding their failures against them creates cliques, division and enemies unnecessarily.
- Us vs. them conflict: An us vs. them mentality creates cycles of sabotage, politics, game-playing and revenge.
- Sadism and narcissism: Cruelty and sadism can become a problem if othering occurs. “Ben in marketing is a jerk; I’ll mess up his landing pages so he fails his performance review.”
- Manipulating people: Machiavellianism, social engineering and dishonesty is an obvious no-no. You’re not good at your job if you have to use these tools to get ahead.
- Purely confrontational: Some developers love to argue. Didn’t do it their way? Well, they’re going to argue with you, pointing out all the ways you’ve failed. Don’t know enough? They feel it’s their right to shame and condemn you. Don’t be this kind of developer. Confrontation for conflict’s sake creates a culture of fear and political correctness.
These mistakes are stupid and reckless, it goes without saying, right? But they’re made over and over by those who feel they’re immune to or justified in their poor behavior.
Follow This Advice If You Want to Get Fired
That’s the threat naysayers use to get you to comply. But employers, managers, bosses, they all want us to make the right “mistakes.” These mistakes show them who we are. Want to win their trust, respect and admiration? Show them you’re the all-star they’re looking for.
Most developers won’t do it.
They’ll criticize, complain and deny. Some will shoot the messenger. Others will yell about the delivery and how things looked or demand that things be done their way. Only a few will face the problem or seek to be better.
Be one of the few.
If you’re unfamiliar with these strategies, it’ll feel weird at first. As if you’re a brown-noser sucking up to your boss to get attention. You may even feel like you’re just manipulating your boss. These feelings are normal, they’re part of the growth process. The sooner your interest in others becomes genuine, the sooner these feelings will fade.
Healthy relationships eventually move past brown-nosing and stupid mistakes.
Smart Developers Make Stupid Mistakes
At least they seem stupid to those who misunderstand. But “keep your head down” is terrible career advice.
Want to be the master of your career? To be recognized as the all-star you are and be paid what you’re worth? Make “stupid” mistakes.
It goes without saying you should take care of yourself. But most of us don’t need to be told. Putting your boss and others first, that’s the secret to becoming an all-star. If you’ve read this far you know what to look for. Soon opportunities to serve others will start appearing everywhere.
Are you ready?
You will be, if you do the work. But whatever you do, don’t keep your head down.