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