The most important single aspect of software development is to be clear about what you are trying to build.
All things are possible until they are proved impossible and even the impossible may only be so, as of now.
"The only thing that is certain is uncertainty."