When an application developer wishes to make a modification to an application's resources, those resources should be copied from the production library to the developer's local work directory. This is known as drawdown, and must be recorded, including the date, time, the identity of the developer and the name of the module being copied. This recording process is known as checkout. Only one developer at any time must be allowed to check out and draw down a particular module, in order to avoid the problems inherent in the well-known simultaneous update situation. Control over checkouts may be achieved in a number of ways. However, it is recommended that the drawdown process be achieved by way of a simple utility application that performs the following steps:
When modification of a resource is complete and the resource has been adequately tested, the user level version should be passed to the resource's owner who, after determining that appropriate testing has been satisfactorily carried out, should then promote the new version to production level, ready for access by other developers.
When a user level version of an application resource is consigned to the resource owner, that version must be deleted from the developer's local work directory, in order to ensure that only the latest production level version is accessed by the compiler or link editor during the next build. This operation may be automated as part of the promotion process, or may be left as an explicit task for the developer.