There’s a lot of discussion around the issue of priorities for business requirements. For agile development teams, the priorities of user epics and stories are a hot topic. Most experts will tell us that user stories must be prioritized and delivered in priority order. Sadly, that doesn’t always work out as intended and here’s why.
Let’s say we have 4 user epics that we want to include in the next major software release scheduled for about 3 months from now. We’ll call them Epic Red, Epic Green, Epic Blue and Epic Yellow. Based on discussions with the business stakeholders and power users, we’ve established the following business priorities:
- Epic Red
- Epic Yellow
- Epic Blue
- Epic Green
The developers and the Product Owner jointly decompose the epics into stories and it becomes apparent that there is simply no way to deliver all four epics in about 3 months given staff and budget constraints. We could try to extend the deadline but due to contractual obligations and competitive factors, that won’t fly. We could minimize functionality by partially implementing one or more epics but that’s not what the business wants either. They feel strongly that each epic needs to be released intact.
Now it gets interesting. Let’s say Epic Yellow is a bear — a highly complex feature set. It’s second in priority but requires almost as much work as Epics Red, Blue and Green combined. This means the business can have Epics Red and Yellow (without Blue and Green) or Epics Red, Blue and Green (without Yellow) within about 3 months but not all four.
If we follow strict priority, we’ll release Epics Red and Yellow and follow up with Blue and Green in a later release. However, the business might decide that releasing more functionality has priority over less functionality and therefore Red, Blue and Green are the preferred epics for the next release. Practical considerations might override strict priority.
This is precisely why collaboration among the business team and the technical team is so important. Decisions that appear to be completely reasonable in isolation may not be so reasonable when considered in a broader context.