You have a codebase
You commission a feature, a refactor or a fix. Each task is clearly defined, commissioned individually and has an unambiguous definition of acceptance. We deliver a pull request to your target branch; you do the merge. After acceptance you are free to decide whether to continue.