A Software Developer’s Guide to Dealing With Your Boss

Written By John Sonmez

Unless you work in a flat-hierarchy company like GitHub or Valve, or you’ve gone rogue and work for yourself, you’ll no doubt have to contend with that beast of a creature also known as “your boss.”

If you are super politically correct or feel like you need to be the only one in control of your own destiny, and no one can tell you what to do, you might also refer to this person as a manager.

Regardless of the name, we all report to someone––or at least most of us do––if we work in the regular work force.

Learning to effectively deal with your coworkers is definitely important for your well-being and job satisfaction, but learning to deal with your boss can mean the difference between getting fired and/or losing your sanity and climbing the corporate ladder, snagging promotions all along the way.

Having worked on both sides of the table, both being the boss and reporting to the boss, I am going to give you some tools to help you first understand your boss and how you can interact with him or her, and then some tips for dealing with those difficult kind of bosses we all have to face from time to time.

Let’s dive right in.

Understanding Your Boss

It’s always a good idea to observe a wild animal from a distance before trying to interact with it, especially if it has sharp claws and teeth and is known to be aggressive.

In the same vein, it’s important to understand your boss and to know both what motivates your boss and what he cares about in order to better understand how you should deal with this potentially lethal specimen.

Too many employees fail to interact properly with their bosses, not because they are trying to be difficult, but because they just don’t get it.

They haven’t looked at the world through the eyes of their boss. They don’t know what is really expected of them and how to tell good from bad as seen through their boss’s perspective.

To really understand your boss, you need to understand what bosses are measured on, and it’s not the same as what you are.

A good boss is measured on how well the people under him perform and how he is able to manage and report on their activities.

Think about it.

If you owned a company that employed a bunch of software developers and you were going to hire a boss to manage those pesky, unruly developers, what would you judge the performance of this boss on? What would you expect this person to do?

What would make it worth it to you to pay this person money to be the boss?

Probably you’d want this boss to make sure that the work was getting done and that it was being done efficiently.

You’d probably want this boss to report to you about what was going on and to let you know whether projects were on track or not.

You’d probably want this person to keep everything running smoothly and handle any issues that might reduce the efficiency of the team.

These are the metrics your boss is likely judged on.

If you want to know how to become more valuable to your boss, you want to focus on making your boss’s job easier in these areas.

Now, let’s talk a bit about what your boss actually cares about.

This time think about it from his perspective.

If you were the boss and you were being judged by some of the criteria we talked about, what would you care about and how would you want employees under you to act?

The main thing you’d probably care about is status, or information.

You’d probably want to know how the project is doing, what work is being done, how the schedule looks, and any major issues surfacing which could throw things off.

You’d probably also care about the efficiency of the team.

You’d want to know that each person working for you is doing a good job and contributing to the overall success of the team.

It would probably be important for you to not have to hunt all of this information down, but instead have it reported to you.

You’d want your team to operate as autonomously as possible, solving as many issues as possible without you having to intervene.

You definitely wouldn’t want them making mountains out of molehills.

Ideally, you’d like every person working under you to figure out what needs to be done, do it without being told, and keep you informed on the progress, all the while not creating any political drama.

That would make your job easier and you could spend more time watching YouTube videos and golfing.

The Onus Is On You

The reason we are starting here in regards to dealing with your boss is because the real onus is on you.

It’s important to understand power dynamics and fairness.

In the real world here, certain people have more power than others and life, well… it isn’t exactly what I’d call fair.

Your boss might be a jerk––a real asshole––but that doesn’t matter, because he has the power and you don’t.

That means it’s up to you to get along with him and not the other way around.

It’s important to not forget that.

It’s important to respect that position of authority or, if you just can’t do it, leave.

Because that is how the world works and trying to fight reality is not a very effective strategy.

You have to figure out how to effectively deal with your boss, even a bad one.

It starts with you.

What Makes Your Boss’s Job Easier?

