How to prioritise feature set for an upcoming product release?
This morning I was talking to a product manager of a B2C product and the conversation veered towards feature prioritisation. Though I tried to put forth my ideas in the conversation, I realised putting it through a blog post would be a more effective way to explain succintly. Also putting it through a blog post helps gather feedback and initiate conversations with my fellow readers. So, here is my attempt on the topic.
Planning a release
Planning a release basically has four broad steps:

Applying Pareto principle to feature prioritisation:
80% of the value lies in the 20% of the features.
It is in the best interest of the product manager to focus his energies in identifying the vital 20% of the feature set that would possibly provide him 80% of the value.
Ask yourself this question:
What are the items that have the biggest business impact, that are most important to the customers, that can meet business goals, and are the easiest to do?
In one of my previous posts, I had explained why it serves best for product managers to focus on building less and still achieving more impact.
A Balanced Feature Set
For me a healthy balanced feature set for a release should include the following five focus areas:
Wishlists/feature requests from customers:
These are the top feature requests and wishlists that your organization may have captured through various channels, preferably through a feature request capturing tool. These feature requests may have arrived straight from the customers through an in-product feature tool, or through support team through their interactions with the customers, sales or business development.
New internal ideas
These are a set of feature ideas that reflect new initiatives and directions that the organization decides to implement be it a user experience overhaul, introducing a feature to compete with a competitor. Unlike customer feature requests, these are internally directed and originate from within the organization.
Most common customer problems/workarounds
These are a set of issues that customers complain most about. The best source of these issues come from the support team who deal with them on day to day basis with the customers.
Iterate recently shipped features
These are a set of improvements identified after gathering feedback from the delivered features in the last release. It is of utmost importance to devote a certain amount of development effort to iterate and improve upon last release features.
Improve quality
Quality is as important consideration for the success of a release. I am going to cover a separate blog post specifically on bugs and maintaining quality.

Prioritising the above lists
Once you have each of the above lists with you, you need to prioritize them in a way that feeds into your roadmap.
The most effective way that has worked for me has been putting each item on a simple Value/Complexity matrix.
Assigning them a score from 0-5 each to Value and Complexity helps spread the list of features on a Value/Complexity matrix.

Guidelines for assigning Value/Complexity
Business Value:
Benefit derived from your target market (measure of pain experienced by customer, how often they experience it, how urgent it is to solve the problem)
Benefit derived by your company(increased revenue, increase market share, enter new market, decrease cost, increase customer satisfaction. How much market would be impacted, does it increase differentiation, does it increase overall customer satisfaction, is it aligned to strategic objectives)
Total value = customer value + company value
Complexity
How difficult it will be to implement. Expressed in effort (man-hours) or schedule time (weeks or months) for development effort.
High level estimate can be generated by the development team based on assumptions or requirements and assumed solution generated.
Amount of risk factored in
Once the features are laid out on the matrix, select the ones from Quadrant 1 and 2 first for your roadmap.

Pull the items from quadrant 1 and 2 from each matrices of wish lists, customer problems, new ideas and iterations of recent features.
Prepare your roadmap from this list.

Please let me know if you found this method of feature prioritization and roadmapping useful. If you have ideas to improve this even further, please share in the comment below.