Last week, I had the pleasure of attending the inaugural run of a new user-group that Craig Muth is getting off the ground here in Columbus. The idea behind Columbus Protonight is simple: 2 people, 1 project, 0 commitment. (All in 2 hours.)
Craig's ambition is to take the most productive and engaging aspects from Pair Programming and blow them out a bit to include “Idea People” as well. Based on my experiences at the first protonight, I think he may be on to something.
Last Tuesday's gathering was lean and mean (weather, reschedulings and mixed communications all contributed.) Though the interest list was long, and ~30-some people had confirmed, we ended up with 4 of us attending. But… hey, perfect, right? Just enough for 2 pairs. We even had the proper split—2 idea people and 2 coders.
Truth be told, I didn't know what to expect when I showed up. I brought a Sharpie-scrawled list of 5 ideas (more on those in a minute) but I was also prepared to drop into the role of stumbling, bumbling coder if need be. Fortunately, we didn't have to go there. I had the honor of working with Craig himself (who was working in his wicked-cool-productive emacs/wiki environment/thingy Xiki) which helped a lot because we had quite a few candidate ideas to consider.
Minus some lost minutes upfront for chatter and administrivia, we had two hours to do something together—anything. The ideas that I brought were (I thought!) all scaled back for achievability. Future Idea People, take note: this is not the venue to bring your “Facebook meets Flickr, but for dogs” grand, sweeping idea. No, you should be ruthless in paring down your ambitions. 2 hours, starting cold with a person you've probably only just met? Think small, fun and do-able.
Here's what Craig and I considered, from my list:
- I had some decent front-end code (HTML/CSS/JS) for a modest little web store that I've been meaning to launch for forever. I thought we could wire it to a lightweight CMS (Wordpress, maybe) to automate the publishing of new SKUs.
- I've been thinking of a nice little site to showcase a certain kind of artisan, and goods that they may have for sale on Etsy. With no designs or code to start from, I thought maybe we could scaffold the basic functional outline of the site in Rails and get a simple listing/detail page/submit form running.
- I have a number of photos (diagrams, actually) on Flickr that have received a lot of comments & favorites. Those people could form the nucleus of a community of likeminded folks. (And I may want to communicate with them at some point in the future.) I thought that a script to grab the Flickr-names from comments and favorites, for any arbitrary photo, would be a handy thing to have.
- This idea came from Nate Koechley (the very day of protonight, in fact): a Greasemonkey script for Gmail to display an addressee's most recent tweets.
How far did we get? Well, we kind of took a 'dip a toe in every idea' approach. We discovered that Craig is, like me, an itinerant tinkerer. So neither of us were too hung up on having something finished at the end of the night. No, as long as our misteps were taking us through APIs and documentation for Flickr, google Contacts and Voice, with a side-foray into greasemonkey, then it was all good.
Ideas 1 & 2 got almost no consideration—too ambitious, and (I suspect) just didn't tickle Craig's fancy enough. That was fine, I was happy to eliminate them. We actually worked a bit on Nate's Greasemonkey request, long enough to run up against Google Contacts authentication mechanism for their API. We decided: more than a 2-hour exercise. We moved on. Likewise the Google Voice thing was first scaled back to a bookmarklet and then 'later'-ed altogether.
We finally settled on the Flickr idea (what I'd taken to thinking of as 'Flickr Ad-Hoc Communities'—the ability to point at a photo and instantly get back a list of all parties who'd expressed interest.) Craig's weapon of choice? Well, by this time, we were getting really spare on time—something like 30 minutes left—so it was nothing fancy: a Ruby script to grab photo pages and scrape the data out. (It turns out that there are API-driven ways to get a photos commenters or favorite-ers but… hey man, clock was ticking and we'd long since past the “dig through the docs” phase of the evening.)
So, some HTTP Gets, a little RegEx love (Craig kindly taught me the 'non-greedy' syntax for matching an expression which is something I really wish I'd payed attention to a long, long time ago. Would've put days back on my life) and we did walk away with a functioning Ruby script that grabs comments only. (The favorites are a little more complicated, cause they're paginated. But I bet Craig would'a got there with 10 more minutes.)
Craig hopes to grow the concept slowly and iron the kinks out, and I know that some of my User Experience compatriots on twitter have expressed an interest (for good reason—the IxDA folks and Protonight should be a match made in heaven.) I too hope to attend again, and frequently. (Tho' um, there's that New Dad thing again… I may have to skip every other gathering or something.)
But YOU?! You'd be crazy not to at least join the list and make some time for an upcoming event.