Based on what we talked about above, you can probably guess that there are a few ways you can help to make your boss’s job easier.

One of the best things you can do is to start by anticipating the needs of your boss.

Try and figure out what your boss is going to want and perhaps what things are high priority to your boss and try to take care of those things right away.

This could be best described as getting shit done without having to be asked.

As a boss myself, I know that if I have someone working for me who figures out what needs to be done and what I am concerned about and takes care of that before I even have a chance to ask them to, they are extremely valuable.

They’ve both saved me a large amount of time and potential headache, and have proven themselves trustworthy.

I don’t have to spend my time managing them, because they manage themselves.

One less employee to worry about.

I can leave Joe alone and know that Joe will do his thing and produce results, because Joe is able to anticipate my needs, sometimes before I am even aware of them.

I need to hire more Joes and put Joe in charge of more stuff.

What else makes your boss’s job easier?

How about reporting?

One of the big responsibilities of your boss is to know what is going on so that he can report that information further up the chain and so he can diffuse potential problems before they grow and really slow down the team.

You can make that part of the job easier by self-reporting exactly what you did each day along with any other important information that your boss would find useful.

It’s such a simple thing, but I am amazed how many software developers fail to create a weekly report each week detailing out what they worked on during the week and giving summaries of progress and any potential issues.

I started creating weekly reports at every job I worked at fairly early in my career and it was one of the best decisions I ever made.

Not only did it make my bosses happy and make me look good, but it was an iron-clad defence against any accusations of me not pulling my share. Plus it was great supporting material when I argued for why I deserved a promotion.

Finally, I’d say that you can make your boss’s job much easier by actively taking responsibility for the team.

Too many software developers like to point fingers and play the blame game.

In the end, whose fault it is doesn’t really matter.

If you are doing a kickass job and Bob is faltering and not getting his work done, the whole project is in jeopardy.

Your boss might care who is at fault when the project fails, but I guarantee he’s going to be more concerned about getting the project back on track and getting the work done.

That means you can make his job easier by taking the same attitude and not only taking responsibility for yourself, but also taking responsibility for the other members of your team and the team as a whole.

Step up and be the developer who makes sure that everything is running smoothly and what needs to get done is being done.

If it’s not getting done, step in. Offer help. Take on more responsibility.

In short, be the person your boss can count on to resolve problems and move the project forward, and you’ll be regarded as an extremely valuable asset.

This also happens to be a great way to get promoted to a team lead position or to move up the ranks.

We’ll talk about that more in later chapters.

Bad Bosses

Isn’t there a movie about bad bosses?

Yes, I think there is.

I’ve worked for some really good bosses in my career, but I’ve also worked for some horrible ones as well.

And, like I said, the onus is on you, so good boss or bad, you’ve got to figure out how to deal with them or how to find a new job.

In the next section, I’m going to go over the most common types of bad bosses and a few ways I recommend you deal with them. Hang on tight, this ride is about to get bumpy.

Micromanager

This type of boss is probably the most common of the bad boss types and potentially the most annoying.

A micromanager tells you what to do, then he tells you how to do it, then he watches you do it, then he tells you how you did it wrong, and then he asks you about every single detail about what you did, again telling you how you did it wrong.

Your micromanaging boss doesn’t seem to trust you.

He gives you a task and immediately follows up on it like you are a five-year-old who may or may not have actually brushed their teeth and needs mommy or daddy to check to see if the toothbrush is actually wet.

A micromanaging boss can be extremely difficult to deal with, because you feel like he is always breathing down your neck, nothing is ever good enough, and you are just a robot doing the work, unable and not allowed to use your own brain.

I worked with a micromanaging boss who was so extreme that he’d actually check to see what tools I had installed on my computer and ask me to remove certain ones.

So, how do you deal with this kind of boss?

There are a few things you can do.

The first thing is to try to gain their trust by doing what we talked about above in regards to making your boss’s job easier.

If you self-report and volunteer information, you won’t be quizzed about it as much.

