One of the things I’ve always hated about scrum is the way it’s taught. It’s, “here’s the actions you take to practice Scrum”. Nobody ever explains “why”, just “what”. This just leads to dangerous and pointless cargo cult practices. Then there’s that part in there that says you shouldn’t follow it by the book. Well, how are you supposed to know what’s worth changing or keeping if you don’t even know why you’re doing it? In this article, I plan to teach you why scrum has the processes that it does.
Before I begin, I want to make it clear that I’m not a Scrum evangelist. Scrum is a tool that’s supposed to help you get the job done. If it’s helping you achieve that goal, great. If it’s not, feel free throw out the whole thing. I don’t care either way. I guess I’m saying I don’t have a personal agenda to promote Scrum. I’m just trying to solve a problem with the way it’s taught.
I’m going to use The Scrum Guide as a reference to this article. You may want to read it if you haven’t done so already. It’s just like everything else scrum related: It tells you “what” to do but not “why”. But, it was written as a reference, not a tutorial, so I’m not going to hold that against it.
The Daily Scrum (AKA The Daily Stand-Up)
The Daily Scrum is a 15-minute time-boxed event for the Development Team to synchronize activities and create a plan for the next 24 hours. This is done by inspecting the work since the last Daily Scrum and forecasting the work that could be done before the next one. The Daily Scrum is held at the same time and place each day to reduce complexity. During the meeting, the Development Team members explain:
- What did I do yesterday that helped the Development Team meet the Sprint Goal?
- What will I do today to help the Development Team meet the Sprint Goal?
- Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?
Everyone always complains about the daily meetings as a way to keep tabs on the developer so their manager can be sure they’re actually working on something every day.
To understand “why” there is a daily stand-up, the history is essential. Before Scrum, people would spend hours and hours in meetings trying to figure out the answers to the questions in the bullet points above. It was a huge waste of everyone’s time. This 15 minute time-boxing is one of the main points of the daily scrum. It keeps things efficient and lets developers spend more time developing and less time in meetings.
The first question lets everyone on the team know the progress you’re making. This is mainly for the team to know if you’re on track.
The second question keeps you aware of what your teammates are doing today. For example, imagine you’re a developer and someone from QA says they’re going to spend all day testing a feature that you know is broken and will be fixed in a few days. If you hear them say that, you can inform them that it would be a huge waste of time and they should work on something else. But without this structured meeting, they may never realize they’re wasting their time until it’s too late.
The third question makes everyone aware of problems that are making the team unproductive. It is the Scrum Master’s job to resolve these problems or enable you to solve them on your own. This is much better than just twiddling your thumbs or complaining without anyone caring. The Scrum Master actually has responsibility to ensure you can continue working productively. He has the company’s blessing to talk to someone and re-prioritize their day to get you unblocked.
When no one is assigned to unblock others, it turns into this vague responsibility that nobody ends up caring about. If it’s no one’s job to care about impediments, it’ll take longer to resolve them. Making the Scrum Master aware of your impediments and giving him the responsibility to fix them is likely to speed up the process.
Here’s something in the handbook that may surprise you:
The Scrum Master enforces the rule that only Development Team members participate in the Daily Scrum.
That’s right! For those that think the Daily Scrum is just for management to keep tabs on you, the truth is management shouldn’t even be listening in on these meetings.
I hope this has shed some light on “why” Scrum works the way it does. If you don’t like part or all of Scrum, it’s important to understand the theory behind it if you need make a cogent argument against it. On the other hand, if you do like Scrum, it’s important to understand the theory behind it so you can make a cogent argument for it. The worst thing you can do is follow the process of Scrum without understanding “why” you are doing the things you’re doing.