I am often asked what is the difference between Computer Science and Software Engineering. Many people think the difference is semantics, but they are mistaken. While a proper contrasting will have to wait for a post of its own, the difference that matters for this post is the focus on development process.
So, i figured it was time to share my thoughts on perhaps the most common addition to mainstream development in the last 10 years: stand ups.
The traditional stand up
For the uninitiated, a stand up is a short, daily meeting. It is usually done in the morning with the team/department/company depending on the number of people. As the name suggests, people stand during the meeting, as it promotes brevity. Everyone stands in a circle, and people go clockwise giving their update. In these updates, each person lists 3 things:
- Yesterday i did...
- Today i am doing...
- I am blocked by...
The value of the meeting is twofold. Naturally, it serves as a simple way to keep team members up to date with one another's activities. Perhaps more importantly, it is a good time for team members to identify that their help could be useful on another's project. While this is occasionally timeline related, it is usually because someone with domain knowledge realizes they have some helpful ideas or tips. Stand ups are a great way to have team members organically notice and take advantage of these opportunities.
The stand up stuffed animal
So all that said, there are a few issues i have with stand ups. And over the years, i've found some twists that speed up stand ups and get better information in the process.
As the stand up becomes routine and teams grow, people stop as much paying attention to them. Because people give their status in order, the opposite side of the circle will mentally check out knowing they a while before they get to go. The easy fix to this is to stop going sequentially. We do this by having an object that the person talking holds. When they finish, they toss it to another team member.
The object can be anything you'd like. We've used everything from small stuffed animals to light medicine balls (yes, seriously). This works surprisingly well because it adds a degree of memorization to the process, where everyone needs to know who has gone. Also, there always seems to be a natural stigma that grows out of people who fail to catch a toss to them. It is amazing how much more engaged everyone stays with something being tossed around.
We care about how one another feel
The next major change is everyone has to report, in a few words, their sort of emotional status. We do this by just giving a color (green, yellow or red) for their professional as well as personal lives. Side note, you'll be amazed as how quickly you learn that chartreuse is half way between green and yellow. Everyone also gives a "one thing" they will do for themselves today.
This may sound touchy-feely to some, but in practice it works well. Not only does it bring teams closer, it serves as an early indicator when someone is getting stressed or is disliking their work. As someone charged with keeping a team happy, this is enormously beneficial.
You don't care what i did yesterday
Finally, let's be honest: you, nor i, give a shit about what the other person did yesterday. Instead, our stand reporting is now focused on wins and... not wins:
- My wins lately are...
- My "in the ditch" moment(s) were...
- I am blocked by...
We use "in the ditch" instead of losses because you will see it is rare to have a loss without some associated learning. Instead, think of "in the ditch" as a opportunity to highlight things others should be aware of moving forward, and how to fix/avoid it.
The skeptical among my readers will quickly point out that this stand up format completely lacks upcoming tasks, which are usually important. I can't disagree, and shared the same concern when i first suggested this. What i have found is that upcoming tasks are almost always mentioned in one of those three points. Worse case scenario, you can always ask.
What to expect
As a final note, i thought i should give an example of what a usual standup status report sounds like for my team. Since the process is big on candor, i figure why not share the status i gave this morning.
I am Green and Green. My one thing will be to bike home early so i can shower and watch the Bronco's have to start Mark Sanchez at quarterback. Ha!
Wins: after a breakthrough on the photo manager yesterday, the page is starting to feel close to completion. I'm starting to see the light at the end of this tunnel.
Ditch: said breakthrough took a while to get to, so i'm still feeling a bit late on getting to drag and drop.
Blocked: i'm not blocked by anything.
toss the standup squirrel to another team member
So there you have it. A few simple changes that add a fresh twist to an important but somewhat tiresome routine. Give it a try with your team for a week, as it can take a few days to get into the swing of it. Old habits die hard.
Remember that stand ups, like iteration lengths, are malleable. You should never feel stuck in tradition when each team is different. Even if these methods don't work for you, other changes might. Your job is to find them.
tl;dr: Stand ups are a helpful practice, but they can be both boring and unhelpful. These are some simple fixes to both problems.