The essentials of Agile software (product) development:
Accept that you start not knowing the solution. Understanding is emergent.
Take the following approach:
- Find out where you are
- Take a small step towards your goal (and if there are multiple choices here, take the path of least regret, or the one that makes future change easier)
- Adjust your understanding based on what you learned
- Repeat
(Yes, that’s it).