Do what needs to be done without having to be asked, but in this case make sure you report on what you are planning on doing.

Nothing freaks out a micromanager more than not knowing what is going on.

Doing those things is going to help, but it might not cure the problem, so here’s another idea.

I stole this one from a book I read called The Art of the Deal by Donald Trump––quite an interesting book, actually.

Anyway, he was actually the micromanager, along with his wife, for a hotel he invested in.

The other investor in the deal was getting tired of all the questions and micromanaging that Trump was doing, so he fired the guy who was running the hotel and instead hired a very welcoming manager who would gladly address any issues Trump or his wife brought up.

In fact, this gentleman took it one step further.

He called Trump to ask his input on every single decision made at the hotel, from how the carpet should be cleaned to what pillows to use.

As you can imagine Trump eventually got fed up with this constant badgering and told the gentleman not to bother him with this nonsense anymore and to run the hotel how he saw fit.

You can employ a similar strategy with a micromanaging boss of your own by engaging in a bit of information warfare.

Overreport information and ask for input on everything that you are doing.

Be a pain in the ass by giving your micromanaging boss more details than he can handle until he asks you to just get it done and report the results back.

Sometimes the best way to “fight” someone is to be like a Judo practitioner and not fight them at all, but instead just let their own momentum take them down.

Browbeater

We see less of this type of boss in the United States––although it still exists, unfortunately.

From the emails I get from software developers in India, I understand that this kind of boss is almost the norm there, sadly.

A browbeater is someone who verbally abuses you and intimidates you into doing what they want.

A browbeating boss works to get you to submit to his authority through the use of the tools of fear and abuse.

A browbeater is a bully.

If you are in a situation where your boss is browbeater, I’m going to be honest with you, you are in a very bad situation.

I’m all for being tough and eating shit when you have to, but you might want to strongly consider getting out of the situation completely and just look for another job.

If you are going to hang on though, you are going to need to be tough and set clear and absolute boundaries as firmly as you can.

It might be a good idea to read the Boundaries book I mentioned in earlier chapters for some background and reference.

The best way to deal with a browbeater––if you must––is to take a stand and not tolerate abusive language or behavior.

You should not allow anyone to talk to you in a demeaning manner, call you names, curse at you, or especially get physical with you (again, more common in places like India, not so much in the U.S. and Europe).

As soon as one of these boundaries is crossed, speak up and say in no uncertain terms “do not speak to me like that.”

Don’t make threats, don’t say you are going to call HR or get a lawyer, just clearly define when something is unacceptable in as calm of a manner as possible.

If they refuse, make fun of you, ask you what you are going to do about it, or engage in some further form of abuse, leave.

You always have the power to engage with someone or not engage with them.

Understand that doing this might get you fired, but it is the best course of action if you are going to remain in this kind of environment.

Your only other alternative is to continue to tolerate the abuse until it progresses to the point where you can’t take it anymore, at which point you’ll be looking for a new job anyway (and perhaps facing criminal charges).

But, in all honesty, just like in the schoolyard, most bullies back down when they are confronted.

Bullies rely on the fact that victims are afraid to stand up to them, and it’s the same with browbeating bosses.

Besides, if you do have to leave the situation, your browbeating boss will have to explain to his boss or bosses why you left.

If you remained calm and collected and don’t do anything inappropriate or hurl back insults in response, he’ll have to outright lie to explain the situation.

If there are witnesses, you’ll be easily vindicated.

Another thing you should do when dealing with a browbeating boss is to document everything.

Document conversations, instances of abuse, exactly what was said by whom and when.

If you get into a HR or legal battle and you have everything documented, you’ll increase the chances of a favorable outcome for you tremendously.

Honestly though, I don’t think anyone should ever have to tolerate a work environment where they are being abused by a boss or coworker.

I am pragmatic though, and I understand that we can get ourselves into what I call squeeze situations where we have very limited options and may have to endure what would otherwise be intolerable.

