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