The most important single aspect of software development is to be clear about what you are trying to build.
Luck has nothing to do with it, because I have spent many, many hours, countless hours, on the court working for my one moment in time.