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