Advice

A Software Developer’s Guide to Dealing With Your Boss

John Sonmez · Mar 13, 2017 · 20 min read

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.”\n\nIf 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.\n\nRegardless of the name, we all report to someone––or at least most of us do––if we work in the regular work force.\n\nLearning 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.\n\nHaving 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.\n\nLet’s dive right in.\n\n

Understanding Your Boss

\n\nIt’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.\n\nIn 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.\n\nToo 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.\n\nThey 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.\n\nTo really understand your boss, you need to understand what bosses are measured on, and it’s not the same as what you are.\n\nA good boss is measured on how well the people under him perform and how he is able to manage and report on their activities.\n\nThink about it.\n\nIf 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?\n\nWhat would make it worth it to you to pay this person money to be the boss?\n\nProbably you’d want this boss to make sure that the work was getting done and that it was being done efficiently.\n\nYou’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.\n\nYou’d probably want this person to keep everything running smoothly and handle any issues that might reduce the efficiency of the team.\n\nThese are the metrics your boss is likely judged on.\n\nIf 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.\n\nNow, let’s talk a bit about what your boss actually cares about.\n\nThis time think about it from his perspective.\n\nIf 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?\n\nThe main thing you’d probably care about is status, or information.\n\nYou’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.\n\nYou’d probably also care about the efficiency of the team.\n\nYou’d want to know that each person working for you is doing a good job and contributing to the overall success of the team.\n\nIt would probably be important for you to not have to hunt all of this information down, but instead have it reported to you.\n\nYou’d want your team to operate as autonomously as possible, solving as many issues as possible without you having to intervene.\n\nYou definitely wouldn’t want them making mountains out of molehills.\n\nIdeally, 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.\n\nThat would make your job easier and you could spend more time watching YouTube videos and golfing.\n\n

The Onus Is On You

\n\n\n\nThe reason we are starting here in regards to dealing with your boss is because the real onus is on you.\n\nIt’s important to understand power dynamics and fairness.\n\nIn the real world here, certain people have more power than others and life, well… it isn’t exactly what I’d call fair.\n\nYour boss might be a jerk––a real asshole––but that doesn’t matter, because he has the power and you don’t.\n\nThat means it’s up to you to get along with him and not the other way around.\n\nIt’s important to not forget that.\n\nIt’s important to respect that position of authority or, if you just can’t do it, leave.\n\nBecause that is how the world works and trying to fight reality is not a very effective strategy.\n\nYou have to figure out how to effectively deal with your boss, even a bad one.\n\nIt starts with you.\n\n

What Makes Your Boss’s Job Easier?

\n\nBased 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.\n\nOne of the best things you can do is to start by anticipating the needs of your boss.\n\nTry 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.\n\nThis could be best described as getting shit done without having to be asked.\n\nAs 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.\n\nThey’ve both saved me a large amount of time and potential headache, and have proven themselves trustworthy.\n\nI don’t have to spend my time managing them, because they manage themselves.\n\nOne less employee to worry about.\n\nI 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.\n\nI need to hire more Joes and put Joe in charge of more stuff.\n\nWhat else makes your boss’s job easier?\n\nHow about reporting?\n\nOne 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.\n\nYou 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.\n\nIt’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.\n\nI 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.\n\nNot 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.\n\nFinally, I’d say that you can make your boss’s job much easier by actively taking responsibility for the team.\n\nToo many software developers like to point fingers and play the blame game.\n\nIn the end, whose fault it is doesn’t really matter.\n\nIf you are doing a kickass job and Bob is faltering and not getting his work done, the whole project is in jeopardy.\n\nYour 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.\n\nThat 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.\n\nStep up and be the developer who makes sure that everything is running smoothly and what needs to get done is being done.\n\nIf it’s not getting done, step in. Offer help. Take on more responsibility.\n\nIn 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.\n\nThis also happens to be a great way to get promoted to a team lead position or to move up the ranks.\n\nWe’ll talk about that more in later chapters.\n\n

Bad Bosses

