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