Today, on the same day I decided to give up on a personal project I’ve been working on for months, I also gave up on a project that was already live. I decided to force myself to reflect on these failures by writing about them, and to force myself not to feel too bad about them by listing the positive things I have learned and can take away from these projects.
Since some time in the summer of last year, I’ve been building a site that would have allowed food trucks to drop a pin onto a map to show where they are, and simultaneously send an update to (at least) Facebook, Twitter, and Foursquare. Today I finally decided to stop working on it. I spent a lot of time building this thing, but I finally got to a sticking point: I read Foursquare’s terms of service for their API, and I’m pretty sure if I finished building the thing, it would only be a matter of time before they shut off my access for violating these terms. From day one, I knew Foursquare was going to be vital to making this project work. If I had really been thinking about it like I wanted to make it work, I would have done (at least) two things before starting this project:
- Read the terms of service for each of the APIs I planned to use
- Talk to food truck vendors and find out if the idea would have worked
I didn’t do either of these things. Maybe if the terms of service hadn’t mattered, the idea still would have failed because food truck vendors wouldn’t have wanted to use the site. Who knows? I don’t. Because I didn’t bother to find out.
tornfoursquare, and submitted a patch. It hasn’t been accepted yet, but if the maintainer ever tests that code again, I think it will. Finally, combined with the journaling I’ve been doing I began to understand and focus on the idea of putting effort into the important parts of a project, rather than the parts I feel inclined to work on at any given time. After a while recapping my progress on the project, I started to realize that I was doing a lot of work that wasn’t getting me any closer to launching the site. Once I had that epiphany, it was easier for me to stop working on inconsequential parts of the project, and focus on creating a minimum viable product instead.
Also today, I moved rou.st from its own domain, and made it a subdomain of a cheaper domain I am not really using for much. I really liked the idea of rou.st when I built it, and I still really like the idea (even though I hardly ever use it anymore). Unfortunately, after I finished building a basic first attempt, I abandoned it. I have some ideas for how to make it useful, but they aren’t shiny new problems to solve, and it works well(ish) enough as it is. Since I decided to register a fancy geo-tld for it, though, it costs me $50/year to do nothing. I installed analytics on it, and the only hits it ever gets are usually me making sure it’s still up after I changed something else on the server that hosts it.
Rou.st was the first side-project I launched publicly in a long time. I learned lots of useful stuff in building it out. Because of that project, I learned how to publish Python packages to PyPI and how to deploy to Heroku. It gave me the confidence to build out other tools, which people have found more useful. The Year of Code never even would have occurred to me without this failed project. Is it dead? Not technically, no, but it might as well be. But that doesn’t matter, because I will keep going.
I’ve never been much of a hockey fan, but I love this quote:
You miss 100% of the shots you don’t take.
~ Wayne Gretzky