One of the things that I talked a lot about in some of my previous posts about how we run our agile process is tasks. They have become a very central part of our process, and as such, have become our obsession. You see, when doing estimation it is very important to break things down into manageable tasks, otherwise you end up with riskier (and less accurate) estimates. It's well documented that developers are better at estimating smaller tasks than larger ones. Thus, we break everything into nice small manageable units of work. We then have our whiteboard full of each and every task that's necessary for building out the features for the current iteration. Throughout the week we can look at the whiteboard and see all the remaining tasks. When we finish one task we go to the board and find another. By the end of the week we aim to get all the task cards to go green since that signifies the completion of all the work.
Not quite. Unfortunately, our iterations aren't about getting our task cards to go green. They're about working software. By following our tasks we get a large portion of the way to our goal, however, it's my suspicion that they prevent us from getting as far as we need to.
You see, while task cards can help guide you along your way, they can also blind you. Rather than deciding what the most important thing for you to do next is by thinking, you instead rely on your task cards. Instead of seeing with your own eyes the software work, you instead rely on your task cards. Rather than thinking about how best to design something, you instead rely on your task cards.
Don't let your task cards control you. If you need to use them as a guide, and use them as a barometer for where you are in the iteration, so be it. However, do not obsess. Do not live vicariously through a little white task card. Instead think about what your building. Think about what the software needs to do. Think about the most important things to complete. Think about your software, not your mother f'n task cards. 