If you are in one of those situations, or you are just “eating shit” because the opportunity is so good and you are biding your time, and you absolutely don’t want to risk losing your job, there is one other alternative.

You could just develop a really thick skin and not take any of the abuse seriously.

Just laugh it off.

Do your job, don’t take anything personally, and bide your time.

Most people can’t actually remain disconnected and detached enough from the situation to actually do this, so I really, really don’t recommend it.

Ignoramus

We’ve all worked for these kinds of bosses before.

A boss who you just can’t understand how they could have possibly gotten to where they are.

A boss that makes you wonder how they even have the intelligence to tie their shoelaces in the morning.

Yet there he is, presiding over you. Telling you what to do.

Perhaps the Peter Principle was involved, perhaps nepotism or sheer dumb luck, but it doesn’t matter, because this dude with rocks in his head instead of brains is your boss and now you have to deal with him, so how do you do it?

Honestly, I’d rather have a dumb boss than a micromanager or browbeater.

But before we get into dealing with this so-called idiot, perhaps we should take a moment to determine if that is really the case.

It’s really easy to look at someone else who doesn’t agree with you or sees things different than you and think they are dumb, when in fact they may actually be smarter than you give them credit for.

It’s sort of like armchair quarterbacking.

Don’t just assume your boss is dumb.

Not only is it likely not entirely true, but it’s a bad general attitude to have. Whether your boss isn’t quite the sharpest tool in the shed or not, it doesn’t change the fact that this person is your boss and you have to report to him.

I’m going to talk about some ways to deal with a boss who perhaps is not as intelligent in the same way that you are––but just know that there are all kinds of intelligence and your assessment could be wrong.

One of the biggest conflicts in dealing with less than intelligent bosses is that they sometimes ask you to do things that make no sense, or they make decisions which are just plain wrong.

Most software developer’s initial reactions to these conflicts is to come out shooting and blast their bosses with all the arguments and reasons why what they are suggesting is wrong and why you know what you are talking about.

This approach has the same effect as putting a cat on a leash and trying to drag them in the direction you want to go.

They are going to bring out their claws and sink them right down into your couch and hiss at you.

Instead of taking this direct, combative, I’m-smarter-than-you approach, try using your superior intellect to your advantage.

Try asking some intelligent questions which will lead your boss in the correct direction, without being combative.

For example, suppose your pointy-haired boss says, “Hey, we should just make the changes directly in production so that we can get them done faster.”

Instead of slapping him repeatedly, perhaps you could engage in a dialogue akin to this:

“That’s definitely a solution that would get the code deployed faster, but I wonder if there are any possible drawbacks?”

“What do you mean drawbacks? We’ll ship the code faster.”

“Well, what would happen if we introduced a bug that wiped out some customer’s data, and since we went straight to production, we didn’t even realize it?”

“That’s not possible, is it? Hmm, what if we tested it first?”

“Yes, excellent idea! I agree with you, we should set up some kind of a staging server, so we can test the changes before we put them into production.”

“Ok, go do that instead then. Gosh, I’m pretty smart.”

“Yes… yes, you are… boss.”

It takes a bit of humility to use this approach, but it’s much more effective than trying to argue your point logically with someone who may not understand the logic.

It’s also a good idea, in general, to try to explain everything as simply as possible, so that you don’t confuse your boss and cause him to become frustrated with you or just ignore what you are saying altogether.

If your boss isn’t highly technical, don’t speak in complex technical terms to him.

Instead, dumb things down.

Make extensive use of analogies which your boss is likely to understand.

If he’s a football jock, try to explain things in terms of football.

Try to find something your boss does understand and explain things using that metaphor in order to increase understanding, build rapport, and get your points across.

Again, perhaps your boss really is intelligent, but you just think he’s dumb because he’s intelligent in a different way than you.

Sometimes software engineers and highly technical people assume people who understand business or people more so than technology are dumb, when in fact they are quite brilliant.

They just don’t understand computer programming or computer programmers.

