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