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