we you all have managers. Some of them are great, while many are simply idiots. What do you do if you happen to have a boss that fits perfectly into this dominating category? Quit and try to find a better place? This may sound like good advice, but you know as well as I do that a new boss most likely won’t be any better. Don’t quit. Stay. Manage the manager. Most of them are manageable.
First of all, remember your goal: do nothing and get paid. It’s hardly achievable to its full extent, but you can get very close. Doing something useful two hours a week and collecting a paycheck for forty hours is what a professional engineer must aim for. The other 38 hours you will spend on your own projects, your open source ideas, your education, your dreams.
The biggest problem on the road to this success is the manager, who is hired exactly to prevent this from happening. Managers use multiple instruments to catch you and force you to give them your time. Here is what I did in these situations against a really annoying manager I once had:
Tasks. Believe it or not he would assign some coding tasks to me. I would do them very slowly or not do them at all. With a serious shortage of programmers on the market and my relatively good profile he wasn’t able to fire me. So he had to put up with the fact that I simply didn’t write any code, no matter how many tasks were assigned. Very soon he gave up this idea and stopped giving me anything. I basically created an image of a very skilled engineer who didn’t write code. No matter how much you asked.
Meetings. At the beginning he was calling me to all possible meetings, because he thought that I was very smart. I was even smarter than he thought: in each meeting I expressed my opinions in a very aggressive and conflict-provoking way. And I always had enough opinions to express. Very soon he stopped calling me to those hours-long meetings because I was simply ruining them, making strong points, and never “being nice.” Then, when he stopped calling, I pretended to be offended, as if I really wanted to contribute and yet they were all ignoring me. Guilt is a very powerful management instrument, you know.
Reports. From time to time he was interested to know what was going on, mostly by email or in Slack chat. I always had a very long list of things I was “working on,” which were absolutely cryptic to him. He was not a programmer and didn’t have enough courage to verify my claims. Any time he asked what I was busy with, I sent him something like “HDFS reconfig for Docker image” or “Integration tests for JAX-RS endpoints.” He was happy to see that I was very busy and he left me alone for another week or two. Actually, I would recommend you send such reports to your managers pro-actively, before they even ask. This will make them feel even more comfortable.
Morning Stand-ups. These are annoying and very dangerous, because other programmers may catch your lies about “HDFS and Docker.” The best defense is offense: I always acted very interested in what other people were working on. I always asked additional questions too, making them afraid of me. It worked. They never bothered me with their suspicions. Try not to avoid the stand-up meetings—if a manager sees you there they assume that you’re actually working.
Advice. He would ask me for technical advice, to help him make his decisions. This is rather risky, because eventually you have to be responsible for the advice you give, especially if you are a lead developer or an architect. The best way to avoid this risk is to transfer responsibility to someone else. I was always trying to ask somebody in the team to help me: to analyze the problem and create a short email/report with pros and cons. Junior programmers are usually very interested in doing such a favor for someone more senior. Then, I just forwarded that email to the manager. Very soon he stopped coming to me for the analysis and asked the junior guys directly.
Emails. Long email threads are very annoying especially in big teams. I never read them. You should not read them either, if you value your time. However, you can’t just ignore them because everybody will feel that you are either lazy or a sociopath. Neither of which is in your favor. What I always did was pick up on any message from the thread and reply to it, with a question. It’s called trolling. You provoke others to keep the conversation going, even though you’re not interested in it at all. A few emails like that a day and people will think that you’re on top of everything in the team.
Coaching. My manager would ask me every now and then to train new programmers and to help them out. This too was very risky, since the new guys usually decided that I was their friend and would talk to me about everything, consuming my time. To prevent this from happening I would always try to introduce them to somebody else—their new friend. Everybody, if they don’t understand the consequences, is happy to talk to junior programmers and to patronize them. I just had to forward those juniors immediately to the right person.
Personal meetings. This was the most annoying part of all: face-to-face meetings with the manager. He asked me how happy I was in the team, what my plans were, what problems I saw, etc. I was not able to say “Well, I’m happy that you guys are still paying me and my biggest problem is that you annoy me far too often.” Instead I had to invent plans, ideas, problems, and things that I wasn’t happy about. I always kept a list of such things ready, in case a manager ever called me for a meeting.
That was my strategy. How do you manage your managers?
Do you feel guilty sitting in your employer's office, getting a decent salary, and working on your own project most of the time? #codeahead— Yegor Bugayenko (@yegor256) January 13, 2019