So, figure out a way to speak your boss’s language and put things in terms that he will understand.

Finally, fight incompetence with supreme competence.

Be really good at your job and do it well.

Be an ally to your boss, like a wise vizier to a dim-witted sultan.

Or a shrewd royal chancellor advising a less than capable monarch.

Don’t directly challenge your emperor––in fact, at times actually play dumb yourself––but, become indispensable.

Consider giving your boss the credit, while you yield the true power though his utter dependency on you.

Now your doe-eyed boss has become an advantage instead of a handicap.

Slave Driver

The last kind of evil boss you may encounter in your quest is the muscle-bound, tunic-wearing, bloodthirsty creature known as the slave driver.

A slave driving boss works you, and works you some more.

He’s never quite satisfied with the heroic efforts you’ve shown so far and always expects you to take on more tasks, do them faster, and work more hours.

The slave driving boss is trying to milk every employee for every ounce of productivity he can get out of them until they finally burn out or throw in the towel voluntarily.

“Umm… yeah. I’m going to need you to come in on Saturday… yeah.”

What do you do with a boss like this?

Here is another case for clear boundaries.

You need to define, upfront, how many hours you are willing to work for your ruthless overseer.

Don’t get suckered into the trap of working long hours every day and coming in every weekend just because your boss is a lunatic and everyone else is doing it.

Be firm and say that you have other responsibilities that you need to take care of, and that while you are at work, you’ll work hard and get your job done, but you won’t be sacrificing your family and other commitments to work unpaid overtime.

And then do work hard. Work extremely hard!

Be so focused and so productive when you are at work that even though you only work eight-hour days, you get more work done than that poor hapless fools being suckered into working 12 and 14-hour days and coming in on the weekends.

You need to show a slave driving boss that he’s going to get good––in fact, great––work out of you, but it’s going to be on your terms, not his.

I know this is easier said than done.

You might be reading this in disbelief, thinking I’m all talk, but throughout almost my entire career as a software developer, I adopted this policy of working 40 hours a week, except for dire emergencies, and I always got promoted and never had any problems.

I simply went home at 5 p.m. every day and I didn’t come in on weekends.

But when I was at work, I worked hard.

Yes, in some work environments you might get fired for not working ridiculous amounts of overtime.

Yes, sometimes you do need to work extra hours or even come in on weekends, but that should be the exception, not the rule.

You’ll live a much better and happier life if you just decide that you are going to adopt a policy that prevents you from being abused in this manner.

For a slave-driving boss, you should also make sure that you are sending detailed weekly reports showing exactly what you worked on during the week and proving your productivity.

If you can show yourself to be a self-motivated, highly productive worker, your boss is less likely to breathe down your neck.

You’ll also want to avoid the trap of committing to impossible schedules.

Often an overzealous, productivity squeezing boss, will try and get you to commit to ridiculous schedules which can’t possibly be achieved without copious amounts of overtime.

Push back and don’t sandbag the job, but give as realistic and honest estimate as you can.

I’ve often used the language “from the data I have I think it will take at least X amount of time, but I can’t give you an absolute certain answer. What I can do is work as diligently as possible and give you frequent updates on my progress and revise the estimations as frequently as you would like.”

This is a way of not committing to a time period, but committing instead to a process in which you are making the fastest progress possible and constantly providing more and more accurate estimations as time goes on.

Overall though, when dealing with this kind of boss, make sure you set clear boundaries and do not let yourself get taken advantage of.

It can be difficult to initially establish these boundaries, but once they are established, you will find life to be much easier and that they will hold up pretty well.

You Don’t Always Get To Choose Your Boss

Well, hopefully you’ve gained a bit of perspective on dealing with your boss––good or bad.

You don’t always get to choose your boss, so it’s pretty important to learn how to deal with bosses of all kinds.

If your boss is really horrible and you can’t get along with him though, I’d strongly consider looking for a new job. There are some battles that just aren’t worth fighting in life.