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