After we have an idea of what we want to create—a better email app, a faster database or a yummier chocolate cake—we go through a process of building prototypes, or ugly first versions, that we put in front of prospects to get their feedback. We then incorporate new ideas, adding and removing features based on that feedback. We repeat the cycle, often for months or even years, until we have something that our early customers really seem to love.