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