The problem with doing one thing well
You’ve probably heard the tech startup aphorism “do one thing well”, or a variant on it. “Don’t try to do too many things”. “Focus.” Whatever.
I’m not very good at following it, as is pretty apparent from what I’m working on. Growstuff has several things it’s trying to do (crops database, garden journal, seed sharing, community building), all interlinked.
Every so often someone points me at a website that does just one thing of the set of things we’re trying to do. For instance, the other day I got an email from a Transition Town contact, suggesting I look at RipeNearMe, which offers produce sharing/trading. If you’ve got extra lemons or zucchini or eggs, you can offer them for sale to people nearby. Great! The website looks fantastic, and they’re starting to get people listing stuff. (If you want to see some examples of what they’ve got available for trade, check this neighbourhood near me, which has a few things listed, though it’s sometimes slow to load.)
The Transition contact went on to say that maybe Growstuff should “join forces” with RipeNearMe, so as to avoid duplicating effort.
There are a lot of gardening sites out there that do one thing, often very well indeed: a Q&A forum, a seed swap site, a database of planting times, garden layout tools. But when we talked to people who used them, they said “I used this site for a while, and it was useful for that one thing, but I really wanted $other_thing as well.” Usually there is another site that offers the desired feature, but it doesn’t integrate with the first one. As a gardener, you need to use a dozen disparate sites, re-entering your garden data in each one, and having to check in on each of them regularly to keep them updated. It’s no wonder that so many gardening sites, flourishing at first, start to die down after a season. Before long you can see weeds growing everywhere.
That’s not to say that open data and APIs solve everything — I’ve written before about how importing data is hard — but without them it’s impossible to integrate anything.
I’m reminded of Anil Dash talking about the web we lost: heavily interlinked, easily syndicated, less silo-ed. I’m also reminded of the Unix philosophy and especially of pipelines. Unix commands “do one thing well” — sort a series of lines, count words, spit out the contents of a file — but they don’t work alone. You can chain them together to say things like “show me the wordcounts of all these files in descending order”, or express even more complex ideas, as if building a tower from blocks.
Now think of that in terms of gardening websites. How awesome would it be if you could say “take my garden layout from SmartGardener and import it into my to-do list on Growstuff, then cross-reference it with the planting dates on Gardenate and the weather feed from the Bureau of Meteorology, and tell me when to plant things. Then when I harvest the results, let me post my excess across to RipeNearMe and, heck, why not CraigsList too?”
That’s pretty unlikely to happen, but until it does, I feel pretty justified in not doing “just one thing” with Growstuff. “Just one thing” only works if you can integrate with other things. If you build one amazing feature and put a fence around it so nothing can get in or out, what’s the point?