or, “I can’t believe I’m writing about jwz.“
(Aside: Kent, our CSS guru, just complained that he didn’t know who jwz was. I only quote him because he’s been around the block with regards to software development, so if you don’t know or care who he is, don’t worry. He’s not important to this post.)
Back in the halcyon nineties, Jamie Zawinski resigned from Netscape Communications Corporation (which had become an AOL company, and long since ceased to be called Mosaic Communications Corporation). In his resignation letter, he famously states:
And there’s another factor involved, which is that you can divide our industry [software development] into two kinds of people: those who want to go work for a company to make it successful, and those who want to go work for a successful company.
When I read that, my first thought is that every programmer (or any important worker in any field) should strive to be in the first category, even if they aren’t.
I find it difficult to put myself into one of the two buckets, personally, and I think any software developer that can easily say one or the other is either fooling himself, lying, or simply has the luxury of being able to choose. Perhaps I’m unique, but I’m no longer fresh out of college, and I don’t have enough reserves to be able to sit back and pick and choose my jobs, so I want to go work for a successful company.
Yes, it’s possible and very likely that someone will fall into both categories at once. However, one is usually predominant. When you’ve got a family to feed and you’ve been out of work for some time, it’s probably nice to go work for a successful company that probably won’t bomb out in the next week or two; however you still want to make the company successful (or maintain its success.)
Despite where you fall now, always strive to want your company to succeed — this is more than just “I hope I have a job tomorrow,” this is finding out ways to make your company better. Outside of writing quality software and trying to engineer software that users want to use, I blog for my company. I write job ads when we need more developers. Matt, one of our fearless leaders, makes sure we all stay abreast of developments in our client companies, as well as in our field (healthcare). So when we’re working on a project, we’re not just writing to some set of specs, we’re each of us thinking about who at the client will be using the software and how they’ll be using it. And at the end of the day, we’re happy with our work. We know we’ve provided tools to make our client’s job easier, and we know they love us for it (because they keep paying us.) Coming from a company where this wasn’t the case, I find I actually enjoy coming into work on Monday mornings, as opposed to dread.
It’s 1:00am and I’m in danger of losing my focus, and I fear I’ve already strayed from the path. But take a second and ask yourself if you’re a person who wants to make a company succeed, or if you just want to work at a successful company. There’s no wrong answer, but I’m betting you’ll get a lot more satisfaction out of the former.

Leave your mark