Do you ever find you’re swamped by thousands of tiny things that stop you from ever making any real progress?
In software this sort of thing happens pretty often. Perhaps more often than in other industries — we’ve even come up with a handy name for those awkward niggles. “Blockers” are our catch-all excuse for not moving forward.
It can be tempting to leave it at that, and work on something else. When we encounter a problem we side-step it. We must “make progress” on something else, while we wait for the problem to resolve itself. Our work ends up looking something like this:
All those exes represent half-finished stuff that we leave hanging around. With any luck we might finish one of those things, but it certainly looks like we’re starting more than we’re finishing, doesn’t it?
If we continue to start more than we finish, we’ll find that things pile up. And before we know it we’ll be over-run with half finished bits of work that cloud our view of what’s important.
That’s when we start fire-fighting, and desperately picking off bits of work for whoever shouts loudest.
This is a horrible way to live our lives.
This situation is something we all need to work hard to avoid. The solution is simple to describe, but hard to do. Just finish something before you start something. Stop jumping between work streams and focus on something to completion.
The hard part is that might mean working on nothing at all until your blocker is resolved. The best teams learn to recognise these situations, and come together to overcome the problem as quickly as possible. By focusing on clearing road blocks in this way, you will ultimately finish and deliver something.
And one thing delivered is absolutely better than ten things half finished.
Jez Halford is a software development consultant helping teams to deliver better software, more frequently. Visit jezhalford.com to find out more.
Top comments (4)
"The hard part is that might mean working on nothing at all until your blocker is resolved. "
I think that this is the hardest part.
Sometimes that little blocker prevents us from moving forward, and we feel stuck, so we try to do something else in order to feel a little better...
Don't you think that trying to solve only the blocker could be a waste of time?
What works for me is a sequence of actions to deal with blockers:
Flag it up, someone else may have a fix.
Prepare to pause, write up where you are and what stopped you, for your future self to resume cleanly :)
Set a timeout on fixing the blocker, then you know it won’t eat your life, and if you don’t get a fix, it’s a big issue that can go into the backlog or bug list.
Write up the fix, you are going to help someone sooner than you think!
This is a great system!
Oh boy this is me on the daily basis. Time to bite down and finish one thing.