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