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