Monthly Archives: August 2010

Interruption and collaboration

Jason Fried, “from a recent interview”:http://37signals.com/svn/posts/2494-the-big-think-interview-take-two: “Interruption and collaboration are different things.” If you haven’t listened to a Jason Fried talk recently, this one covers a lot of good stuff.

I also like “episode 19 of their podcast”:http://37signals.com/podcast/#episode19, which is edited from a live recording of a planning session for Rework. My first impression of Rework was that it was too finely edited — that to get to the essence they threw away too much material. I wanted to hear more case studies from their business, approaches that worked or didn’t, and lessons learned.

But I’ve flipped through the book again, a few months later, and it holds up. I don’t know if it was intentional or not, but the lack of filler text gives it a certain timelessness. Each chapter is one core argument, and whether that topic resonates with the reader or not depends entirely on what you and I bring to it from our own job experiences.

Deprecation mentality

Today, Twitter starts “shutting down basic authentication”:http://countdowntooauth.com for the Twitter API. One of my favorite Twitter clients, Birdfeed, will be allowed fewer and fewer requests until finally at the end of the month it stops working. Likewise for Birdhouse and Twitterrific 2. And the same for my “Wii Codes”:http://wiitransfer.com/codes/ site, until I have a chance to update it.

“Dave Winer wrote a fairly negative essay”:http://www.scripting.com/stories/2010/04/26/theToxicCoralReef.html a few months ago on this so-called OAuthcalypse:

“When Twitter breaks all the apps in the OAuthcalypse, they will break all of mine, and I have no intention of fixing them. I don’t expect anyone to care. But what you should think about is how many of the Twitter apps that you do care about will break and how many of them will say the hell with it? And how many of them will be around for the next time Twitter breaks everything, because that’s certainly coming unless Twitter develops some kind of philosophy about itself as a developer platform.”

I didn’t want to agree with him at first — I’m a big fan of nearly everything Twitter does — but it’s a fair question to ask whether backwards compatibility is getting the attention it deserves. Software moves fast, but this kind of thing hurts users, not just developers.

In the desktop world, OS APIs are unlikely to change so severely, and if they do you always have the option to run an older version of the OS or app indefinitely. For web services, though, you can’t keep an older copy of the internet around. Web apps are forced upgrades.

I’m not sure there’s a solution to any of this. It’s just part of tech progress, like moving data from old floppy disks to CDs to hard drives to the cloud. But it’s a bummer when apps get left behind as APIs are obsoleted. Over-aggressive deprecation was common in the Rails world, and “I was not a fan”:http://www.manton.org/2009/01/rails_4_years_later.html.

So, here’s to the future, Twitter. Keep new API changes versioned and maintain the old stuff. If this OAuth switch is a one-time cost, developers can focus on what makes their apps unique instead of always playing catch-up.

Congratulations, you’re a manager

The sort of odd “best of both worlds” balance in my different projects at “VitalSource”:http://www.vitalsource.com/ and as a solo shop is that I love working with a team, and I also love working alone. I mean really alone, doing the planning and design and coding and marketing. I’ve resisted farming out any piece of my apps at “Riverfold”:http://www.riverfold.com/ (except the application icon) so that I can have complete control. It’s brutally hard sometimes, but it’s mine.

If you’re working by yourself and add another person to the project, a funny thing happens: you become a manager. Before, you could spend 100% of your time on the work. Now you can allocate 50-75%, because you’re getting the new programmer up to speed, answering questions, and setting priorities. If you’re lucky (and I usually am), the person you added is contributing so much that it easily makes up for your loss in productivity, and then some.

The trade-off is worth it. Exchange the previous low communication overhead for extra coding man-hours.

You can build something great with a team, something that would be impossible alone, if you surround yourself with people who are better at your job than you are. I love that first moment when a team doubles in size from 1 to 2, or 2 to 4.

But after the initial frenzy of coding and emails and new features, I usually get burned out again. The project doesn’t strictly need me anymore, and I’m ready to get back to starting an app from scratch, when the scope is so small that the whole thing still fits in my head.