Hypothesis driven development is the scientific method applied to software development.
If a software engineer wakes up in the morning, and hears something that sounds like rain outside her window, she thinks it might be raining. Her hypothesis, that it's raining, drives her decision to look out her window. She knows ahead of time that if she sees rain, it's actually raining, whereas if she sees a sprinkler running, it's not. When she actually looks out her window and sees rain instead of a sprinkler, she decides she should bring an umbrella to work.
When she gets to the office, if she notices people aren't clicking on her website's CTA button, she thinks the button might need to be more visible. Her hypothesis, that the button isn't visible enough, drives her development process. When she wants to verify that the button's visibility is causing the low conversion rate, she creates a new UI with a larger CTA button and tests it alongside her previous UI (probably using A/B testing). She knows ahead of time that if she sees a statistically significant increase in clicks from the users who see the bigger button, that was the problem, whereas if she doesn't see an increase, it wasn't. When she actually runs the test and sees a statistically significant increase in conversions, she decides to roll out the larger button to all users.
This is experimentation: using the scientific method to solve problems, test hypotheses, and create effective solutions. We do it all the time, often without even realizing it. In fact, many recent technology-related processes use this model: agile, devops, and the lean startup business model are based on the experimentation mentality. Hypothesis driven development (HDD) is just the name we give to experimenting on the software development process.
The exact steps of hypothesis driven development are:
Turning every new feature proposition into an experiment means all your feature releases are driven by data. You'll know what your users want, and how the form of that desire shifts over time. You'll know what features your users use and which they don't, which they want and which they only say they want. And because you know these things, you'll be able to create the best product for your customers.