50bookchallenge #23/50: The Best Software Writing I Joel Spolsky, editor
Joel Spolsky is the Joel of joelonsoftware.com, who writes that his company has a policy that any programmer working for him must be able to write English well. However, he notes that there are precious few good writers writing about software and a good many terrible ones. So he decided to collect the best software writing he could find to showcase it and encourage the writing of better articles and books about software in general.
I’m interested, of course, because I program for a living and I also value clear writing in English (though you may not be able to tell based only on what you read here). It seemed like a natural for me, and I was right. This book was filled with good articles, some of which were very relevant to the work I do and others served only as an example of clear and engaging prose about subjects peripheral to my realm of experience.
Many, if not all, of the articles featured in The Best Software Writing I are available online, so the value of a collection like this is in having an easy, random-access copy of them to hold and read on the train or in a coffeeshop or the park, and also the job of editing or choosing the articles that Joel Spolsky has done. Google still doesn’t have a “show me the best-written pages” button.
On a personal level, I’ve been reading books about programming and software development because I’d like to be a better programmer, which is a nice way of saying that I have shortcomings as a programmer that I would like to have addressed. That’s not to say that I’m particularly gung-ho about doing the work to address them; really I’d like to just magically be a better programmer. Or maybe if I just read the right books about software…
Lately, in fact, it’s seemed almost impossible for me to write even small snippets of code. I’ve found that I can talk about programming, I can talk about software development, I can sit in aroom with my manager and talk about the best way to address a problem, and then sit at my desk looking at the screen realizing that the granular level of actually writing the code is just too much for my brain to handle.
So reading Eric Sink’s excellent “Hazards of Hiring” hit me in a particularly deep way. In Spolsky’s introduction he writes of the importance of keeping away from hiring the “90%” person, who isn’t terrible but who will eventually slip your dates because they just aren’t up to speed the way they should be.
One of Sink’s admonitions is not to hire anyone with even the slightest hesitance. Only hire the very best, and not someone who is simply as good as everyone else on the team, hire someone who is better at at least one thing than anyone else on your team.
I look around the room at the team I work with and I’m hard-pressed to find that one thing that I do better than any of them. In fairness, there are a couple of things, but none are related to the work that I do. So looking at my own desk, I wonder why I got hired, and my estimation of my managers decreases. Well, maybe another thing that I do better than them is to determine if I’m a good fit for the team.
One thing he nails that doesn’t hurt too much is his suggestion to hire developers, not programmers. He says a programmer is someone who does nothing but code new features and fix bugs. A developer sees code as one aspect of a project and will contribute to the project in multiple ways. So maybe my skills are suited to others of those ways. I wish I could put my finger on what those other skills are, because I’m not interested in putting in the work necessary to become a better coder. Again, I’d rather read a book that put in actual work to developing problemsolving techniques in code.
Then he writes a section titled “Look at the Code.” Of course, the very best developers ought to be darn good programmers. He gives examples of what to look for, and in particular this jumps out as an indictment of my suitability to the job I’m paid to do. Open Source projects, he says, are a great indicator that the potential hire is a good choice. If the candidate enjoys writing code enough to do it without pay, likely the passion and skills will be there.
Well, that’s enough to scare me right out of the industry. If I were to never write another line of code in my life, I think that would be a good life. So one depressing piece of self-awareness that comes along with having read this book is that I don’t even vaguely enjoy what I get paid to do.
So thanks, Joel. Your book has inspired me to realize that I’m no good at what I do and that I should quit my job. Too bad I’m getting paid enough to sacrifice my own integrity and not follow through with this insight.
On a parting note, here, this (from the book) is great: A Quick (and Hopefully Painless) Ride Through Ruby (with Cartoon Foxes). And it’s a little inspiring that maybe, just maybe, having visual skills and some computer knowledge is not such a bad thing.
Even with the downturn, the
Even with the downturn, the special breed of born programmers he’s describing (people like me) are rare enough that there aren’t nearly enough of them to cover all the programming work that needs doing. Nothing wrong with being one of the people for whom it’s just a job. You’re still hardly dispensable.
woops, that was me.
woops, that was me.
Paul is right. Those people
Paul is right. Those people are exceedingly rare and probably make a lot more money than you do. I think there is a place for a coder who just writes code and for a designer who can only design. Most programmers fall somewhere in the middle. Few are really good at either. That’s why companies hire TEAMS.
Dad