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