Software may be developed within the framework of a contract negotiated with a customer or in response to an internal order originating in another department.
The development unit is committed to an agreed-upon:
functional specification,
budget
schedule.