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