Ceci n'est pas un conf.

Meta lesson learned

This is not the post I originally intended to write about the rOpenSci Unconf (and, I promise, this isn’t just a lame attempt to take the Magritte joke a step further). Rather, what follows is wisdom gleaned both at the unconf, and in in my (failed) attempts to write the aforementioned original post capturing my unconf experience.1

In our two days of un-conferring, there were 20 packages written by ~70 participants.2 So, how is it that almost a month later I’ve been unable to produce a summary of/reflections on what went down? Well, I have some theories, and they have to do with the nature/organization of the unconf itself (something I’ve come to appreciate more and more with each passing day).3

I ❤️ deadlines?

Far-fetched though it may seem, a temporal constraint can be a beautiful thing. This is not to say that the packages produced won’t require more work– heck, Julia Silge and David Robinson’s tidytext was started at an unconf, and (amazing though they are) that was not a two-day endeavor. However, having a firm stopping time made it clear that we’d have to clearly scope our work, and allow certain things to be left for later.

Perhaps this comes naturally to some people. Alas, I am not one of them. Even ignoring the fact that my earlier unconf post drafts had a bibliography, the amount of time I spent trying to deal with the side effects of having footnotes in side-notes (see below) was ridiculous.

Unfortunately, “perfect is the enemy of good”, and similar apothegms alone don’t always do the trick.4 So, what kept me from falling down a rabbit hole of quixotic fixes? Turns out that such “sanity checks” work much better with friends.

Obviously, having other, more experienced R users/programmers working on a package with you makes the entire endeavor easier. That part was not a surprise. However, I’d forgotten that you (or I, in this case) might be the worst possible person when it comes to detecting “mission drift,” or edge cases that can be (temporarily) left alone.

Someday, I hope my reams of half-finished blog posts will find their way to the Island of Misfit Toys, but, until then I should probably work on soliciting second opinions…

Constraints can be your friends. ⛓

Before getting back to work on Day 2 of the unconf, Noam Ross and David Smith gave a rundown of the day’s agenda, including our presentations to the group. In addition to the typical time limit (two or three minutes, from what I can recall), we were told that our materials could consist only of that which was made available in our package READMEs and/or quickie blog posts integrated into our project repos.

Why was this so helpful? For one thing, it saved the time that would otherwise be spent making slides, which (though easy enough to do in Rmarkdown) wouldn’t necessarily benefit future package users. The time limit also meant that the kind of background research that I, for one, am prone to getting into just wasn’t gonna fly.

And it all worked out wonderfully…

I still have hopes for further deconstruction of just how that came to be. But, should I attempt to do that here, the chances of this post ever seeing the light of day would be severely diminished.

Thank you to everyone who participated, with a special shout-out to Stefanie Butland who managed to convince me that I was unlikely to destroy this wonderful event through my ignorance of C++ and oh so many other things. (Given my aggressive case of imposter syndrome, this was no small task.)


  1. Luckily, you can find thorough recaps on the rOpenSci blog unconf series, and through the written recollections of other attendees, including (but not limited to) posts by: David Smith, Jasmine Dumas, Karl Broman, Bob Rudis; and a Storify by Karthik Ram.

  2. I had the excellent fortune of collaborating with Joe Cheng, Robert M Flight, and Christopher Tull on testrmd, which you should most definitely check out.

  3. Seriously, the unconf organizing team did an incredible job. So, major thank yous to Stefanie Butland, Karthik Ram, and Stacey Dorton.

  4. If you’re reading this as a Hugo-based blog post, then I’ve made at least some progress in the right direction.

Share Comments
comments powered by Disqus