This is a mobile version, full one is here.
3 September 2019
Daily Stand-up Injection of Guilt
A few years ago I wrote a blog post about the daily stand-up meetings many software teams are doing regularly. Since then, the article has been getting comments from both sides. Readers either 1) strongly agree with me or 2) accuse me of having no idea what morning stand-ups are for.
My point was: only weak managers need such meetings to coordinate the team, while strong ones use more formal instruments to organize the flow of information. However, as someone noted, morning meetings are not supposed to be used by managers to coordinate anyone, but “to discuss progress, impediments and to plan.” I’m not buying it.
Let’s put the manager aside, since many of you believe that “it’s a team that delivers a product,” not a manager. Even though I’m not buying this either, let’s imagine a team that doesn’t need a manager and can perfectly coordinate the work on its own. Even in this case I still ask the same question: why do we need to stand up and talk face-to-face in order “to discuss progress and impediments”? Why can’t we do this in writing, in a chat, by email, or even via a phone call? Well, ideally we should use tickets, of course.
Why do “planning for the next day” and “discussing progress” need to be done personally in a standing-up circle instead of digitally? Why can’t we update each other about progress via an email letter, a status board, or an Excel spreadsheet? Why can’t planning be done in a software tool, which the market is full of? What’s wrong with registering impediments as tickets, prioritizing, assigning, and resolving them one by one?
Nothing. All of this can and should be done online. That’s what computers were invented for. Everybody realizes that. However, Agile adepts strongly believe in face-to-face meetings, including this daily scrum ceremony. Why?
As I said in
Code Ahead, my recently published book,
the only reasonable explanation I have is that
the group needs this ritual in order to stay united. And I meant the group
with a weak and incompetent
A strong and professional management keeps the group together and makes it achieve
the goal through 1) explicitly-defined personal objectives
and 2) non-ambiguous motivational instruments. Simply put,
at every moment of time everybody knows exactly what they have to do in order to get
money what they are there for.
However, most software groups don’t have such great management, for many reasons. Thanks to how Agile has been diminishing project management for years, replacing it with leadership and “team work,” many of the potentially good managers have lost their motivation to work as such. Needless to say, talent among managers is as rare as it is among programmers, dentists, or interior designers. Moreover, great management does not tolerate mediocrity and makes mistakes visible, which, of course, the majority is always against—it will do everything possible to sabotage this. In most software teams an attempt to manage effectively, defining objectives explicitly and motivating by results, will most likely lead to a dismissal of such a courageous manager.
As a result, most programmers neither have personal objectives nor motivational instruments: they stay in the office from nine till five and get a raise every few years only by switching company. And they have supervisors, mentors, coaches, leaders, you name it, … instead of managers.
Thus, how is it possible to keep the group together and make sure programmers at least pretend to be working, if they have no personal responsibilities, their motivation is close to zero, and they can’t be discharged because the cost of recruiting new ones is extremely high? Moreover, new ones will behave exactly the same, simply because this is the most effective behavior for them, when the management is weak (or absent). What instrument can be employed to make them work?
This emotion is one of a few fundamental ones. Most people feel it after
harming someone and will try to avoid it. Programmers, lined up every morning
and forced to explain themselves, inevitably feel guilty: for mistakes,
for impediments, for lack of progress, for their dress, for their accent,
for many other things. It doesn’t matter what they feel guilty for; what is
important is to regularly make them feel ashamed of letting other people down,
even if they don’t. The emotion kicks in when the group is listening and
an individual is speaking, even if there is no real harm done to the group by the
speaking individual. Code Ahead quotes a number
of academic papers confirming that, but there is no need to have a PhD
in psychology in order to understand how vulnerable and scary the position
of someone speaking in front of a group can be (I can confirm that too as a
regular public speaker). Guilt kicks in and the programmer
feels that his or her actions may cause or have already caused problems to others.
The programmer gets back to the computer and starts working hard, without
any objectives or motivation. Except to not let
mommy others down!
To the contrary, a strong and competent management employs formal reward-and-punishment mechanisms in order to align the personal objectives of each team member with the business goals the team is trying to achieve. Here are a few examples of such a mechanism (rewards and punishment mixed together):
- For each successful deployment you get $120
- When this unit test is fixed you get $200
- Every time the server is down for 5+ minutes you lose $500
- You interview a new Java programmer and get $100
- You get $75 for each critical bug you can find
- If you don’t fix this ticket in 3 days, you won’t be paid for it
In order to put such an obvious and explicit motivational system in place the management has to be pretty smart and strong. Moreover, it will require a lot of work to do and may lead to serious problems with the team, since, as was mentioned above, the mediocre majority will try to sabotage it.
Meetings, especially morning stand-ups, are a “perfect” substitute, because they make it possible to humiliate programmers regularly, triggering their innate guilt emotion, which sends these or similar signals to their brains:
- Don’t stop working, you will disappoint
your momthe team!
- Don’t open Facebook, it upsets everybody!
- Work on this ticket, we rely on you!
- Deploy it faster, don’t let us down!
- Be a good boy/girl, don’t keep us waiting!
- If you don’t fix it now, you will be ashamed tomorrow morning!
Every morning stand-up meeting is a refreshment of guilt every programmer needs in order to stay “motivated” and “engaged.” This is the real reason why they are “more effective” than digital and formal flows of information.
Maybe some time in the future we will find a way to deliver guilt in a small pill that every programmer will have to swallow in the morning. Until such a pill is invented, keep doing morning stand-ups.
Who needs regular status meetings? #codeahead— Yegor Bugayenko (@yegor256) September 8, 2019