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