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