\n\nIsn’t there a movie about bad bosses?\n\nYes, I think there is.\n\nI’ve worked for some really good bosses in my career, but I’ve also worked for some horrible ones as well.\n\nAnd, 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.\n\nIn 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.\n\n

Micromanager

\n\n\n\nThis type of boss is probably the most common of the bad boss types and potentially the most annoying.\n\nA 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.\n\nYour micromanaging boss doesn’t seem to trust you.\n\nHe 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.\n\nA 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.\n\nI 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.\n\nSo, how do you deal with this kind of boss?\n\nThere are a few things you can do.\n\nThe 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.\n\nIf you self-report and volunteer information, you won’t be quizzed about it as much.\n\nDo 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.\n\nNothing freaks out a micromanager more than not knowing what is going on.\n\nDoing those things is going to help, but it might not cure the problem, so here’s another idea.\n\nI stole this one from a book I read called The Art of the Deal by Donald Trump––quite an interesting book, actually.\n\nAnyway, he was actually the micromanager, along with his wife, for a hotel he invested in.\n\nThe 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.\n\nIn fact, this gentleman took it one step further.\n\nHe 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.\n\nAs 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.\n\nYou can employ a similar strategy with a micromanaging boss of your own by engaging in a bit of information warfare.\n\nOverreport information and ask for input on everything that you are doing.\n\nBe 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.\n\nSometimes 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.\n\n

Browbeater

\n\nWe see less of this type of boss in the United States––although it still exists, unfortunately.\n\nFrom the emails I get from software developers in India, I understand that this kind of boss is almost the norm there, sadly.\n\nA browbeater is someone who verbally abuses you and intimidates you into doing what they want.\n\nA browbeating boss works to get you to submit to his authority through the use of the tools of fear and abuse.\n\nA browbeater is a bully.\n\nIf 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.\n\nI’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.\n\nIf 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.\n\nIt might be a good idea to read the Boundaries book I mentioned in earlier chapters for some background and reference.\n\nThe best way to deal with a browbeater––if you must––is to take a stand and not tolerate abusive language or behavior.\n\nYou 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).\n\nAs soon as one of these boundaries is crossed, speak up and say in no uncertain terms “do not speak to me like that.”\n\nDon’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.\n\nIf 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.\n\nYou always have the power to engage with someone or not engage with them.\n\nUnderstand 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.\n\nYour 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).\n\nBut, in all honesty, just like in the schoolyard, most bullies back down when they are confronted.\n\nBullies rely on the fact that victims are afraid to stand up to them, and it’s the same with browbeating bosses.\n\nBesides, if you do have to leave the situation, your browbeating boss will have to explain to his boss or bosses why you left.\n\nIf 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.\n\nIf there are witnesses, you’ll be easily vindicated.\n\nAnother thing you should do when dealing with a browbeating boss is to document everything.\n\nDocument conversations, instances of abuse, exactly what was said by whom and when.\n\nIf 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.\n\nHonestly though, I don’t think anyone should ever have to tolerate a work environment where they are being abused by a boss or coworker.\n\nI 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.\n\nIf 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.\n\nYou could just develop a really thick skin and not take any of the abuse seriously.\n\nJust laugh it off.\n\nDo your job, don’t take anything personally, and bide your time.\n\nMost people can’t actually remain disconnected and detached enough from the situation to actually do this, so I really, really don’t recommend it.\n\n

Ignoramus

