recurse
I’ve been jumping around between projects at Big Cartel lately. We have one project in particular that’s been running for a while and involves fundamental changes to both the UI and underneath. Everytime I get back into working on it, I uncover another prerequisite, and I have to stop what I’m doing and go knock it out. We prefer not to release too many big changes at once, so it’s easier (and safer) to break these backend changes out into separate, gradual releases. So, in a way, it’s nice—we’re releasing new code every week or two. The challenge for me has been maintaining continuity and focus across these projects (in addition to any other issues that pop up in the meantime).
Keeping good notes has been invaluable. Often, these may be no more than a comment in the code or a to-do in Basecamp, but it may be a couple of weeks before I come back around to a project. If I don’t document what I’m thinking now or what agreements the team has reached on a particular feature, I may waste time heading down a blind alley or just trying to figure out my next actions.
One of the best things about working at Big Cartel is that we don’t impose arbitrary release dates on our projects. We take time to explore, letting the work reveal the requirements as we go. I do not take this luxury for granted, and our focus on process is a large part of why our software is so good. But I still get antsy when I have to push a milestone back too many times or interrupt one project to start (yet) another.
Patience is essential to maintaining focus. Patience with yourself, patience with the process. Patience is difficult when you know you’re holding up your team, but if you don’t take the time to do your work well, you’re just incurring debt that will have to be paid later. Breathe. Focus. Execute.
Last weekend, I started in properly on LAFAYETTE for Urbanscale. Most of my focus has been on designing and bootstrapping a web service that will eventually be backing an iOS app. In the process, I’ve been learning my way around PostGIS, Heroku, AWS and bringing all of these together with Clojure. It continues to amaze me how easy and inexpensive it is to fire up multiple servers with a couple of commands. I’m beginning to think that dedicated hardware only makes sense if you have unusual and specific requirements or are big enough to build out globally. Most applications can go far just using AWS (or a similar platform).
There has been a flurry of activity at button-down bird this week. Incorporation is proceeding apace. Work on designing the book has begun. We’ve engaged the inimitable Kyle Meyer to design our site. In addition to wrangling a concert and building relationships with charities, Ben has been spending a lot of time on Twitter. Do please follow him.
Oh, and Big Cartel is hiring a designer and a developer, so if you are looking for a great gig, drop us a note.