development good needed computer language name instance developers customers domain programming user type person option tests project specific work systems design program projects testing source programmers programs education process content important employees solution company operating developer time customer requirements application number create support practices cost java open business applications data needs product management code