-
Notifications
You must be signed in to change notification settings - Fork 251
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
Revamp the TC #837
Comments
I forgot one important point - it could be the GC or any other XC that drives the project forward. I guess the importance is to have full time commitment. But looking at the charters currently TC seems to fit the bill most appropriately. |
Definitely examples would be appreciated, in order to have a very clear and concise idea, in case something has doubts regarding this (and detailed scenarios). Overall I think I get why you (and other people in the past) feel this way. @trask and @alolita come to my mind. I think that one of the fundamental problems is that TC members do not often have as many cycles for OTel as they wanted. If there's no time to spend on the project, probably the rest of the discussion cannot take place. Thanks for the feedback, and independently of whether we entirely revamp the TC or adjust it, I think this is good feedback, as it shows there's a lot to be done still. |
@anuraaga thank you for raising this and for the feedback. I'm glad to have a discussion about the structural aspects of the TC (election process, terms, etc), though I'd suggest that we start by deciding what problem we're solving. IMO, at a project level, the problem we've been having is roadmap slippage, and – in some places – roadmap fuzziness. As a related problem, we have scope creep, though that wouldn't bother me much if we hit our dates. @anuraaga since you focused on "moving the project forward," I'm inferring that this resonates with you? So, is that the overarching problem, particularly as it affects OTel end-users and contributors? If not, what is it? |
I think I'm looking more at moving forward at a micro level than the macro level - for OSS projects I think we hope that when an issue is filed, someone owns getting that to resolution, similar for PRs or general discussions. I'd compare to projects with a single BDFL, where it tends to be obvious that that BDFL, who's naturally highly dedicated to the project, will be very proactive in responding to all the contributions, issues, and PRs, that come in. This makes contributors happy, creating a happy ecosystem that can work itself. I think our language SIGs do exhibit this well, possibly because they have fewer maintainers usually. I don't see similar proactive behavior or commitment to ownership by the TC in TC-owned repos. Issues can be left unanswered for days or weeks, PRs often only advance in that small time window after the spec SIG each week, and it generally doesn't feel like the TC's "got our back". I suspect that is one of the goals of the TC - if not, I think it's a missing component of the project. Indeed perhaps this is too much focus on the TC as it does make an assumption on their role - the overarching problem is probably more generally stated as there doesn't seem to be clear ownership of the contributor experience and community, and I think it's important for making sure contributors continue to help us help them. If this is in the TC's scope, then it probably needs to be made more explicit, and there needs to be confirmation that the members are committed to it. If it's not in scope, a separate team could be important. Tangentially, I think another reason for lack of responses on issues, etc, is that OTel is extremely skewed towards vendors - looking at the TC, I guess there is one member, Yuri, who's company is on the user side of observability, though admittedly the cloud providers can be considered both perhaps. But I do see that issues that are interesting in some way to that vendor tend to be acted on most actively, even when there are other user needs getting less attention. I think things would get more balanced if there was more representation from the big observability users too rather than just the vendors. @arminru reached out on Slack and I've pinged him some more detailed examples. I don't think any one person is doing anything wrong or being bad, so don't want to call anyone out. I think it's more structural to the current format of the TC, or possibly the need for a separate committee to augment it with a focus on users and contributors, not just vendors. |
This is a fair critique. My opinion is that this is not because much of the day-to-day project work is funded by vendors, though... rather, and as you point out above, it's more about the lack of a BDFL (or "BDFL-like entity") in OTel. Perhaps this is what you would like the TC to be or become: an entity that can make decisions quickly, even if there's going to be a necessary bias towards that entity's particular ["benevolent"] point of view. In any case, OTel certainly has no BDFL. This is not uncommon for projects that need to find common ground between mannnyyy constituents, as we do with OTel. But it can create delays and a lack of accountability for quick, decisive outcomes, large and small. I could write more but I'm curious to hear what others think here... cc @open-telemetry/governance-committee @open-telemetry/technical-committee |
@anuraaga Thanks for raising the issue. Examples would definitely help to understand what exactly is the problem. Absent examples I can think of a few possible potential problems:
If you could help identify which of these problems you see it would help us to come up with the right solutions. |
On a practical level, it feels to me like TC members are in two groups:
I'm happy to provide advice and assistance, but it feels like a time/resource issue. Ultimately, TC members need to decide how to rebalance their responsibilities so that more cycles are available to providing guidance and feedback to other contributors. |
As the project grows too there are more "cross-sig" responsibilities and decisions to make. Growing the TC to increase bandwidth is an option but comes at a cost. It is much easier for a smaller group to make quick decisions which are consistent with an overall project direction. What have other large open source projects done in these situations? |
I think there may be problems of diffuse accountability, to which I know other projects have done things such as electing individuals to serve as the head of a given sub-area. |
Let's pick HTTP conventions as an example: open-telemetry/opentelemetry-specification#1747. We have a scope and a lot of interest to stabilize the most(?) essential convention, the process to work on it is not clear:
As a contributor and owner of some instrumentations, I don't understand how to move it forward and while I'm happy to navigate through it and take ownership of some parts, I would appreciate TC to help organize and connect people, define processes, and set expectations. Another thing I miss is clear feedback on issues/PRs (at least popular ones): yes/good, but needs more thought/won't fix/etc; and again bringing other interested folks to review and give constructive feedback. |
@lmolkova's comment above resonates with me. What feels lacking sometimes from TC (or other body?) is not the technical excellence, but the technical leadership of driving spec-like things forward. A couple recent examples that pop to mind of what this kind of technical leadership looks like (done very well imo): @reyang's leadership on metrics and @jmacd's leadership on sampling and histogram format. |
@trask @lmolkova excellent points. I want to point few things:
@lmolkova for the semantic conventions: we should have a "semantic convention" SIG + maybe sub-SIGS (specific to different areas) that lead/champion these efforts. Also don't hesitate to start a temporary SIG to solve a problem, where people can meet and discuss more clearly the issues. |
@lmolkova Thank you for the example. I think it is important to call out that the TC charter does not currently make TC’s responsible for leading individual PRs or issues (unless I am misreading the charter, so someone please correct me). Historically, making progress on individual contributions has been the responsibility of the contributors. Ultimately whoever makes a PR submission is tasked with making progress on it. Sometimes the TC members will indeed take responsibility of leading individual PRs and issues. This typically happens when:
Now, I don’t know if this is the right approach or no. Should the TC members instead be directly tasked with driving forward all PRs and issues? If that is what we believe in as a community then I would like to discuss how it can be achieved in practice (it is non-trivial amount of additional work) and then make it a clearly documented part of the TC charter. Regardless of what we decide in terms of direct responsibilities I think another (arguably more scalable) solution to this problem is to improve our contributing guidelines. Make it clear how to make progress on your ideas and your PRs. Have specific guides for classes of topics (e.g. "How to propose and add a new semantic convention"). The guidelines should ideally answer the 4 questions that you posted.
I think this is a fair criticism and we could definitely improve in this area. In terms of feedback things usually fall into the following broad categories:
I think it is the number (2) and (3) that we have problems with. Things that are not exciting and are not wrong enough to warrant active involvement. This is where we are likely to see lack of feedback. There are probably a few ways we could solve this but before jumping to solutions I would like to hear if I see the problems correctly. |
+1 with what @tigrannajaryan said. If a PR has been stuck (e.g. there are lots of debates and people couldn't agree on each other), the owner should try to get people aligned... |
I agree with @bogdandrutu and @tigrannajaryan that reaching consensus is hard and the responsibility of contributors. But some problems are big and important enough to help drive them. Singe contributors can't always build community and drive big things alone. What I'm saying is that we should have more clear and better processes and guidance defined. It seems based on this issue, it's not only my impression that we don't move fast enough. If we get back to HTTP: some great folks already started to drive it: #826. But there is no consensus within GC that it is worth a dedicated SIG (look into the comments). I'd like to have SIG charter and scope documented:
If we had OpenTelemetry project priorities and roadmap documented (do we? I can't find it), we could ask TC members to help on top priority issues with a lack of consensus (at least facilitate the process, not necessarily actively work on it). Another thing that can help is a registry of contributors interested in specific areas so I can tag the right people and connect with them (like informal async SIGs). It can help people who are not full-time on OTel and new contributors find each other. @tigrannajaryan I think you captured my concerns right. And I agree that issues without strong yes/no reactions are the most problematic.
I'm not asking for a formal process, maybe @reyang and @jmacd can just write how they've done it and we can use it as a starting point. |
@tigrannajaryan Your summary looks very good. I probably was misinterpreting the charter in thinking that making sure issues go forward is in the TC's responsibilities. Since TC-owned repos generally get contributions from more advanced members, I guess this is OK. But often a contributor can also try but make no progress in moving an issue forward - presumably the at-mention feature of GitHub is the main mechanism for trying to get consensus from TC members, but even then it's too common to not get replies. I don't think it's fair to even advanced contributors to put it all on them in the face of unresponsiveness - a mandate for the TC to at the least be responsive reactively if not going for proactive, would make these repos more comfortable. Particularly putting focus on the points 2) and 3) - even if the member isn't interested, I think it is up to them to at least do something, maybe telling a different member to respond. |
Following up on this after returning from vacation. We also discussed this during today's GC call. First off, @anuraaga, thank you for raising this. I've often felt that there's some (unintentional) opaqueness with the TC's role at times, and that there aren't enough dedicated lines of communication from contributors to the TC. I really like @tigrannajaryan's most recent reply, and I think that items (2) and (3) are the main source of challenges for contributors. One aspect that has been mentioned on this thread and since the project's inception is how we drive progress. Several notable OSS projects, most notably Linux, have an (often highly opinionated) person in charge who can drive forward progress and make quick decisions. Others, including many CNCF projects and most standards bodies, require consensus across stakeholders before committing to decisions. This can make these projects more welcoming to contributors and open to different ideas, at the cost of velocity. There's a gradient to this obviously, but OpenTelemetry is clearly in the second camp. Still, we have an opportunity to mitigate some the downsides of our structure while continuing to take advantage of the benefits. During the GC call, we committed to the following:
|
Thanks everyone. From the above, is it correct to say that the specification repo does not have a concept of "maintainers" similar to other repos? E.g. maintainers in other repos dedicate a lot of time to these tasks:
(^ from maintainer responsibilities) |
@trask @reyang thanks, apparently the combination of what you found makes the TC members responsible for more actively maintaining the spec repo than it would appear just by reading the TC charter document alone. I think this is fair, however I still would like to have these more clearly written down instead of relying on one document linking to another and resulting in somewhat indirectly implied responsibilities. I will post back here after the TC's meeting. |
Sorry to be late to the party, but I have some specific questions/concerns about Specification repo that I think are relevant to this discussion. First, it oftentimes takes a lot of time (that I can understand) and several pings of TC (that is the problem IMO) to get approved PR merged in the spec repo. That totally may be a problem if diffused responsibility, if TC members don't have strong opinions about a given PR, they may be hesitant to merge it and hope that somebody else will do it. Second, what does it mean that some spec issue is assigned to some TC member? Does it mean anything at all? One would expect that issue assignee is responsible for driving that issue to some conclusion. Currently it may be very confusing for contributors. Should they start working on some spec issue if it is already assigned to a TC member? Third, who is responsible for taking care that there are no issues in spec repo that we actually DON'T want to spend any time on? Like open-telemetry/opentelemetry-specification#239 - clearly we are not going to do that. But seeing that issue may give an impression to some contributor that it is worthwhile starting working on that. Essentially: who is responsible for spec repo backlog grooming? |
This is a good question and it is not answered by our guides in any way currently. I believe our current auto-assignment's purpose is to ensure there is a "first response" from a TC member. It does not mean that the TC member is responsible for driving the issue (otherwise it would imply every problem is resolved by TC members which is unsustainable and undesirable). We likely need to clarify what the "first response" means. It can be typically one of these:
There are probably other outcomes that I am failing to list. In either case I think we need to capture these possibilities in our guidelines and clearly mark each individual issue to be in one of these states. You are right that without this it is unclear who is actually working on the issue and whether someone else should we working on it. I
Are we talking about invalid or "won't fix" issues or just ones that we don't want to spend now but maybe will spend time in the future? These 2 categories will likely need to be handled differently. |
I am going to assign this to myself for now, at least until I post back here after the TC discusses this tomorrow. |
I want to further comment on this question:
In the Scala Specification work, we would assign an "owner" from the language committee whose responsibility was to help make it clear to the issue creator or PR submission what the requirements are to make progress. I.e. It was their responsibility to make sure feedback was accounted for, experts were included and a "way forward" was clear for the contributor. I've seen my own role in the Specifcation/Proto repository, and I've tried (sometimes more successfully than others) to make sure an issue owner knows either (a) whom they should be communicating with or (b) a clear set of technical issues to address to get their PR through. I'd suggest this is what we need from the TC in the specification repository and as @tigrannajaryan suggests, if it's unclear how to move forward (or the TC member is busy) they need to find a new owner for the issue or PR. Ultimately it's the owner's responsibility to get their PR merged, but the TC should make sure the "path" is clear (or not available, for things we decide we're not going to do). |
@tigrannajaryan I meant "invalid or "won't fix" issues" |
I think this discussion is generally bringing up good points. Yet still, I feel like the TC's sentiments set a really low bar. I would phrase both of these as "TC has no responsibility in the spec repo" - is this really the best it can do? Responsibility / ownership are important for making a comfortable atmosphere for the community and contributors. |
I do agree that there are three items which represent needed "technical leadership," as @trask put it, which the TC should bottom-line.
A note on item 2: right now the GC is going to tackle creating a new roadmap, but IMHO the TC should be responsible for (and feel ownership of) the technical roadmap. A note on item 3: currently there is only a TC review when a SIG creates a v1.0 release candidate. For SIGs that have less of a direct connection to the spec working group, this has led to some surprise/churn. C++ is one recent example. Besides extending this review to cover milestones past v1.0, more frequent reviews (quarterly?) would help ensure that SIGs stay on track. Personally, I think performing these tasks well requires a lot of community visibility and represents a lot of work; having a heavy load of code writing and other responsibilities makes it very difficult. But guiding and enabling the community to make contributions generates orders of magnitude more progress than doing the work directly, even though for any given project it always feels faster to do the work yourself. |
The TC has met and discussed this today. The outcome of the discussion is that right now we are putting together a list of action items that we believe help to solve the problems raised. Once we have a reasonable draft I will post it publicly so that everyone in the community can review and provide feedback or suggest other action items. |
@tigrannajaryan and @open-telemetry/technical-committee, thank you for being so open to feedback and responsive. appreciate your work here :) |
I created an issue that captures the initial list of action items that the TC think should help solve the problems discussed in this thread. Please review, comment, suggest changes here #847 |
If there are additional thoughts about this issue please comment, otherwise I think we can close this and continue the discussion in #847 which lists specific action items. |
Thanks for all the help @tigrannajaryan, agree that we can focus on the actions in #847 now :) |
Thanks @tigrannajaryan and @open-telemetry/technical-committee members for starting to think about these areas and taking on action items to work through. |
It's finally time to throw this out there.
I generally find issues in shared repos like the spec, proto, etc, to move slowly, and generally lack leadership. The norm is that an issue may move just a little once per week during a sig meeting, or not at all.
I thought this might be because of a lack of definition of responsibility but I found a list here
https://github.com/open-telemetry/community/blob/main/tech-committee-charter.md#responsibilities-of-the-technical-committee
This in particular stands out
I don't think this happens. Perhaps the wording is too soft and I expect something more proactive - "move discussions forward". Though more important is the facet to make sure contributors are supported.
I think the TC needs to be more meaningful - one big issue seems to be the lack of any way of making sure the TC fulfills its responsibilities.
With no term limit or significant participant process (I remember a huge amount of process for the last GC vote but almost nothing for TC elections) I see no way to ensure that TC members will actually implement this charter.
I want to emphasize that no one person comes to mind while writing this - it's also why I don't want to link to any specific issues / PRs that seem to move without the direction that, at least I would expect from a TC. If you need examples ping me, but if this doesn't resonate at all I would be disappointed.
I think it could be an appropriate time to reconsider and restructure the TC from scratch, focusing on community rather than vendor aspects. If not this may at least jog minds that the TC should be moving things forward in an encouraging way. Fulfil the charter.
As always, I'll link to GitHub's guide which has never felt like it's been implemented in this community (well, some will know I generally refer to OTel as a vendorfest, not a community).
https://opensource.guide/
The text was updated successfully, but these errors were encountered: