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