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