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