pandas-dev / pandas

Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
https://pandas.pydata.org
BSD 3-Clause "New" or "Revised" License
43.42k stars 17.85k forks source link

Governance: decision making on technical topics #48346

Open datapythonista opened 2 years ago

datapythonista commented 2 years ago

Parent issue: #47694

Scope of the discussion here: How technical decisions about the pandas project are made

Other governance topics like decisions about funding, creation of pandas workgroups, who is an active core dev... should better be discussed separately, to keep things focused, even if they may affect technical decision making, and are currently not well defined.

Example of technical decision:

Most often decision making in pandas worked well and fluently, with one person leading an effort, other people interested in the topic provides feedback, and we move forward with a solution that everybody seems happy with. Personally, I think this is just fine, and it may not make sense to overthink or add too much overheat to these cases.

But in some cases, we end up with different people having strong conflicting opinions on how to move forward with a topic. In my experience, this can end up being tiring and frustrating for all involved people, and the final outcome is either stay with the status quo for lack of consensus, or taking the decision of the person who has more energy and perseverance to invest in the discussion. From our current governance, we have Wes as the project BDFL who could mediate and make a decision, but in practice this doesn't happen as Wes is not active in pandas anymore.

With the introduction of PDEPs, these technical decisions are probably going to be required more often, with possibly more non-trivial decisions to make, and it'd be good to formalise the process on how decisions are made, as well as to clarify when a decision is assumed to be made.

I personally don't have a strong opinion on what governance model should be implemented. numpy's governance seems quite reasonable, and not far what we've been informally doing. I guess it can be a good starting point. Based on the experience on past pandas discussions I'd personally prefer to have some less ambiguity. For example, specify how much time is required since a proposal it's made, until it's considered that there are no vetos.

I don't want to bias the discussion much here, and please feel free to incorporate here any relevant topic not added by myself, but some of the questions that it may make sense to answer are:

Opening this as an issue, but maybe worth having a dedicated call to discuss this can also be useful. Let me know if there is interest.

CC: @pandas-dev/pandas-core

mroeschke commented 2 years ago

Just clarifying/seeing what issues this would solve:

  1. Making the decision making process more explicit.
  2. Avoid fading interest & lack on clarity on efforts due to unclear consensus on support.

One question I would be interested to see answered is when decisions are made e.g. "call for a vote". Related to 2) above, it seems like a lot of topics discussed on Github/mailing lists can have very thorough & active discussions during a period of time and then lose steam because the discussion stalled or there is lack of clarity on how to move forward.

+1 to have a dedicated meeting to discuss this topic.

jorisvandenbossche commented 2 years ago

I also think that a synchronous meeting to discuss this would be good to get this started (and to see how we further want to approach moving this forward).


Some random thoughts (not concrete proposals, but rather aspects that might be relevant in this discussion or that I find important):

datapythonista commented 2 years ago

Thanks @jorisvandenbossche for the comments, I agree with all your points. And indeed, opening the issue for technical decisions only is just a way to keep the discussion focussed and address one topic at a time. Not sure if decisions for example about funding, or new maintainers should use the same procedure or not. But I guess it can make things easier postponing those discussions until later.

I added a point to today's agenda to see if people are happy to move forward with this. If there is interest, we can schedule the dedicated meeting for the governance.