You’ve got a great idea! Here’s what to do next…

By Featured, News

Big things start with a simple idea. But what I want to talk about today is how that simple idea grows bigger successfully. Specifically, I want to look at the very first step I believe all entrepreneurs should take before setting out to turn their grand vision into reality!

The vast majority of projects I have worked on in the past have come to me in one of three states:

  • The founder has an extremely simple, short and concise idea, and they are ready to build on that idea with the help of a technical consultant
  • The founder has an idea, and a big roadmap of features they eventually want to build — and they’ve been turning this idea over in their head for months or even years, refining and adding and removing features along the way
  • The founder has already started building, and along the way things got complicated, convoluted, confused or chaotic in some way and they need help getting it back on track.

My dream client is in that first state, of course. But more often than not, the founder is in state two, and has a big list of features they want at launch. But in order to avoid walking blindly into state 3, we need to take a step back and ask a couple questions first…

The first two questions to ask!

All of your future decisions will be based to varying degrees on two foundational questions you should know from day one:

  1. What is the core data object I am working with
  2. What is the core user experience loop I am trying to create?

Your core data object is the root of everything in your app. Its the basis of what you are offering and every other object in your database should flow in some way from this root object.

An app like Instagram, for example, has likes, follows, comments, hashtags, location tags, and so on. But at the root of it all is a photo. Eventually, of course, that expanded to include videos and stories and more, but in the very early stages, everything in the app was a branch off a branch off a branch leading back to a photo.

Your core user experience loop is the most basic, foundational way a user interacts with your app. In almost every case you can simplify this down to ONE user experience (the user does this, then this, then that). In the case of social or sharing apps, you will have two typically (the first user does this and this and this and the second user does this and this and that).

This may seem overly simplistic and tedious, but I promise you it is an important step. You should always keep these concepts in mind as you start to plan out the full feature set, and you should especially keep them in mind as you actually start building!

Far too often I see apps that are in a terrible state, where the core experience is completely broken, but there is a full suite of functionality that has nothing to do with the core experience! For example, imagine a chat app where the chat doesn’t work, or a few messages don’t come through, or the wrong people are receiving messages for some terrible reason — but the app has a full video conferencing mode, or a drawing mode or something else completely separate from the primary function of the app, which is to allow users to chat with each other.

I truly see this all the time, and its astonishingly easy to avoid. Just make sure you know your foundationals!

Let’s look at a few real world examples of what I mean. In every case, the core data object should be the first object you map out in your database, and the core user experience loop should be the very first thing you develop — and develop to absolute perfection. You should not even begin to add new features until that experience loop is closed, works, feels natural, makes sense, and is complete.


  • Core data object: a photo
  • Core user experience loop:
    • Creator:
      1. Select photo from library or take photo with camera
      2. Upload to server
    • Consumer:
      1. View photos in feed

Note: see how bare bones that is? There is nothing about comments, likes, following users… none of that matters if you can’t get the absolute bare minimum working!


  • Core data object: a review
  • Core user experience loop:
    • Reviewer:
      1. Search for a location
      2. Write a review and save to database
    • Reader:
      1. Search for a location
      2. Read reviews for the location

Note: again, extremely simple. A prototype of Yelp would not include much more than this! A prototype is a proof of concept and you are proving that a.) you can build an app that allows users to write and read location reviews, and b.) demonstrating that writing and reading location reviews is something people would want to do.


  • Core data object: a ride
  • Core user experience loop:
    • Driver:
      1. View available fares in real time on a live map
      2. Select and accept a fare
      3. Notify server when ride starts
      4. Notify server when ride ends
    • Passenger
      1. Request pickup by notifying server of location

Note: as always, very simple. A few things to note here is that I have mentioned nothing about payment. In the prototype phase, we don’t care about payment yet! What is the point of building a payment system if we can’t even get the core experience right? This is a perfect example of starting extremely simple, and eventually iterating up to the bigger vision.

Another thing to note here is that the core data object is a ride. What the heck is a ride? This is why we first need to figure out what our core data object is, because we next need to figure out how to represent it!

This is not only important for the obvious reason that our data is foundational to our entire operation, but also because we need to build up our data model in a way that is, to the maximum extent possible, future proof.

In all of these examples, the simple idea grew into something bigger. Instagram added videos, galleries, stories, and more. Yelp offers check-ins and reservations and more. Uber offers multiple types of rides, scooter rentals, bike rentals, and more.

But at their core was a very simple, very concise user experience rooted in a single, primary object. Start there, then build up your roadmap iteratively!

Last modified: February 22, 2020

No comments yet.

Leave a Reply

Your email address will not be published. Required fields are marked *