I am working on a mobile app with a developer. We want to keep the app simple, but I am more interested in making it an enjoyable/easier experience for the user verses only providing the nuts and bolts.

How do you decide what features to include in an app beyond the "essentials"? (Part of it will determine how much development time we have to commit, but I'm not there yet.) I'm just looking at what features might be possible... I guess I can include features that competitor apps use and see if users respond positively to them, but is that the way most people do it?

  • I don't really see a UX specific issue in this question. Isn't this more of a general software development issue? – Jonathan Arbogast Dec 2 '13 at 19:10
  • @JonathanArbogast I agree with you as there is no definite answer for this, and it isn't very specific either. It is about product development, can be related to software engineering, business analysis, design, marketing, a lot of stuff. It is a gray area. – pcattai Dec 13 '13 at 2:59
  • This question could be improved by considering it from the perspective "how do we determine what experience the user will have, and how do we shape the product to deliver to that finding". There are UX methods available for addressing that question, mostly to do with doing early stage user research. There are even UX methods for validating (or disproving) the hypothesis that the app should be "enjoyable" — sometimes the cigar is just a cigar, and the value desired by users is just a nuts & bolts utility. Not everything needs to be a drama. – Erics Dec 13 '13 at 7:07
  • 1
    This question appears to be off-topic because it is about Project Management and not User Experience. – Benny Skogberg Dec 14 '13 at 13:13

Basic steps to identify the minimum set of features that your app requires, involves identifying your users and their needs first. That helps shortlisting features at the end. If a feature doesn't help to achieve the most important goals (or outcomes) then you can leave it out or put in a backlog.

  • Step 1: Define the Users (Personas) that will use your app.

    This is the people that you're solving the problem for.

  • Step 2: Define & Prioritize their Goals (Outcomes)

    Start a brainstorming session that allows you to identify what you want to accomplish with your app. Every person in the brainstorming session may use different names for the same thing, make sure that you disambiguate terms for Goals (Outcomes) and create an unique list that encompasses everybody's ideas.

    Ask people in your brainstorming session to identify in their opinion which are the most important features among all of those that made it to the list. Write one in small cards, and put coins or jellybeans on top of those that are picked by the members of your team.

    enter image description here

  • Step 3: Identify which features help those Users accomplish which Goals (Outcomes).

    Now that you identified which are the most important activities to be performed in your app, you can select which features help to accomplish those goals. According from its perceived importance, sort them from most important to least important.

    enter image description here

    Start defining which features help accomplish which goals (or outcomes). See if you have a feature that can be used for different goals (or outcomes).

In this regard, a feature is the link between the user and what they're trying to accomplish. But the application itself should be built around user intent to ensure that you don't strip something important out.


Step 1: Define the purpose of your application. Which problems does it solve? Why should anyone use your application instead of the competitors? In other words, why would anybody use your application?

Step 2: Define who your users are. Which types of people are the target base for your application? Creating personas would be a good idea here. Interviews, forms, workshops, are good methods to create these

Step 3: Define what each of these user types will do with your application. Do not make these implementation specific, try to keep these general. A good way of getting these is to have a workshop, preferably with a mixed batch of skills and backgrounds. Have everyone work in small groups to create different ideas, and describe these with a few sentences or a quick mockup.

Put all these up on a board, and classify them according to 1: their difficulty to implement, and 2: how well they fulfill the purpose of your product. After this classification you should have a group of features that are both easy to implement and fulfill the purpose of your product. These ones are high priority. The second highest priority group should either be "hard to implement but high fulfillment of purpose", or "easy to implement but low fulfillment of purpose", use your best judgement here. "hard to implement and low fulfillment of purpose" should be tossed away.

Step 4: According to the priority of your features, start working on how to fulfill these features. These are your specific implementations. A what can be fulfilled by 1 or more hows.

These 4 steps can be visualised and maintained in an impact map, see http://impactmapping.org/.

They can also be expressed as user stories; as a who I want to how so that I can what. Organize these in a product backlog according to your priority, and just start working from the top down until you have a product you're happy with!

Not the answer you're looking for? Browse other questions tagged or ask your own question.