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