Crowdsourcing my schedule

Jun 19, 2009

I had a great crowdsourcing experience yesterday.

Here at TOPP Labs, we’re doing a 6-month check-in on our annual employee reviews. What that means for me is a 30-minute interview with each of the folks on my team (about 20 in total), where we look back on the past six months to see how we’re doing re: professional goals outlined in the annual reviews. So, today and Monday, I’ll be having 20 30-minute meetings, each followed by 15-minutes of write-up time by me. That’s kind of a lot to schedule.

Here’s how it went down:

1) First, I cleared my schedule for today and Monday.
2) “Hmm, I guess I need to ping each person to see when they can meet up. Ugh. Time to procrastinate.”
3) “Since I’m out of the office today, it will be super annoying to email every single person from my phone. I’ll just write one email to the team list and have each person email me back times that work for them. Nice. Offloading the work.”
4) “Wait! Even better, I’ll just ask everyone to add their own appointments to the team Google Calendar. Now we’re talking.”

So in the end, I just had everyone schedule their own meetings on a first come, first served basis. Kind of empowering to just let other people schedule two whole days for me. Plus, the communication overhead went from a lot to zero. Yay for crowdsourcing.

Map drawing UX is still too hard

Jun 15, 2009

At work today, we are exploring the process of drawing routes on a map, thinking ahead to a few upcoming projects involving bike planning. So Sonali set up a Google MyMap and asked a few of us to mark our routes to work. In a nutshell, it was basically a flop, with two out of three people giving up before finishing. Paul Winkler summed up the process beautifully:

My internal dialog went something like: “okay, now my route is merging with Nick’s … oops, now i’m editing Nick’s line by mistake, how do I
undo that? (random clicking around) … ok now i’m back to editing my line … argh, it’s going down the wrong street… let’s try this way… whoa, why is there a random line floating around in the water? can’t seem to get rid of that one… oops, didn’t want to put a point there, let’s see if i can delete it… click… oops, i apparently deleted all the work i just did on my line, and there doesn’t seem to be an undo for that. F**k it.”

It’s tough UI to get right — basically you’re trying to replicate the vector drawing capabilities of tools like Illustrator, but in a simple way that provides just the right amount of control. Not easy. Safe to say that collaborative route drawing has not crossed over into the mainstream yet.

Chandler and Constraints

May 21, 2009

I spent most of this morning looking back through old posts about the Chandler Project and OSAF. I’ve thought about this a lot, due to the many parallels with my work at The Open Planning Project. For newcomers, those parallels are:

  • Massive funding from a visionary with a dream (in OSAF’s case, Mitch Kapor, in TOPP’s, Mark Gorton), where that dream may not always be perfectly articulated;
  • Rapid staffing around an open source project attempting to satisfy that dream (OSAF’s Chandler to TOPP’s OpenCore / OpenPlans CoActivate);
  • Due to both of the above, a propensity to expand scope and broaden the potential market(s).

Since Dreaming in Code (the book chronicling the story of Chandler and OSAF) was published in 2007, Kapor has stepped away from the project and pulled his funding. Through 2008, OSAF operated under his funding, but with a scaled down staff (10 down from ~25). Long story short, the project failed to get enough traction and was just too expensive. There has been lots of commentary about why this happened, so I’m not really attempting to describe anything new here.

For my own understanding, though, I want to jot down the takeways that seem most relevant to my work at TOPP. Here’s what it seems that OSAF couldn’t do, and what I’m hoping to do at TOPP Labs:

Choose one market to start with, and satisfy it fully. In Crossing the Chasm, Geoffrey Moore describes a (high tech) market as the following:

  • a set of actual or potential customers
  • for a given set of products or services
  • who have a common set of needs or wants, and
  • who reference each other when making a buying decision

According to Moore, it’s the last one that tends to hang people up — it’s not a market unless the members reference each other. In other words, you need to focus. In his “beachhead” (aka D-Day) strategy, he advises putting your full effort into your initial market segment, generalization be damned, and satisfying other users with what’s left over.

If there aren’t any real constraints, create some. If embrace change was the mantra of the XP movement, and embrace constraints is the mantra for web 2.0 startups, then perhaps introduce constraints to create change should be the mantra for over-funded tech non-profits. Some constraints that are particularly relevant in this case are: target market (see above), team size, project scope and timelines, and if all else fails, funding. Granted, it is difficult (but not impossible, IMO) to introduce other constraints when funding is plentiful and reliable.

Don’t get too academic, OR, let the market drive your decisionmaking. This is perhaps just an extension of “constraints”, above, but I think it’s worth mentioning separately. Looking at the way Things (team of 2 devs) and OmniFocus (experienced sofware entrepreneurs) ate Chandler’s lunch, it’s clear that there was a failure in the product development process. While the Chandler team was debating database infrastructures and making endless product spec notes in their wiki, Things brought a simple, usable product to 1.0 in just over a year. They didn’t have the luxury of lengthy debates; they needed to get something out there, get people using it, and get feedback. Since their 1.0 release in January 2009, they’ve steadily released relevant updates based on real feedback.

Can you be market-based and constrained in an open source environment? I think so; it just required leadership and understanding of these factors. It could be argued that Chandler wasn’t able to implement these kinds of changes because of its open source nature and collaborative process, but I believe that it’s possible (and this has been clearly demonstrated) to maintain market focus and constraints in an open source project.

So, now that we’ve got that straightened out, it should be smooth sailing, right?

'Do You Know Me?' Authentication

May 14, 2009

For a recent personal project (I won’t say which since that would defeat the purpose), I was in need of a new kind of authentication.

My wife and I wanted to create a website where we could post photos and news for our family and friends, while keeping that information off of the broader intertubes. With a baby on the way, we plan on having lots (and lots and lots and lots) of photos to share.

Regular, account- or password-based authentication wouldn’t work, because I didn’t know exactly who would be visiting, so either creating one password and sending it around, or creating passwords for each individual person were not options.

So, what I ended up creating was a “do you know me?” authentication system. Here’s how it works:

Upon entering the site, you are posed with a challenge. You can choose your question from a group of 5. In this case, I chose questions that anyone who was part of the family or knew us somehow would be able to answer. For example, “where did Nick grow up?” or “boy cat’s name”. I picked enough different questions, pulling info from enough different aspects of our lives, that anyone who we’d want to get in would be able to get at least one right.

In this case, I was using WordPress, so I first created created a series of logins that would correspond to the questions I wanted to ask. Then, I created a custom login screen using the Themed Login and Registration plugin. I updated the login template, substituting the standard “login” text input with a select menu, where each option consisted of a question and its corresponding login ID.

My question for all of you out there is: are there other existing examples of this kind of system? Better solutions for implementation? It seems like a generally useful system. If time permits, perhaps I’ll wrap this up and offer it as a WP plugin.

That’s it! So far, this has worked pretty well for us, and has been a nice solution to opening up our lives to our family and friends while maintaining our privacy.