-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support shared ownership of components #99
Comments
I'm open to take this up should you guys are aligned with the idea. 😃 |
Thanks a lot for opening such a detailed issue! I'm personally against the idea of adding support for shared ownership because in my experience shared ownership really means no ownership and nobody really feels responsible for a thing. This article sums it up pretty well in my opinion. For me the main benefit of having defined owners is that you have a clear person or team to talk to if there are issues with some component and having multiple owners kind of defeats this (i.e. do I go to the first or the second team owning this). That being said I understand that for smaller teams it's not feasible to have an owner for everything. But I'd argue there are better ways of dealing with this than shared ownership:
That's my two cents on the issue. Maybe you or the rest of the team have different thoughts, but in my opinion we should be opinionated here. |
My pleasure. Thanks for taking the time to consider this request. ❤️ Your points are very valid. I agree that having clear-cut ownership for every component is important. However, I also feel like the feasibility to adhere to this principle is highly situational and that baking it into Ruler could limit its usability as a tool.
I'd argue that shared ownership may be better than no ownership in this case. At least with the former, you'd get to know whom to reach out to. Explicitly marking components as unowned may yield a false perspective that anyone is free to do anything without any repercussions whatsoever. Which in my experience is rarely the case.
IMHO, this is a better approach to the problem. But again, very situational as I feel a lot of friction could happen during execution. On smaller teams, bandwidth could become a problem. Larger ones may see overlapping priorities preventing such exercise to be done in a timely manner (if at all). To summarize my point, this looks like a problem that should be solved through proper management and organizational alignment. Ruler as a tool should remain unopinionated and defer this decision to the user. |
Hey, @MrHadiSatrio first of all thanks for your suggestion. I've read your comments and @simonschiller as well and agree on the points made around the ownership, but also agree on the point that Ruler as a tool should not decide that and is okay to support teams that want to have multiple ownership per file. This feature request does not fit on our priority list, but if you are willing to contribute we would be happy to review the PR. |
I understand that and while I don't agree it's obviously up to you if you want to support this or not. But if we want to do we have to carefully think about a few questions, because shared ownership has a few implications:
There are probably also things I didn't think about yet. But we should think this through before we start implementing it. |
Feature description
When a component is declared to have multiple owners, Ruler would report it as such. On the JSON, owners can be outputted as an array. While on the HTML, we can present them in a way so that the component size would be divided equally amongst the teams that own it.
Here's how it could look like on the HTML:
main-team
)lib-team
)dynamic-team
)As for the JSON:
Reasoning
Not every organization has the privilege of having a dedicated team to maintain third-party dependencies / libraries. In such cases, it'd be best to attribute them as something that every teams would own.
The text was updated successfully, but these errors were encountered: