The most important single aspect of software development is to be clear about what you are trying to build.
"When you do something best in life, you don’t really want to give that up – and for me it’s tennis."