A few days ago I asked my Twitter followers to vote in a simple poll. They did, screaming in comments that only a stupid incompetent manager would ask programmers to send daily reports, while everything they do can easily be tracked in tickets, Git history, and so on. Indeed, why on earth would a sane manager ask software engineers, already very busy with coding, to spend time on writing these ridiculous reporting emails? Let me try to give you a good reason.
Iām sure that in your team 1) every contribution programmers make goes to the source code, 2) each pull request passes a mandatory and strict review process, and 3) everybody is paid only according to the amount of results they contribute. Of course, thanks to such an objective and fair process, all programmers are self-disciplined and self-motivated. They know what they work for, how to achieve better results, and exactly what needs to be done in order to help the project move forward: all metrics are right in front of you, and them. By the end of the month you just open the dashboard, see the numbers and reward the best of them.
Is this how your team works? I doubt it. I was kidding.
Most probably it works like this: 1) some people occasionally commit some code while others barely touch the keyboard spending most of their āwork timeā sitting in meetings and chatting online, 2) everybody gets paid regularly, no matter how much they contribute and those who donāt do anything get as much as the hard-workers, or even more, 3) code reviews are hardly mandatory and very often dirty code gets through, just because nobody wants to offend its author or the review takes too long with no chances to see code improvements, simply because the author doesnāt care. I can continue, if you like.
Sound familiar?
In this situation, which is much more popular than the previous story, how do you, being a manager, make people actually work? Iām talking about those people who donāt work simply because it would be stupid to work when nobody can control the output and canāt really punish anyone for its absence. How do you enforce the discipline in such a team?
You can, of course, go to the tracking system and check how many tickets were closed by Jeff during the day. You can also read the Git history and find out how many lines of code Jeff wrote. Or you can monitor the dashboard every day to see what tasks assigned to Jeff were resolved during the week. You can do all that. The question isāwhat do you do when you find out that Jeff doesnāt do anything? Or that he does much less than everybody else? An even bigger question is: what do you do when you realise that everybody in your team is lazy and does as little as they can do or nothing at all?
Sounds weird and has nothing to do with your reality? Really? Look at this Twitter poll.
So, what do you do with the team, if you canāt really fire anyone and you canāt motivate them in any way: they are paid regardless. How do you discipline them?
The only possible instrument is guilt. I wrote about this before. You have to find a way to make them feel guilty when they get lazy and deliver less than they could. The most popular way to do that is daily standups. You line them up every morning and make them feel uncomfortable reporting the progress. It works and works well in so many teams over the world, thanks to the popularity of Agile. Without these guilt-triggering standups I donāt know where the tech industry would be.
Yet another instrument of the same kind is daily reports. You make your programmers summarize their work during the day and email you. To make the feeling of guilt even stronger, ask them to CC a few other people, like their colleagues, maybe an HR person, maybe someone from another team. Make this list mandatory. It will be very hard to say in the email that the day ended and no results were achieved. They will have to make something up and eventually will start actually doing something.
Some of them will complain that itās micromanagement. Tell them that you are not interested in how they spend their days, but only in knowing the results they delivered. Ask them to report only tangible and visible things, like āticket closed,ā ādocument created,ā or āthe experiment conducted.ā In my opinion, this daily reporting is not micromanagement at all, since you donāt tell them how to achieve their goals. It may be a fine-grained control mechanism, but there is nothing wrong with control, in any management paradigm. Thus, if they go to your supervisor and complain about your actions, you have a perfect explanation: you just want to know about their results, thatās all.
They may say that the information is already available in the tracking system, but you can say that you prefer to get it by email, since itās faster and more convenient for you. Moreover, how much will such a daily report cost them? Five minutes every day, right? Not a big deal.
Donāt tell them about the guilt part, of course. Let it be your secret.
The bottom line is that in the absence of proper management, both morning standups and evening daily reports are the best tools to manage people. What else can you use to connect their performance directly with guilt mechanisms in their brains?
Your team leader is asking you to email him every day with a summary of your daily results. Your reaction:
— Yegor Bugayenko (@yegor256) October 21, 2020
