<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/so-you-dont-think-you-can-review-a-package/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://ropensci.org/blog/blog/2017/08/22/first-package-review"> rOpenSci Blog</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>Contributing to an open-source community <em>without</em> contributing code is an oft-vaunted idea that can seem nebulous. Luckily, putting vague ideas into action is one of the strengths of the <a rel="nofollow" href="https://ropensci.org/community/" target="_blank">rOpenSci Community</a>, and their package onboarding system offers a chance to do just that.</p>
<p>This was my first time reviewing a package, and, as with so many things in life, I went into it worried that I'd somehow ruin the package-reviewing process— not just the package itself, but the actual onboarding infrastructure…maybe even rOpenSci on the whole.</p>
<p>Barring the destruction of someone else's hard work and/or an entire organization, I was fairly confident that I'd have little to offer in the way of useful advice. <em>What if I have absolutely nothing to say other than, yes, this is, in fact, a package?!</em></p>
<p><img alt="rOpenSci package review: what I imagined" src="https://i1.wp.com/i.imgur.com/37hukmgl.png?w=456" data-recalc-dims="1"></p>
<p>So, step one (for me) was: confess my inadequacies and seek advice. It turns out that much of the advice vis-à-vis <em>how to review a package</em> is baked right into the documents. The <a rel="nofollow" href="https://github.com/ropensci/onboarding/blob/master/reviewer_template.md" target="_blank">reviewer template</a> is a great trail map, the utility of which is fleshed out in the <a rel="nofollow" href="https://github.com/ropensci/onboarding/blob/master/reviewing_guide.md" target="_blank">rOpenSci Package Reviewing Guide</a>. Giving these a thorough read, and perusing a recommended review or two (links in the reviewing guide) will probably have you raring to go. But, if you're feeling particularly neurotic (as I almost always am), the rOpenSci <a rel="nofollow" href="https://github.com/ropensci/onboarding#-editors-and-reviewers" target="_blank">onboarding editors</a> and larger community are endless founts of wisdom and resources.</p>
<h2><code>visdat</code> <img alt="📦" src="https://s.w.org/images/core/emoji/2/72x72/1f4e6.png" class="wp-smiley"><img alt="👀" src="https://s.w.org/images/core/emoji/2/72x72/1f440.png" class="wp-smiley"></h2>
<p>I knew nothing about <a rel="nofollow" href="https://github.com/njtierney" target="_blank">Nicholas Tierney</a>'s <a rel="nofollow" href="http://visdat.njtierney.com/" target="_blank"><code>visdat</code></a> package prior to receiving my <a rel="nofollow" href="https://github.com/ropensci/onboarding/issues/87#issuecomment-270428584" target="_blank">invitation to review</a> it. So the first (coding-y) thing I did was play around with it in the same way I do for other cool R packages I encounter. This is a totally unstructured mish-mash of running examples, putting my own data in, and seeing what happens. In addition to being amusing, it's a good way to sort of &quot;ground-truth&quot; the package's mission, and make sure there isn't some super helpful feature that's going unsung.</p>
<p>If you're <em>not</em> familiar with <code>visdat</code>, it &quot;provides a quick way for the user to visually examine the structure of their data set, and, more specifically, where and what kinds of data are missing.&quot;<sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fn1" target="_blank">1</a></sup> With early-stage EDA (exploratory data analysis), you're really trying to get a <em>feel</em> of your data. So, knowing that I couldn't be much help in the <em>&quot;here's how you could make this faster with C++&quot;</em> department, I decided to fully embrace my role as <em>&quot;naïve user&quot;</em>.<sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fn2" target="_blank">2</a></sup></p>
<h4>Questions I kept in mind as ~myself~ resident naïf:</h4>
<ul>
<li>What did I think this thing would do? Did it do it?</li>
<li>What are things that scare me off?</li>
</ul>
<p>The latter question is key, and, while I don't have data to back this up, can be a sort of &quot;silent&quot; usability failure when left unexamined. Someone who tinkers with a package, but finds it confusing doesn't necessarily stop to give feedback. There's also a pseudo <em>curse-of-knowledge</em> component. While messages and warnings are easily parsed, suppressed, dealt with, and/or dismissed by the veteran R user/programmer, unexpected, brightly-coloured text can easily scream <em>Oh my gosh you broke it all!!</em> to those with less experience.</p>
<h2>Myriad lessons learned <img alt="💡" src="https://s.w.org/images/core/emoji/2/72x72/1f4a1.png" class="wp-smiley"></h2>
<p>I can't speak for Nick per the utility or lack thereof of my review (you can see <a rel="nofollow" href="https://ropensci.org/blog/blog/2017/08/22/visdat" target="_blank">his take here</a>, but I <em>can</em> vouch for the package-reviewing experience as a means of methodically inspecting the innards of an R package. Methodical is really the operative word here. Though <em>&quot;read the docs,&quot;</em> or <em>&quot;look at the code&quot;</em> sounds straight-forward enough, it's not always easy to coax oneself into going through the task piece-by-piece without an end goal in mind. While a desire to contribute to open-source software is noble enough (and is how I <em>personaly</em> ended up involved in this process– with some help/coaxing from <a rel="nofollow" href="https://twitter.com/noamross" target="_blank">Noam Ross</a>), it's also an abstraction that can leave one feeling overwhelmed, and not knowing where to begin.<sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fn3" target="_blank">3</a></sup></p>
<p>There are also <a rel="nofollow" href="https://github.com/ropensci/onboarding#why-review-packages-for-ropensci" target="_blank">self-serving bonus points</a> that one simply can't avoid, should you go the rOpenSci-package-reviewing route– especially if package development is new to you.<sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fn4" target="_blank">4</a></sup> Heck, the <a rel="nofollow" href="https://github.com/ropensci/onboarding/blob/master/reviewing_guide.md" target="_blank">package reviewing guide</a> alone was illuminating.</p>
<p>Furthermore, the wise-sage 🦉 <a rel="nofollow" href="https://github.com/ropensci/onboarding#associate-editors" target="_blank">rOpenSci onboarding editors</a><sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fn5" target="_blank">5</a></sup> are excellent matchmakers, and ensure that you're actually reviewing a package authored by someone who <em>wants</em> their package to be reviewed. This sounds simple enough, but it's a comforting thought to know that your feedback isn't totally unsolicited.</p>
<div>
<hr>
<ol>
<li>
<p>Yes, I'm quoting my own review. <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fnref1" target="_blank">↩</a></p>
</li>
<li>
<p>So, basically just playing myself… Also I knew that, if nothing more, I can proofread and copy edit. <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fnref2" target="_blank">↩</a></p>
</li>
<li>
<p>There <em>are</em> lots of good resources out there re. overcoming this obstacle, though (e.g. <a rel="nofollow" href="http://www.firsttimersonly.com/" target="_blank">First Timers Only</a>; or <a rel="nofollow" href="https://twitter.com/cvwickham" target="_blank">Charlotte Wickham</a>'s <a rel="nofollow" href="http://cwick.co.nz/talks/collab-code-user17/#/" target="_blank">Collaborative Coding</a> from useR!2017 is esp. <img alt="👍" src="https://s.w.org/images/core/emoji/2/72x72/1f44d.png" class="wp-smiley"> for the R-user). <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fnref3" target="_blank">↩</a></p>
</li>
<li>
<p>OK, so I don't have a parallel world wherein a very experienced package-developer version of me is running around getting <em>less</em> out of the process, <em>but</em> if you already deeply understand package structure, you're unlikely to stumble upon quite so many basic &quot;a-ha&quot; moments. <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fnref4" target="_blank">↩</a></p>
</li>
<li>
<p><img alt="👋" src="https://s.w.org/images/core/emoji/2/72x72/1f44b.png" class="wp-smiley"> <a rel="nofollow" href="https://github.com/noamross" target="_blank">Noam Ross</a>, <a rel="nofollow" href="https://github.com/sckott" target="_blank">Scott Chamberlain</a>, <a rel="nofollow" href="https://github.com/karthik" target="_blank">Karthik Ram</a>, &amp; <a rel="nofollow" href="https://github.com/maelle" target="_blank">Maëlle Salmon</a> <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/08/22/first-package-review#fnref5" target="_blank">↩</a></p>
</li>
</ol>
</div>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://ropensci.org/blog/blog/2017/08/22/first-package-review"> rOpenSci Blog</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/sXa5Kyaeu9E" height="1"></a></div>