Code ownership, stewardship, or free-for-all?
A model that is common in open source but yet not in the corporate world is that of gatekeepers. It&#x27;s essentially a form of strong code ownership combined with stewardship where a majority of contributions are not necessarily created by the owner&#x2F;gatekeeper. Instead a gatekeeper works with a small group of others to accept, integrate, and coordinate change request from a larger group of people. Their job is to reject bad changes, and ensure integrity of the overall project is balanced with the needs and wants of those contributing code. For most contributors the repository they contribute to is read only. They have to fork it to even be able to modify it.<p>Linux is the classical example of this. But many open source git projects work like this now. Commit access on an open source project is reserved for people in a gate keeper role. Usually these people are also contributing significant amounts of code. But the whole point of being open is that others can look at your code and modify it. And of course there is no obligation to merge those changes. You have to ask for those changes to be merged. And that request can be denied for all sorts of reasons. To get changes in, you have to negotiate with the gatekeeper and work by their rules.<p>Somehow this model never really caught on in the corporate world. They&#x27;ll use git of course and they do pull requests even. But it&#x27;s quite common for all people to have commit rights and have just a soft rule that pull requests ought to be reviewed and merged by someone else. But most companies and teams end up cutting corners when they are under time pressure or when management throws its weight around. Once a pull request has work done on it, it just becomes hard to reject it without creating a lot of internal conflict. Unlike the open source community where you have to negotiate with the repository owners to get your change accepted, corporate gatekeepers, if they exist at all, typically lack the independence that e.g. Linus Torvalds would have to accept&#x2F;reject changes. They&#x27;ll bow to management pressures, arbitrary dead lines, etc.<p>Gatekeepers like that are essential to large scale software open source projects. The short term interests of contributors are balanced with the long term interests of the software product. Companies seem to have a much harder time doing that. I think that especially large companies should be adopting this model.