Designing a product from scratch can be like driving at night: The road ahead is dark, and only a few feet in front of you are illuminated by your headlights.

That's according to Apurva Gupta, senior designer at Amazon. Speaking last week at the Grace Hopper Celebration, an annual gathering for women in tech, Gupta shared the steps that Amazon takes in designing its software products. The company, founded and led for 27 years by Jeff Bezos, is famous for its execution.

Here's how Gupta says you can create a great product that people want to use. 

1. Determine who your user is.

The early temptation when designing a product is to try to build something that can be used by everyone. But Gupta says this is a mistake. "The first and biggest question you need to ask," she says, "is 'whom are you building for?'"

While building a new product recently, Amazon made a list of potential user groups: software developers, business analysts, data scientists, designers, researchers, marketers. The product team reached out to potential users in those roles and spoke with them about their pain points and needs. On the basis of those conversations, the company determined that software developers were most likely to use the product. "It made sense that for a first launch we'd go after them, and then subsequently expand to different user groups," says Gupta.

2. Test whether your assumptions are valid.

Every entrepreneur wants to think of their product as useful, but that might be overly idealistic. The best way to determine this is to put it in front of the people most likely to use it. This can mean market testing, or it can mean asking people on your own team--ideally, those in roles it's designed for--to give it a go.

As such, Gupta notes that it's important to treat your prototypes not as finished products but as conversation pieces. "You're not only trying to find faults in your design," she says, "but you're also trying to validate that the use cases that you identified are correct, and identify if there is something for the future that you can put on the road map."

3. Understand how the product will grow.

Even in the early days of building your product, it's important to have an idea of what it will look like down the road. "You might think, if you haven't launched yet, that this is a question for another day," Gupta says. "But you'd be surprised." These early stages of product design are when you should take stock of the features that didn't make it into your minimum viable product and store them away for later. 

You should decide at the onset what data points you'll use to measure the success of your product. These metrics are critical, says Gupta--they'll help you decide what features to roll out later on, and will help ensure you have a product that keeps users engaged for years to come.