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