For the improvement proposals, I think one major point was to make them really 
visible to users who are not contributors, so we should do more than sending 
stuff to dev@. One very lightweight idea is to have a new type of JIRA called a 
SIP and have a link to a filter that shows all such JIRAs from 
http://spark.apache.org. I also like the idea of SIP and design doc templates 
(in fact many projects have them).

Matei

> On Oct 7, 2016, at 10:38 AM, Reynold Xin <r...@databricks.com> wrote:
> 
> I called Cody last night and talked about some of the topics in his email. It 
> became clear to me Cody genuinely cares about the project.
> 
> Some of the frustrations come from the success of the project itself becoming 
> very "hot", and it is difficult to get clarity from people who don't dedicate 
> all their time to Spark. In fact, it is in some ways similar to scaling an 
> engineering team in a successful startup: old processes that worked well 
> might not work so well when it gets to a certain size, cultures can get 
> diluted, building culture vs building process, etc.
> 
> I also really like to have a more visible process for larger changes, 
> especially major user facing API changes. Historically we upload design docs 
> for major changes, but it is not always consistent and difficult to quality 
> of the docs, due to the volunteering nature of the organization.
> 
> Some of the more concrete ideas we discussed focus on building a culture to 
> improve clarity:
> 
> - Process: Large changes should have design docs posted on JIRA. One thing 
> Cody and I didn't discuss but an idea that just came to me is we should 
> create a design doc template for the project and ask everybody to follow. The 
> design doc template should also explicitly list goals and non-goals, to make 
> design doc more consistent.
> 
> - Process: Email dev@ to solicit feedback. We have some this with some 
> changes, but again very inconsistent. Just posting something on JIRA isn't 
> sufficient, because there are simply too many JIRAs and the signal get lost 
> in the noise. While this is generally impossible to enforce because we can't 
> force all volunteers to conform to a process (or they might not even be aware 
> of this),  those who are more familiar with the project can help by emailing 
> the dev@ when they see something that hasn't been.
> 
> - Culture: The design doc author(s) should be open to feedback. A design doc 
> should serve as the base for discussion and is by no means the final design. 
> Of course, this does not mean the author has to accept every feedback. They 
> should also be comfortable accepting / rejecting ideas on technical grounds.
> 
> - Process / Culture: For major ongoing projects, it can be useful to have 
> some monthly Google hangouts that are open to the world. I am actually not 
> sure how well this will work, because of the volunteering nature and we need 
> to adjust for timezones for people across the globe, but it seems worth 
> trying.
> 
> - Culture: Contributors (including committers) should be more direct in 
> setting expectations, including whether they are working on a specific issue, 
> whether they will be working on a specific issue, and whether an issue or pr 
> or jira should be rejected. Most people I know in this community are nice and 
> don't enjoy telling other people no, but it is often more annoying to a 
> contributor to not know anything than getting a no.
> 
> 
> On Fri, Oct 7, 2016 at 10:03 AM, Matei Zaharia <matei.zaha...@gmail.com 
> <mailto:matei.zaha...@gmail.com>> wrote:
> 
> Love the idea of a more visible "Spark Improvement Proposal" process that 
> solicits user input on new APIs. For what it's worth, I don't think 
> committers are trying to minimize their own work -- every committer cares 
> about making the software useful for users. However, it is always hard to get 
> user input and so it helps to have this kind of process. I've certainly 
> looked at the *IPs a lot in other software I use just to see the biggest 
> things on the roadmap.
> 
> When you're talking about "changing interfaces", are you talking about public 
> or internal APIs? I do think many people hate changing public APIs and I 
> actually think that's for the best of the project. That's a technical debate, 
> but basically, the worst thing when you're using a piece of software is that 
> the developers constantly ask you to rewrite your app to update to a new 
> version (and thus benefit from bug fixes, etc). Cue anyone who's used 
> Protobuf, or Guava. The "let's get everyone to change their code this 
> release" model works well within a single large company, but doesn't work 
> well for a community, which is why nearly all *very* widely used programming 
> interfaces (I'm talking things like Java standard library, Windows API, etc) 
> almost *never* break backwards compatibility. All this is done within reason 
> though, e.g. we do change things in major releases (2.x, 3.x, etc).
> 
> 

Reply via email to