Prioritizing Tasks and Features Should Happen Naturally
But what does that mean?
The answer seems simple: focus on customer happiness and business values.
Or doesn’t it? Well, it depends on the situation and who you ask. Still, I believe we can agree on a list of considerable items — call it a framework if you’d like — which might help the process.
Clarify and constantly reassess your goals
This sounds obvious at first but often it is forgotten. What is the problem you are trying to solve with your product? Where do you imagine yourself and your project in 1, 2 or 5 years?
The market and business environment are constantly moving. You as a person always change, your values and focus might also shift. Don’t forget to revisit these goals every few month to check if your values are still aligned with what you are trying to build.
You must not make decisions about features without deeply understanding your higher level motivations.
Guesstimate the effects
It gets a bit tricky here. You can easily get distracted by feelings and hunches or fall into the confirmation bias trap. To compare potential features to schedule and implement you must gather the most information available about the circumstances. Drive your thinking with questions below:
- What impact will this feature have on customer happiness and/or our revenue?
- Are every “planned” features ready for development? Could you ship some “less important” ones until you do the research for the big guns?
- How big is your technical debt? Could you make more users happy by fixing the annoying bugs and random errors?
You should spend some time on the last one. Often we get lost in the forest of new features but forget to provide the necessary time and resources for developers to fix bugs and architectural problems (a.k.a maintenance).
Which hurts your business more? A huge downtime or reputation loss caused by a “we don’t have time to fix it” issue or your fancy new feature? Also, nobody likes to work on messy projects. You risk losing your best people which could be avoided with proper attitude.
Let’s get down to task level
Treat features as “mini projects” and break them down into small deliverables. Use feature flags if you need to (careful!). This has two main advantages:
1. You can apply the MVP method to ship it:
Source: @jopas from The Ultimate Guide to MVP
2. Iterative development with prototypes
You get faster feedback and even have the chance to stop the development if the feature turns out to be unuseful. Also, the feeling that things are in motion can keep everyone motivated.
I hope this short summary will help you ease up the stress of feature prioritization.
However, every project is different with special needs of your end users or clients.
So, what are your methods? Get in touch with us on twitter!
If you want to read more about this topic, check out this excellent quora thread.
Originally published at blog.digitalnatives.hu.