I recently received a copy of The Best Software Writing I by Joel Spolsky. As with his other book, it's an entertaining read with a number of enlightening insights into what I do for a living...
Joel Spolsky has gathered a number of blog entries, essays, and speeches that showcase (in his opinion) the best writings by software professionals. He feels (and I have to agree) that most programmers and developers will avoid writing at all cost, and as a result are not very good at it. You end up with either indecipherable ramblings or dry monotone typing that is akin to enduring some form of medieval torture. And I confess... I probably have strayed into both those areas a few too many times for the sanity of my readers. But by showcasing techno-geeks that can write coherently and with a touch of humor and entertainment, Spolsky hopes to raise the overall level of writing competency in the industry. I don't know if he'll be successful, but it definitely can't hurt...
Because the writings cover a wide range of topics, there's something for everyone. Or conversely, not everything will appeal to every reader. "Style Is Substance" by Ken Arnold is (for me) a great piece that advocates making programming style a built-in element of a language. Think of the time you'll save by killing off all style wars up front. The cartoon piece "Excel As A Database" will cause all developers to think Rory Blyth must work somewhere in their company with their users. And "A Quick (And Hopefully Painless) Ride Through Ruby (With Cartoon Foxes)" will, although rather strange, give you more information about Ruby in a shorter period of time than you ever thought possible. On the other hand, "A Group Is Its Own Worst Enemy" by Clay Shirky was something I seemed to have to slog through. You may well have just the opposite reaction on any or all of these. It's one of the fun things about this compilation... :)
While you can obviously go out and find all this stuff on-line at the various sites, odds are you won't find what you don't know about. Joel brings together a nice mixture of thoughts and concepts, all packaged within an expert writing style. If you're a professional developer, you probably should pick up a copy and see how writing can be done well...
Jack D. Herrington
Oh yeah, another Joel Spolsky book, just in time for... wha? It's only edited by Joel? Yep. This is a collection of article reprints, some without any editing or reformatting, with small introductions by Joel at the top of each article. That doesn't mean that the book is bad. It just means you need to know what you are getting for your dollars.
Myself, I'm not much on the article reprints. Granted, these are solid articles. But many can be found of the web and a book which could just as easily be implemented as a set of links on a web page with some annotations seems like a waste.
There are some jewels in here. In particular the Ruby introduction by "why the lucky stiff" which is just freaking awesome. Why APress decided to reprint his work as opposed to just get him to write a whole book is beyond me. He is a real talent in the world of engineer/authors. Especially given some of the competition, which from many proposals I have read have the writing skills of preschoolers on meth.
The topics in the book vary too widely for me to recommend this to any particular sub-group of engineer. These articles will be enjoyable to any career engineer who has a passion for the profession.
Meryl K. Evans
Having been in process management in a software organization for over ten years, I've seen too many articles and books on the topic that worked better than Valium for putting me to sleep especially since they have no side effects. Many say Joel Spolsky is one of the best writers on the topic of software. However, in this book he stands aside and lets others demonstrate that he isn't the only one who can write about software in English and captivate you.
Joel on Software (his Web site slash blog) fans won't be disappointed in the selection of authors as they deal with the concepts he writes about on his site. Some readers may be expecting a book solely on software development. Even Spolsky's writings goes beyond this. Some folks might be disappointed that most of the articles, blog entries, speeches, and essays are available somewhere on the Web. I only recognize a few of the authors and their articles, so I would've never known about the others had I not found this book.
The essays cover a gamut of development-related topics. They include coding style, outsourcing programmers, dealing with Excel as a database, using social software (Friendster, LinkedIn, Tribe, and all that) and the things that are right and wrong withthese shared spaces, emerging digital rights, and defining the two-phase commit process a la Starbucks. Even a couple of them are nothing but comics. The one on Windows search makes me laugh.
The book also contains business-related essays that address a few problems affecting many companies -- namely team compensation and forced overtime which often spills over the weekend. Spolsky introduces every essay and includes notes clarifying abbreviations, names, or terms that aren't widely known. After all, the world of software is vast and it's impossible to know everything about it. I want to make sure it's clear -- Spolsky does NOT contribute an essay in this book.
A manager can benefit from the book because of the insight into the developer's perspective which could help the manager become a better leader. The developer benefits because many of the issues covered can impact developers no matter what language is used for development. If you belong to neither management nor development, the best way to decide if the book is for you or not is to review the table of contents and reviews. If you find only one or two interesting possibilities, search for them online instead.
I'm one of those who belong to neither group. My software organization background has been along the lines of an analyst and process manager. Even I find that most of the essays are enjoyable or educational. Only one or two lost me.
While most of the content is available on the Internet for free, the book is worth the bucks. It's nice having a collection of high-quality writing related to software and the business in one place instead of surfing the Web for it. Furthermore, you get an opportunity to read about business offline -- I read most of the book while traveling on an airplane. Thanks to the book, the flight felt shorter. I appreciated and absorbed the essays better by reading them in the book than I would have had I read them online.
This is a collection of 29 essays about software development, selected and introduced by Joel Spolsky (of Joel on Software fame).
I've been a regular reader of Joel's site for many years, and many of the themes Joel has been writing about (social software, outsourcing, the dangers of measuring the performance of individuals using simple bug metrics, and sales and marketing of software) are reflected in the included essays.
Many of the authors have already published books of their own (Bruce Eckel, Paul Graham, Mary Poppendieck and Ron Jeffries come to mind), but regardless of whether they've been published before or not, the writing is consistently good. This isn't surprising, since according to the back cover, the goal of the book is to show-case good writing, and since Joel himself is a very good writer.
I had read a few of the essays before the book was published (and in the case of "Great Hackers" by Paul Graham, I had actually listen to it, thanks to ITConversations), but most of them were new to me. They cover a lot of different angles on software development, from how to format your code, to forced overtime.
The best essays in my opinion are "The Pitfalls of Outsourcing Programmers" (a short but well argued piece on why outsourcing many times isn't such a good idea), "Strong Typing vs. Strong Testing" (on the benefits of automatic unit tests) and "Style is Substance" (why not standardizing on one coding style - why not indeed).
Actually, as I look through the contents to pick which essays I liked the most, it is hard to choose. Many of them are really good. I have to pick a few more: "Measuring Testers by Test Metrics Doesn't" (with a great example of exactly how this can create a lot of extra work without adding any value), and the cleverly named "How Many Microsoft Employees Does It Take to Change a Lightbulb?" (explaining how a seemingly small change ripples through a big company).
Also, honorable mentions to Clay Shirky's two entries about social software (I had read both before, but they are very insightful and worth re-reading) and to Eric Sink's about software sales and marketing.
The least interesting for me were "Processing Processing" (musings on the nature of the web) and "Passion" (about passion for programming, which is a good subject, but this essay just didn't work for me).
There are also a couple of entries in the "Humor" category. The second essay is a hilarious send-up of the crappy Windows search, and the last essay made me laugh aloud several times. It's a quick tour of Ruby (the programming language), but with lots of stream-of-consciousness side tracks. And cartoon foxes! Not to be missed.
Joel's introductions are generally good and add to the experience. There is also a liberal sprinkling of footnotes, where Joel explains certain names and terms. Mostly this is OK, but it goes over-board sometimes. Given that this presumably is a book the will mostly be read by software developers, do we really need explanations of API-call, iTunes or Skype?
I suspect this collection will be followed by a "The Best Software Writing II", and I'm looking forward to reading that one too. By the way, since all the essays were culled from the web, you can probably find all of them just by surfing. But for me, it was worth it to have them all collected in book-form.
To summarize, a varied collection of interesting and well written essays on software development. Recommended.
Richard B. Way
Being familiar with Joel's website, and judging by the title of the book and the excepts I had seen I bought this book expecting it to be about software development. Success and failure stories of projects, designs, development, testing and deployments. What works for people? how much abstraction is good? What testing methods and tools work well and how to use them? Stuff like that. What I found however is that this collection of stories and essays has very little to do with software writing. It would be more correct to entitle is "The best of writing by people loosely related to software development." While some of it does go over some great aspects of development (The articles on social software are excellent!) there are some article that are completely assinine. For example a chapter where the author describe the best 'hacker' recruitment style, including all the offerings of your mother's basement. The author also goes to great extents to chastise anyone who isn't a python developer. There are also many articles on managing intelligence production teams(Software development, testing, deploying, etc...) and while these article were neat, they had nothing to do with the actual writing of software. Over all I was greatly disappointed in the book, and it would have been a complete waste had it not been for the (very few) burried gems in the rough and the social software articles.