The most important single aspect of software development is to be clear about what you are trying to build.
If you're not failing occasionally, you're not pushing hard enough.
The greatest wisdom is to know that you know nothing.