Before beginning custom software development, it's important to know your requirements, development process, timeframe, cost, quality assurance, maintenance and support, and security.