You recently founded Growstuff, an open source software and open data startup. What is Growstuff and why did you create it?
Growstuff is a website for people who grow their own food. You can track what you're growing or planning to grow, get help and information, share seeds and produce, and connect with other growers in your local community. It's all open source, and we also provide an API to access all our data under a Creative Commons license.
The whole project grew out of the question, "Is there a free database of what crops you can grow and how to grow them?" There's no such database available — at least not with worldwide data, though there may be some localised ones — but we can build it ourselves from the bottom up, by aggregating information about what individuals are growing all over the world.
Apart from wanting that open data to exist, as I gardener I also want a website for tracking and planning and learning, the same way I use Ravelry for my knitting projects — the classic "scratch your own itch" school of open source software.
You do a lot of pair programming with other developers using VoIP and screensharing. Why did you choose to do this? Is it good for recruiting?
We do pair programming for a bunch of reasons. The core reason is that we think pair programming produces higher quality software, by having two sets of eyes on the code and two people bringing their experience and ideas to every feature, and by reinforcing best practices like test-driven development — you're less likely to "cheat" when you're working with another person.
Also, pairing is good for the project at an organisational level: more sets of eyes on the code means I'm not the only one who knows what's going on, and increases our bus number. Then, of course, pairing is a great way to share skills and bring new contributors up to speed. I started Growstuff with very little knowledge of Rails (the web platform we use to develop the site), but I learned a lot by pairing with people who knew more than me. Now, I share what I've learned with others, while learning in other areas — lately I've been picking up a lot of frontend skills at the same time as teaching backend stuff.
Pair programming is more than just a recruiting technique. Of course we do get some people who join us because they want the mentoring or the more social coding experience, but I suspect there are also people who don't join, or who leave, because they don't like the pairing discipline or can't fit pairing into their schedules. That said, the way we work is probably more appealing to people who have trouble with the mainstream stereotype of the lone genius coder, slaving away by the glow of a warm terminal. That view of coding is very alienating to some people — unsurprisingly, often the same groups of people who are under-represented in the tech world — so I'm glad we can offer an alternative. This is very much a project for people who like collaborating, bouncing ideas off each other, and helping each other learn.
You are taking a somewhat different approach to founding an open source project and recruiting developers to it. What are some of the things you doing differently than the conventional wisdom, and why?
I'm not sure it's that different. Basically I said, "Here's a thing I want to work on. Anyone interested?" I set up a Github repo, issue tracker, mailing list, wiki, and all the rest. If you compare what we're doing against most of the best practices, like in Karl Fogel's "Producing Open Source Software" you'll see that we're doing most of the things that open source projects are meant to do.
Where we differ, I think, is that we're trying to open the doors and invite in people who might not have previously participated in a software project. We specifically invite gardeners with no web development expertise to join our discussion list and participate, rather than having a separate "users" mailing list, and we try very hard to keep them involved at all stages of development.
Also, on a personal level, I'm trying to keep things very human and real. For instance, we talk a lot about problems and roadblocks we're experiencing. I remember one time I was pairing with one of the other committers, and we just had a really bad day of it. We tried to work on about three different issues and failed on all of them. We ended up writing a pairing report for the mailing list, where we described our frustration and how we'd eventually given up, saying that we hoped someone else could have a shot at it and figure out where we went wrong. In the days that followed, I heard several "thank yous" from mailing list members, for having admitted that we'd had a bad day and shown our imperfection. You don't often see that sort of thing, because so many people in tech are invested in proving how smart they are, or upholding their reputation as an elite hacker. I think it's good for people to see that everyone, including experienced coders and project leads, has frustration and bad days and vulnerable moments, and that nobody's code comes out perfect every time.
You are an accomplished social justice activist, co-founding the Geek Feminism wiki and blog, the My Name Is Me campaign to explain why requiring "wallet names" or "real names" can be harmful, and serving as key founding advisor to the Ada Initiative, among many others. How does GrowStuff fit into your activism?
I think a lot of activists go through burnout phases, and something I've heard from many feminists in the tech world is that sometimes they need to step back from overt activism (protesting, lobbying, public speaking) and spend some time focusing on their tech work, and on being a example/mentor to people in the field.
To some extent, this is what I'm doing: taking time out from regularly blogging and speaking about social justice, to put those ideas into practice and building a the sort of project/business that I want to work on. It's glib to say "be the change you want to see in the world" but I can't think of a better way of putting it. Plus, it's giving me some space for healing and re-grounding myself after a few rough years.
You won a seed funding competition from Pinboard, the popular bookmarking service. The actual funding was only $37, yet hundreds of promising startups competed fiercely for the 6 investments. Why did you apply, and what did you get out of it?
Maciej, the founder of Pinboard, is one of the indie tech people I really admire. He's written some great blog posts about the problems with tech business models, he demonstrated a really great attitude when fandom arrived en masse on Pinboard, and he published spreadsheets of his expenses for his first two years of operation and lots of other really useful information for the solo/indie startup founder. I already wanted him as a mentor. So when the $37 investment thing came up, and with it the opportunity to actually spend more time talking to him about how to do this stuff, I jumped at it. Plus, of course, his original announcement had been very widely linked, and I figured there'd be a bit of publicity in it. I think that's why he got so many hundreds of applicants, some of whom really didn't get it, if Maciej's tweets were anything to go by. I'm pretty sure it wasn't the $37.
How can people use or support GrowStuff?
Well, you can sign up right now at http://growstuff.org/ and start tracking what you're growing. We need information about all kinds of food gardens, from a few herbs on your windowsill to self-sufficient rural homesteads, all around the world. Tell your friends and family too! Growstuff is supported by paid subscriptions, so if you like what we're doing and want us to keep doing it, please consider buying a membership.
If you're a developer, or you're a gardener/foodie/etc who'd like to take part in the development of the site, check out our wiki or mailing list. We've also got an API if you'd like to build apps with Growstuff data.
What do you think open source software and startups can learn from GrowStuff and Geek Feminism?
If technology is going to change the world for the better, it has to involve all kinds of people. That doesn't happen by accident. You have to work at it.
You can change the world for the better by supporting women who found and build startups using open source software and open data. Donate now to support the Ada Initiative's programs, like the AdaCamp unconference that brings together women in open source and open data to create new projects. Our fundraising drive ends August 30th, 2013.