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