Thanks for writing all this up and for putting up PRs to improve things! Kenn
On Mon, Jan 31, 2022 at 12:17 PM Danny McCormick <[email protected]> wrote: > 👋 Hey folks, my name is Danny - I recently completed my first Beam > PR[1] (a small extension to the Go Dataflow runner) and am planning on > becoming a more regular part of the community. As such, I wanted to use my > fresh newbie eyes and share some of what was nice and where there was > friction about getting started. > > Disclaimer: this is coming from the perspective of someone who is pretty > used to open source development, but has minimal experience with the Apache > way, Beam, and the languages my change came in. I'm hoping my experience is > helpful to those of you who have been around for a while and haven't seen > things as a newcomer in a long time, but it may not be reflective of the > experience of others. > > *Things that were really nice:* > > - The community has been really welcoming and encouraging of > contributions, something I saw in my first code review, my first pr, and > even the tone of the docs. Special thanks to @lostluck and @jrmccluskey for > making my first interactions welcoming and prompt. That experience can be > the difference between one time and repeat contributors. > > - Getting started writing my first pipeline, and then ramping up to more > complex concepts was surprisingly easy - in particular, the docs, examples, > and Katas made for a reasonably smooth process. It wasn't always clear how > to go from that to more complex transforms and there's of course room for > more clarity, but I appreciate the work that's gone into the getting > started experience. > > - Overall, the code base is pretty easily understood/reasoned about, and > the high quality of code made it pretty easy to make my first change. I'm > pretty impressed at how simple/well composed this system is even as it > approaches a tricky problem space (hopefully I'm saying the same thing > after I make some bigger changes :)) > > *Friction Points:* > > - It was harder than expected for me to figure out what made Beam > different/special from other tools in the space out there for users. > Specifically, it wasn't immediately obvious why I would use Beam instead of > just running my jobs directly on Spark or Flink or one of the other > runners. One pretty big challenge here was that I didn't really get how > easy it was to switch runner types/how powerful the portability (and > unified streaming/batch) model was. I'm not sure exactly what would make > this easier for someone new to the space, but some sort of graphic or brief > statement of "this is where Beam adds value over most other frameworks" in > the Readme would be cool. > > - There were some small paper cut usability things in the repo. > Specifically, it looks like the labeler is broken (issue[2] and pr[3] added > to address this) and there isn't a CONTRIBUTING.md (issue[4] and pr[5] > added to address this), though the contribution guide is linked elsewhere. > Both of these are probably non-issues for experienced contributors, but add > a small amount of friction for people who are trying to get involved, > especially those who navigate a fair amount of OSS repos, and they're > pretty easy to fix. > > - I know there's some separate discussion about this in a different > thread[6], but the use of Jira instead of GitHub issues added a layer of > friction to getting started. Concretely, I would've put up my first pull > request and created my first issue earlier if I didn't need to go through > the process of creating a Jira account and getting permissions to assign > tickets, and it was harder to find a good first issue to contribute to. I > can imagine others might not have pushed through that. > > With all that said, I'm really excited to be joining the community and get > to add to Beam, and I hope it was helpful or interesting to get a newbies > perspective. > > [1] https://github.com/apache/beam/pull/16643 > [2] https://issues.apache.org/jira/browse/BEAM-13779 > [3] https://github.com/apache/beam/pull/16665 > [4] https://issues.apache.org/jira/browse/BEAM-13780 > [5] https://github.com/apache/beam/pull/16666 > [6] https://lists.apache.org/thread/q5nbwxqvfkzlz664c4kchzkbj26c3r89 > > Thanks, > Danny >
