3 ms·
I believe that one way to deal with communal ownership is to ensure that transgression against the communal contract are captured and addressed, just as should
by Guthur 6y ago
I believe that one way to deal with communal ownership is to ensure that transgression against the communal contract are captured and addressed, just as should be in social commune. Of course the challenge is to ensure that is done in a positive and constructive manner.
- hayst4ck 6y agoFundamentally, enforcing a communal contract is work, and it's a companies least favorite kind of work: "unplanned". Doing it manually and iteratively is what's called "toil". Toil is anything that is sisyphusian in nature. A key example of toil is pushing code every day. It is necessary and useful, but it doesn't make the company any money, and it's a constant cost that is paid every time code updates. Toil is pushing code, productive work is making continuous deployment a reality. This enforcement of communal contract is toil. The only way to enforce it without toil is via spending engineering time creating systems. Maybe they are dependency injection frameworks, maybe they are servlets, maybe it's refactoring, maybe it's dependency elimination, maybe it's migration, but it is all fundamentally planned engineering work that will come at the cost of other potential work and therefore be at the mercy of management's priorities. Furthermore this kind of work must be opinionated and have the backing of internal authority, because people will absolutely violate the communal contract to get work out faster, especially senior engineers with lots of clout. From a managerial perspective, you plan work on some cadence and expect work to get done. The engineers who are most effective at doing what they said they would do are the ones who are most going to please you, and therefore the ones who are going to get promoted. All toil comes directly at the cost of this. In order for this work to be internally incentivized it must be done as part of the companies overall planning and reward system. Remember that this communal ownership is over a commons (overall complexity), and just like cows over grazing a field and running out of food, engineers over produce complexity and run out of time (time gets spent pushing code, dealing with bugs, running tests, refactoring code, etc.). When individual incentives are sour, you must have a governing body regulate the system. Each cow is individually incentivized to eat their fill, and each engineer is individually incentivized to ship product asap, regardless of code quality. Most damning of all to communal enforcement is that as the number of engineers scales up, any non-explicit contract will be unenforceable as the number of communal "enforcers" with reasonable/relevant scope disappears entirely.