I've been quietly lurking on this thread as a n00b to the Drill community :). I like the approach that's been proposed, and agree that setting an example for others to follow will be a great motivating factor for others to follow suit. On the MapR end, I'll work with the team to "encourage" more design docs.
-- Zelaine On Tue, Oct 20, 2015 at 2:49 PM, Parth Chandra <par...@apache.org> wrote: > I think that's a reasonable approach. Personally, I don't think a mandated > policy works everywhere and generally slows things down in a fast moving > project, so this is probably the best way forward. > > Perhaps we can begin with some of the pending items that Jacques brought up > earlier. :) > > Parth > > > > On Tue, Oct 20, 2015 at 2:39 PM, Jacques Nadeau <jacq...@dremio.com> > wrote: > > > I hope everybody agrees that we need more design documents and more > design > > document review. Given that contributions are on a voluntary basis, it is > > my perspective that we change the current behavior by modeling and > > rewarding the preferred behavior (as opposed to establishing top-down > > mandates). To me, that means two things: > > > > - Start posting more & better design documents (model the behavior) > > - Start providing more/better feedback on what other people propose > and > > share (reward that behavior) > > > > I'll work with the contributors I know to make progress on each of > these. I > > would hope that others would also try to shape this behavior with > > contributors they know. > > > > When a number of the members of the community start modeling both of > these > > behaviors, I would support establishing a formal policy around mandating > > these behaviors. > > > > > > -- > > Jacques Nadeau > > CTO and Co-Founder, Dremio > > > > On Tue, Oct 20, 2015 at 10:22 AM, Jason Altekruse < > > altekruseja...@gmail.com> > > wrote: > > > > > Ted, > > > > > > One small point I would make on the relationship between the design > docs > > > and the current markdown based user level docs. I think that these > > designs > > > belong in both the source as well as the website. Currently due to how > > > github has the "pages" feature set up, we have the markdown in the docs > > > stored in a branch with a completely separate root from the regular > > source. > > > > > > I don't see it as a major issue, I just think we should pick one of the > > > sources as the location that PRs are expected to be opened against and > > copy > > > them over to the other tree after the review is complete and it has > been > > > checked in. > > > > > > Overall I think it makes a lot of sense to put comments on a design doc > > in > > > a pull request. The only downside I see is managing diagrams and > things, > > > which would be easier to handle in google docs. I think allowing > binaries > > > in the repo (which can be linked from the markdown) for these resources > > > could serve the purpose of exposing them and managing different > versions > > of > > > the diagrams throughout a review period. > > > > > > On Mon, Oct 19, 2015 at 11:31 PM, Aman Sinha <asi...@maprtech.com> > > wrote: > > > > > > > I feel like there are 2 broad issues: > > > > - there should be a targeted group of people for a design review of > a > > > > particular feature or enhancement. The target group should be based > on > > > > expertise in a component. After all, this is what one would do in a > > > > physical in-person design review - we would invite a subset of > > developers > > > > who have the relevant expertise. Just as we assign specific > > > > code-reviewers, we could assign a 'group of design-reviewers'. This > > > will > > > > remove ambiguity about who are the expected set of people to respond. > > I > > > > think if I were to start asking naive questions about a component > > which I > > > > really did not know much about it would not be the most efficient use > > of > > > > everyone's time. > > > > > > > > - it seems to me the lack of response on reviews that are > outstanding > > > > should not necessarily influence the general expectation of writing > the > > > > design for features/mini features. It always seems to help in > flushing > > > out > > > > both the internal and externally visible aspects of the feature. > > Related > > > > to this is the question 'what type of review or response to a review > > > > comment is considered adequate' ? The ideal goal is to get to a > comfort > > > > level of an interactive discussion where one can go back-and-forth > > > > especially on some core topics. However, this is not easily > achievable > > > in > > > > a virtual community and some compromise is often needed to make > > progress. > > > > > > > > Aman > > > > > > > > > > > > > > > > On Mon, Oct 19, 2015 at 11:54 AM, Parth Chandra <par...@apache.org> > > > wrote: > > > > > > > > > Agreed, that we need to have a better response from the dev > community > > > > when > > > > > a proposal is put forward but the absence of a response does not > > imply > > > > that > > > > > we need not write any design down. The document has many consumers > > down > > > > the > > > > > road (new contributors, documentation, and even end users who want > to > > > > > understand the internals). More immediately the design document > will > > > help > > > > > code reviews because the developer's intent is explicitly stated. > > And, > > > > of > > > > > course, without the design document, there can never be any comment > > or > > > > > community participation. So even if only a few people comment, we > are > > > > still > > > > > much better off. > > > > > > > > > > On a more philosophical note, I believe that the ability to write a > > > good > > > > > design document translates directly into the ability to write good > > > code. > > > > If > > > > > you cannot express your design clearly, the design itself is > probably > > > not > > > > > clear, and the implementation will be even less so. (I'm not > > religious > > > > > about this, I mention it only to explain where I'm coming from). > > > > > > > > > > I did propose that we need to have a design discussion limited by > > time. > > > > > Very often, a potential reviewer will put off a comment for later > > when > > > > > (s)he gets more time and then, of course, never gets around to it. > > > Maybe > > > > > having a limit will get some people to respond in a more timely > > > fashion. > > > > > This is the same as having a 'public comment' period; if no one > > > responds, > > > > > then the design, as proposed, stands. > > > > > > > > > > I have a few more observations, especially about using JIRAs. I > > feel a > > > > > shared document is probably the best way to comment on designs - I > > find > > > > > JIRAs are hard to carry out a discussion in and looking for a > > specific > > > > > design some months down the road is a little bit like [1] . > > Secondly, > > > > > there are JIRAs which have a fair amount of detail, especially > about > > > the > > > > > implementation, but implementation details may not be sufficient > as a > > > > > design document. Finally, I sometimes see that the pull/review > > request > > > > > follows immediately after the creation of the JIRA and/or after a > > > > comment. > > > > > This really means there is no actual discussion before > implementation > > > > and I > > > > > think this is best avoided. > > > > > > > > > > These are general comments on what I feel is the right way > forward. I > > > > would > > > > > rather not go into specific instances until we are all in general > > > > > agreement. I would also venture to suggest that any developer > waiting > > > for > > > > > comments should use the hangouts to ask committers and other > members > > to > > > > > comment and drive the review forward. > > > > > > > > > > Are there any other thoughts out there? > > > > > > > > > > Parth > > > > > > > > > > [1] http://www.goodreads.com/quotes/tag/bypass > > > > > > > > > > > > > > > On Sun, Oct 18, 2015 at 4:44 PM, Jacques Nadeau < > jacq...@dremio.com> > > > > > wrote: > > > > > > > > > > > Parth, > > > > > > > > > > > > Thanks for bringing this up. We definitely need to do a better > job > > of > > > > > > discussing development decisions. I think whether this is done > as a > > > set > > > > > of > > > > > > descriptions and comments on JIRA or a formal doc on Google is > less > > > > > > important (and I wouldn't be inclined to enforce one over the > > other). > > > > > > > > > > > > That being said, I think there is something else that limits the > > > > success > > > > > of > > > > > > such an effort. We first must ask: how do we get more people > > > responding > > > > > and > > > > > > providing feedback among the things people have already posted. I > > > know > > > > > I've > > > > > > experienced silence numerous times when asking for feedback and > so > > > have > > > > > > others. Some recent examples I've seen in the community: > > > > > > > > > > > > - DRILL-3738 has received very little to no feedback despite > > > providing > > > > > an > > > > > > initial design document > > > > > > - DRILL-3229 has one general response (ask for more detail) from > > you > > > > > with > > > > > > a follow-up from Steven but no additional feedback on the actual > > > > proposal > > > > > > > > > > > > So I put it back to you and the general list, how do we get > people > > to > > > > > > provide more feedback on all contributions and proposals? I think > > it > > > > goes > > > > > > beyond designs. More issues should be opened with better > > descriptions > > > > and > > > > > > proposals around why one would do something. When the basic > outline > > > has > > > > > > consensus and feedback, people can move to more thorough designs. > > Why > > > > > > haven't we seen response on these issues? > > > > > > > > > > > > I can't see a requirement of reviewed design docs being enforced > > > until > > > > we > > > > > > start to seeing people providing feedback on feature proposals > and > > > > > existing > > > > > > (albeit thin) design documents. So +1 long term but -1 until > people > > > > start > > > > > > to respond and provide feedback on the outstanding items. > > > Contributors > > > > > need > > > > > > to perceive value in presenting a design doc. Let's get the WIIFM > > > right > > > > > so > > > > > > that developer incentives are aligned. > > > > > > > > > > > > Jacques > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Jacques Nadeau > > > > > > CTO and Co-Founder, Dremio > > > > > > > > > > > > On Fri, Oct 16, 2015 at 10:21 AM, Parth Chandra < > par...@apache.org > > > > > > > > wrote: > > > > > > > > > > > > > Hi guys, > > > > > > > > > > > > > > Now that 1.2 is out I wanted to bring up the exciting topic of > > > design > > > > > > > documents for Drill. As the project gets more contributors, we > > > > > definitely > > > > > > > need to start documenting our designs and also allow for a more > > > > > > substantial > > > > > > > review process. In particular, we need to make sure that there > is > > > > > > > sufficient time for comment as well as a time limit for > comments > > so > > > > > that > > > > > > > developers are not left stranded. It is understood that > > committers > > > > > should > > > > > > > ensure they spend enough time in reviewing designs. > > > > > > > > > > > > > > I can see some substantial improvements in the works (some may > > even > > > > > have > > > > > > > pull requests for initial work) and I think that this is a good > > > time > > > > to > > > > > > > make sure that the design is done and understood by all before > we > > > get > > > > > too > > > > > > > far ahead with the implementation. > > > > > > > > > > > > > > [1] is an example from Spark, though that might be asking for a > > > lot. > > > > > > > > > > > > > > [2] is an example from Drill - Hash Aggregation in Drill - This > > is > > > an > > > > > > ideal > > > > > > > design document. It could be improved even further perhaps by > > > adding > > > > > some > > > > > > > implementation level details (for example parameters that could > > be > > > > used > > > > > > to > > > > > > > tune Hash aggregation) that could aid QA/documentation. > > > > > > > > > > > > > > What do people think? Can we start enforcing the requirement to > > > have > > > > > > > reviewed design docs before submitting pull requests for > > *advanced* > > > > > > > features? > > > > > > > > > > > > > > Parth > > > > > > > > > > > > > > [1] > http://people.csail.mit.edu/matei/papers/2012/nsdi_spark.pdf > > > > > > > [2] > > > > > > > > > > > > > > > > https://issues.apache.org/jira/secure/attachment/12622804/DrillAggrs.pdf > > > > > > > > > > > > > > > > > > > > > > > > > > > >