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