DEV Community

Roelof Jan Elsinga
Roelof Jan Elsinga

Posted on • Originally published at on

3 things to do to prioritize new features

"Man with too many choices"

3 things to do to prioritize new features

Prioritizing is difficult, especially when you have many different things you could do. Choosing the next feature to work on for your web application feels like prioritizing tasks, they all seem important and there is no way you can do multiple at once. In this post, I'll go over a few simple things you can do to choose the next new feature you should work on.

Don't build anything until it hurts

When building an application there are always at least five things you want to implement at the same time. As a challenge to yourself, you should try to not build any of them and see which one of them starts to hurt you first. By hurting you I mean the following: it takes you more time to do something because the feature isn't there. Features are all about allowing you to do something quicker.

As a very rough example you can think of this: To create a blog post, you don't need a form, you don't even need a page. All you need is a database client. You can enter your blog post straight into the database and never need any pages to manage this. This is fine as long as it's a quick task. As soon as the lack of a form starts to cost you valuable time, you build the form and the ability to manage your blog posts more efficiently. This is a ridiculous scenario, but you can transform this into your own situation.

Find the lowest effort, biggest gains feature

Software developers are lazy, and that's exactly what you should be. Being lazy means that you'll find the quickest and easiest way to solve a problem. This same idea goes for picking your next feature. There is no point in spending hours on something that 90% of your visitors won't see. Instead, find something that can be done quickly, takes very little effort but will help a large majority of your visitors.

As an example, let's go with something like designing your administration dashboard. This is the dashboard from the previous example, where you can write your blog posts. You're likely the only one that will ever see that dashboard, so you can make it exactly like you want to. However, since you're the only one that uses it and knows exactly how it works, there is no point in making this very pretty. Sure, it might look great and you can show it off to others, but your workflow might not improve. Instead, add something that helps you to spread your blog posts, like an RSS feed. This can help you to effortlessly cross-post your content to other websites, without manual actions from you.

Ask yourself: "What is the job that needs to be done"

"Jobs to be done" is an amazing way of making your application resonate with your target audience. Instead of adding features that you think might benefit your visitors, really ask yourself "What is the visitor trying to do". In case of a blog post, they're probably trying to find that one line in your post that gives them what they need. In this case, add a full-text search for all your content. Let them find that line as quickly as possible. For a blog, it's obviously better if those people stay on your website longer and read the blog post, but they should do this because they enjoy your content, not because you're tricking them into staying on your website.


It's tough to choose which feature you should work on next, but these three steps will make it easier for you:

  1. Don't build anything until it hurts
  2. Find the lowest effort, biggest gains feature
  3. Ask yourself: "What is the job that needs to be done"

By doing these three things, you will work less on features that might not actually be work the effort you're putting into it, and more on the feature that will benefit you and your visitors. I've used these guidelines for my own projects and so far it has worked well. It has caused my projects to be leaner because less unused features make it into the applications and the features that are there work well enough to not cause any pain. It might be worth checking out for your current or upcoming projects.

Top comments (0)