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