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