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