Code Stewardship

The other day I learned a new word. I've heard about code owner ship and collective code ownership before but I've never heard of code stewardship before so I looked it up. At first glance I think code stewardship sounds very much like code ownership. The subtle difference that the ownership is collective but one person is responsible for a certain part sounds like code ownership in my ears. Searching for discussions on code stewardship I stumbled over this discussion. From that discussion I can only draw one conclusion; it depends on what you mean with code ownership and code stewardship if it is a bad thing or not.

However I do not share the opinion that stewardship pinpoints a fact that is bound to happen anyway i.e. that some developers will gravitate toward certain areas and that this is generally a good thing. Developers will probably gravitate toward certain areas if they're not careful, that is an undisputed fact. But that is generally a bad thing in my experience, not a good thing. Even if I accept the fact that stewardship have certain benefits over ownership I still don't see how it will beat the benefits of collective ownership. I'd rather say that code stewardship is a step on the way toward collective ownership and as such it is valuable.

In the talk against collective ownership I've heard arguments that teams delivering APIs can't have collective ownership because the API will be inconsistent. But this is just a sign that you look upon APIs differently than for example a GUI. You will use usability experts and end users to make sure a GUI is consistent and easy to work with. You should do the same thing with an API. So collective ownership does not allow you to make a bad interface regardless of what that interface is. Collective ownership means that everybody on the team is responsible and should be encouraged to make changes wherever is needed. It does not mean individuals can do whatever they want trashing your product.