Unsticking someone else is shipping, too
I jotted down the title for this post a few weeks ago. I was looking for the right way to express the idea when last week life helped out.
Texas drivers don't handle frozen roads too well. It had been snowing lightly for a few hours when I went to pick up my daughter from school. There were patches of ice, but overall, the roads weren't that bad.
The trickiest spot getting out of our neighborhood during such conditions is usually an all-way stop at the top of a small hill. Since traffic is usually light, drivers often run the intersection instead of attempting to gain the hill from a cold start on the slick road.
As I came to the intersection that day, I saw two vehicles nose-to-nose on the side of the road to the left. I slowed and approached cautiously since visibility was limited. Suddenly, a young man stepped out from between the cars, forcing me to stop abruptly to avoid him. He had been securing a tow strap to the bumper of a stranded car and had stepped back into my lane, not seeing me. The driver of the other vehicle was about to attempt to pull the car to higher ground with his 4x4.
Silently cheering them on, I waited and watched the car get on its way. I then set out to continue my journey only to realize I, too, was immobile.
The young man, still holding the free end of the tow strap, simply raised it and shouted over to me, "Need a hand?"
After they pulled me to level ground, I walked over to thank them. The driver said he was returning from checking on his elderly mother but had gotten drafted into his current service. I'm sure it wasn't the afternoon he had planned, but I suspect he made a bigger impact this way.
That question is the heart of the standup. Getting together synchronously isn't as much about gauging status or making strategic decisions as it is removing blockers. While incomplete depedencies can block us, all too often we get stuck on unanswered questions or baffling bugs.
Here are some ways teams can deal with blockers.
Look out for others, offer to help. Watch out for teammates that have gone quiet. Pick up on frustration in the chat room or wherever your team gathers. Sometimes you just need to look up and say "Need a hand?"
Ask for help. If you're stuck, don't be afraid take the problem to the team. Chances are, someone else has faced the same issue.
Share grizzled experience. Good developers are rarely smarter, they've just found more wrong ways to do something. Redeem your mistakes and help someone else out of the same pit.
Document solutions. Don't leave those that come behind you (or future you) own their own. Look for ways to publish what you've learned in getting unblocked. This can be a new paragraph in the project docs, a wiki entry, a detailed commit message, or simply linking issues across projects.
Drop domain knowledge. We all can't be experts in everything. There are areas in which we have a deeper grasp than our teammates. Providing the right context for a teammate working outside their normal area can be invaluable.
Give sign off. Who is waiting on you? Give weight to completed pull requests and other items where a quick would keep someone else moving.