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