\n\n\n\nWe’ve all worked for these kinds of bosses before.\n\nA boss who you just can’t understand how they could have possibly gotten to where they are.\n\nA boss that makes you wonder how they even have the intelligence to tie their shoelaces in the morning.\n\nYet there he is, presiding over you. Telling you what to do.\n\nPerhaps 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?\n\nHonestly, I’d rather have a dumb boss than a micromanager or browbeater.\n\nBut before we get into dealing with this so-called idiot, perhaps we should take a moment to determine if that is really the case.\n\nIt’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.\n\nIt’s sort of like armchair quarterbacking.\n\nDon’t just assume your boss is dumb.\n\nNot 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.\n\nI’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.\n\nOne 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.\n\nMost 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.\n\nThis approach has the same effect as putting a cat on a leash and trying to drag them in the direction you want to go.\n\nThey are going to bring out their claws and sink them right down into your couch and hiss at you.\n\nInstead of taking this direct, combative, I’m-smarter-than-you approach, try using your superior intellect to your advantage.\n\nTry asking some intelligent questions which will lead your boss in the correct direction, without being combative.\n\nFor 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.”\n\nInstead of slapping him repeatedly, perhaps you could engage in a dialogue akin to this:\n\n“That’s definitely a solution that would get the code deployed faster, but I wonder if there are any possible drawbacks?”\n\n“What do you mean drawbacks? We’ll ship the code faster.”\n\n“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?”\n\n“That’s not possible, is it? Hmm, what if we tested it first?”\n\n“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.”\n\n“Ok, go do that instead then. Gosh, I’m pretty smart.”\n\n“Yes… yes, you are… boss.”\n\nIt 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.\n\nIt’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.\n\nIf your boss isn’t highly technical, don’t speak in complex technical terms to him.\n\nInstead, dumb things down.\n\nMake extensive use of analogies which your boss is likely to understand.\n\nIf he’s a football jock, try to explain things in terms of football.\n\nTry 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.\n\nAgain, perhaps your boss really is intelligent, but you just think he’s dumb because he’s intelligent in a different way than you.\n\nSometimes 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.\n\nThey just don’t understand computer programming or computer programmers.\n\nSo, figure out a way to speak your boss’s language and put things in terms that he will understand.\n\nFinally, fight incompetence with supreme competence.\n\nBe really good at your job and do it well.\n\nBe an ally to your boss, like a wise vizier to a dim-witted sultan.\n\nOr a shrewd royal chancellor advising a less than capable monarch.\n\nDon’t directly challenge your emperor––in fact, at times actually play dumb yourself––but, become indispensable.\n\nConsider giving your boss the credit, while you yield the true power though his utter dependency on you.\n\nNow your doe-eyed boss has become an advantage instead of a handicap.\n\n

Slave Driver

\n\n\n\nThe last kind of evil boss you may encounter in your quest is the muscle-bound, tunic-wearing, bloodthirsty creature known as the slave driver.\n\nA slave driving boss works you, and works you some more.\n\nHe’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.\n\nThe 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.\n\n“Umm… yeah. I’m going to need you to come in on Saturday… yeah.”\n\nWhat do you do with a boss like this?\n\nHere is another case for clear boundaries.\n\nYou need to define, upfront, how many hours you are willing to work for your ruthless overseer.\n\nDon’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.\n\nBe 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.\n\nAnd then do work hard. Work extremely hard!\n\nBe 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.\n\nYou 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.\n\nI know this is easier said than done.\n\nYou 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.\n\nI simply went home at 5 p.m. every day and I didn’t come in on weekends.\n\nBut when I was at work, I worked hard.\n\nYes, in some work environments you might get fired for not working ridiculous amounts of overtime.\n\nYes, sometimes you do need to work extra hours or even come in on weekends, but that should be the exception, not the rule.\n\nYou’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.\n\nFor 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.\n\nIf you can show yourself to be a self-motivated, highly productive worker, your boss is less likely to breathe down your neck.\n\nYou’ll also want to avoid the trap of committing to impossible schedules.\n\nOften 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.\n\nPush back and don’t sandbag the job, but give as realistic and honest estimate as you can.\n\nI’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.”\n\nThis 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.\n\nOverall though, when dealing with this kind of boss, make sure you set clear boundaries and do not let yourself get taken advantage of.\n\nIt 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.\n\n

You Don’t Always Get To Choose Your Boss

\n\nWell, hopefully you’ve gained a bit of perspective on dealing with your boss––good or bad.\n\nYou don’t always get to choose your boss, so it’s pretty important to learn how to deal with bosses of all kinds.\n\nIf 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.\n\n


\n\n

John Sonmez

John Sonmez

John Sonmez is the founder of Simple Programmer, author of "The Complete Software Developer's Career Guide" and "Soft Skills: The Software Developer's Life Manual." He helps software developers build remarkable careers.