I was recently re-reading Paul Graham’s classic piece “Great Hackers”, the reason being that Joel Spolsky included it in his “Best Software Writing” book, which I’m currently reading.
I have to admit that, when first I read it, it left me a bit cold. I particularly resented the opinion that no great hackers would autonomously decide to program in Java, when presented with an alternative like Python. I thought, and I still think, that the incredibly rich variety of Java Open Source projects couldn’t have grown out of dilbertesque corporate types. There truly must be some great hackers behind the best Java software. I even think I might have met some of them, unless the real great hackers are from another planet entirely.
Language issues aside, Paul’s essay was widely criticized at the time for being totally out of contact with reality. By staffing a company with hackers, the critics said, you will never get anything done. By letting them work on just what they like, they’ll never work on the customers’ problems.
Possible, but apparently companies that are doing more of this, like Google, are more successful than those that do less of it.
Nowadays, after having re-read “Great Hackers” and some other of Paul’s essays (in particular “What Business Can Learn from Open Source”), I am feeling more and more resonating with his opinions.
One of the things I’m starting to be convinced of is the fact that the killer applications of the next generation won’t be written in Java. Surely, they won’t be written using any one of the numerous, complex and bloated Java frameworks that litter the landscape. They’ll be written using Ruby, Python or some small domain-specific language. There still are some great hackers writing Java code, just as there are using C and C++, but we are already on the descending part of the curve.
Another point where I think Paul is straight on the money is in telling companies that they should completely rethink the employer-employee relationship.
Without going to such extremes as transforming all your employees into entrepreneurs and funding them instead of paying them a salary, the first thing they should do is provide employers with the very best working environment. If they can’t afford offices with doors, Aeron chairs and 30″ Apple Cinema displays for everyone, at least let them work from home.
The second thing they should do is let developers work on their own projects for some of the time. That’s not enough, actually. They should force developers to devote a consistent amount of time (like Google’s 20%) to side projects. And they could get better results by having the very best people work on tooling rather than fulfilling customer requirements.
Particularly if your business model is based on body rental, you should radically rethink it. There is only one working environment that is worse than working in your own company office: It is working at a customer’s office.
It’s not that you cannot thrive and survive with such a business model. There are lots of companies getting away or even doing very well with it. It’s just that you’ll never be able to hire and retain great hackers if this is how you work.
This kind of advice should be particularly heeded by those companies who pretend to be adopting and promoting the Open Source way of developing software, or are asking their developers to interact with Open Source communities and participate in Open Source projects.
Certain kinds of business models and working environments are fundamentally incompatible with the Open Source way of working. If you think you can have both, you’re deluding yourself. And there’s no doubt about which environment the best hackers would choose.
I am glad to report that the company I currently work for is not totally clueless with respect to these issues. Even though it takes courage to introduce radically new working policies and business models, particularly when you have families to cater for, I am confident that we are moving in the right direction.


Ci sono posizioni aperte in tua dita? Mi piacerebbe lavorare in Italia per gente con un po’ di senso.
Thanks for the interesting and provocative post.