How to prioritize your backlog (big vs small) in agile development

One of the techniques in agile development, particularly when estimating, is to gauge the size of a task using T-shirt sizes, i.e., S, M, L, XL, XXL. Then, based on current velocity, a team can decide what and how many user stories they can commit to in their next sprint.

Often, we will fill up a sprint with nothing but small or medium sized user stories. Indeed, there is something satisfying about getting stuff done (GSD), showing progress, and always shipping. However, there is a cost to this strategy because the larger user stories never get done, even though they may be equally, if not more, important.

On the other hand, sometimes, people will combine multiple sprints so they can focus on getting one large user story done. This could take weeks or months. Meantime, there is a ton of low-hanging fruit that is not getting done. While you are focusing on that huge epic, there are tons of highly valuable user stories, that the organization needs now, that could be executed in a relatively short period of time. But, they have to wait until you get that big, important, thing done.

Both scenarios are problematic. How do you solve the conundrum?

I thought about focusing on the smaller user stories during the week and then making progress on the larger ones during the weekend – or vice versa. But then we would have found ourselves working 7 days a week, 30 days a month, and that is simply not sustainable.

I have been experimenting with simply breaking up the larger user stories into smaller ones and then striking a balance whereby we focus on getting the important low-hanging fruit done in a satisfying cadence while, at the same time, making progress on the larger ones. Of course, according to best practices in project management, the goal is to minimize work in progress (WIP) so even though by breaking the larger ones into smaller ones we extend WIP of the larger epic, we can at least get stuff done while keeping an eye on the big picture.

The truth is that we will never have enough time or money to accomplish everything we would like to do. We simply must prioritize and focus on getting the most important things done first so when time and money does runs out we will have assured ourselves that we focused on the most important priorities.