The most important single aspect of software development is to be clear about what you are trying to build.
On haters: "If you never want to be criticized, for goodness' sake don't do anything new."