Trying to Find Coder’s Heaven
I read a post today by Kent Beck:
The prices for programming have fallen so far that just programming for someone isn’t going to meet my financial goals (4 kids to get through college). For my own satisfaction I need to program but to meet my goals I need to do something more than “just” programming.
This one really surprised me. Beck is a pioneer, someone that’s made a difference in the way software development is done today. I remember reading “Extreme Programming Explained” a few years ago and thinking to myself “This guy is a genius!” It’s not just XP itself, he wasn’t the only one to talk about agile. Someone capable of communicating in such a clear, concise way that knows how to code practically has to be a rock star hacker.
Maybe I was being naive, but I always liked thinking that if you’re just really good at programming, you’ll be able to land one of those dream jobs at a small software shop that pays good and spend the rest of your days happily hacking at your keyboard. And that’s if you’re a “regular” great coder. I thought people like Beck will likely get a good CTO/Guru job somewhere, make sure great code that customers love gets out and earn enough money to not have to worry too much about it. Or maybe be at a conference a week, giving inspiring talks and getting paid to do it great.
This relates to something I’ve been thinking a lot about lately. I’ve been thinking what is the best path to choose for my road ahead. At one point you notice that you keep telling to yourself that if you were running the business, X would have been done differently. You know, the usual ‘my company would give 2 monitors to each developer’, or ‘I’d never hire someone that only seems good enough‘, or ‘coders should be able to choose and get the best books around to read’. This, of course, doesn’t mean my current employer isn’t good, or that I don’t enjoy myself. I guess I’m one of those guys that notice things that bug them more than others.
Anyway, as these things stack up, a question is raised, “Why not start my own thing?” After all, my end goal isn’t that far-fetched. I’ve been reading “Founders at Work” lately. One of the best chapters there (though the whole book is awesome), is the one with Philip Greenspun, founder of ArsDigita. He describes his vision as simply getting brilliant people to write awesome software that customers love – the money should simply follow. This is an interesting business model, one that Joel Spolsky talks about in his chapter in the book too. He and his cofounder wanted to create a place great programmers will want to work at, assuming such a place will then be able to make money by creating great software.
On the one hand, we’ve got ArsDigita, that did really well before biting the dust (though I doubt Greenspun is sorry he did it). On the other hand, there’s Fog Creek that seems to be doing pretty well for about 10 years now. This means that creating such a place is possible, as Joel has done, but if ArsDigita is dead, and Kent Beck isn’t in such a company right now, one has to wonder if simply being really good is enough.
Joel said that he intended Fog Creek to start as a consulting company in order to get the capital for becoming an awesome software company, and that consulting companies are not likely to survive a lot of time, as consultants are usually first to go when a client isn’t making ends meet. I can’t help but agree with that.
What is a coder to do? Sounds like starting your own place, and aiming at being best at what you do is a good idea and vision. Creating a software company that will either get bought somewhere along the road, or simply be profitable enough for you and your team of awesome hackers to code away happily will be like a dream come true. But there seems to be something missing there. That special ingredient that Fog Creek had and others didn’t.
My quest for that missing part continues, until I’ll be able to start the best f***ing place for a hacker be at in Israel. And my best wishes to Kent Beck in finding the missing part to get to do what he loves doing, and does real good.
You should follow me on twitter here.

As one of the founders of Unity Technologies (we make a game development environment), we’re some of the ones that have somehow survived (and are now 55 people) on doing “great software” (and yeah, we use FogBugz as well
I think one of the differences between those that make it and those who don’t is are whether they solve a problem that someone will pay them money to solve. I can make the most beautiful piece of code for doing a toilet-themed screensaver but it’s going to be hard to find customers for that.
In our case, that was basically luck – we just coded what we wanted to do and as we evolved we found our place in the (business) world. If I had to start over I would look for a problem to solve (we made an engine in order to make our own game), and then ask how many people also have this problem.
There’s a key point that Sequoia told us when investing: You don’t want to be a vitamin, you want to be a painkiller – so find something that bugs you and fix it. If it’s something that is annoying a lot of people there’s a fair chance you can make a living from it
ArsDigita was a dotcom bubble company; Fog Creek wasn’t. Fog Creek is successful because it creates a great product that people/companies are willing to spend money for. And a great software-based product is always a lot more than a pile of really good software; it’s a *product*, and a great one at that.
Kent Beck says in his post that he’d “still love to make a go of a product, but it seems a long shot”, and there’s the nub of the problem. Creating a successful product is hard and is always something of a crapshoot, quite unlike programming which can be done pretty reliably if you’re good at it. If he’s not going to create a product himself, he can join the team of someone who is. But he doesn’t live in the Valley, and neither do you nor I, and that’s crucial. He’s in Oregon; you’re in Israel; I’m in Canada. Unless we’re lucky enough to find the right type of company locally, we’ll need to find one that, to maximize its chances of success by using a top programmer, is willing to use someone who not only works remotely but charges developed-world (i.e. not “offshore”) rates.
I think that just being good at what you do, or spreading the new word that will revolutionize the world is definitely not enough to be financially secure. Great minds through the ages had a very hard time making ends meet, and not only those that could not be acknowledged in their own time like Carl Marks, but even Einstein had a hard time at that until he came to the USA and was fully sponsored by the US government. And I mean, if Einstein can’t make it without a patron, who can?
In my opinion, if you want to be financially secure, there are skills for that, and they’re not related to your genius. Being a genius can make it easier for you to earn money, and it can also inhibit it – by thinking that just professionalizing the money will come.
It takes a combination of being good at what you do, and knowing how to make money from it that can create successful and fun places to be in like Fog Creek, in my opinion.
An interesting post you have here. I am as struck by Beck’s statement as you. I’ve always believed that someone who’s really loves his job and is good at it shouldn’t have trouble finding someone who will pay him for it.
I’ve worked as a developer for 10 years now in an independent company and the growth has been slow, but we haven’t shut down yet.
Jayasekara is correct… To survive is not just about good skills and brains, but also a striking upon a good product and some plain old good luck.