Vamshidhar Kommineni

December 3, 2006

Book Review: The Best Software Writing I

Filed under: Books — Vamshi @ 11:57 pm

4 stars (if you’re interested in software)

Book Cover IllustrationWell, I guess this is my first book review, mostly because I have to return the book to the Microsoft library tomorrow. It’s a collection of essays that I read over the last few weeks so I actually need to refer to it to write my review.

As an aside, Microsoft has an excellent library for employees, where they have good books (software, business, career, etc.), magazines (the regular popular ones like the Economist, Time, etc.) and online resources (IEEE Explore, Factiva, WSJ, etc.). Best of all, the library is self service and open 24 hours for browsing or borrowing. The only downside, but probably a necessary one is their recall policy. In order to get books out of the grubby hands of serial borrowers like me, they recall the book after 6 weeks with two emails about 10 days part and then a third email which copies your boss. At which point, my exasperated boss has to trudge over for the nth time and say "Return the damn book, for crying out loud" :).

If you don’t want to wade through the rest of this post, you will definitely find at least a few interesting articles if you do anything related to computer science and particularly CS as applied in software companies. All the articles in the book are available online and linked below so you can pick and choose what to read. I’m looking forward to the next compilation of essays.

Thanks to this chap, I don’t have to link to the articles in the book that are available online and will happily plagiarize from that site. If the links go dead, at least the articles are preserved for posterity in the book. And I would still buy or borrow the book for Joel’s notes as well as the ease of reading the dead tree version. Indented notes below are mine:

  • Ken Arnold – Style Is Substance 
    • Good article suggesting that coding style should be enforced through the language and that white space should matter (ala Python).
  • Leon Bambrick – Award for the Silliest User Interface: Windows Search
    • A one page comic on why Windows Search (in XP) sucks. I agree. The search functionality in Vista is much better :).
  • Michael Bean – The Pitfalls of Outsourcing Programmers
    • A great article on why any company shouldn’t outsource it’s core competency (in the case of a software company, outsourcing software development). Of course global development teams are a different idea and shouldn’t be clubbed together with simple outsourcing.
  • Rory Blyth – Excel as a Database
    • Funny comic on how people end up with crazy Excel spreadsheets. I’ve been subject to the receiving end of some of these spreadsheets as well
  • Adam Bosworth – ICSOC04 Talk
    • On the virtues of keeping things simple in the design of "Web 2.0" software. Adam is always fun to read and this talk is no exception. Sadly, it seems like he hasn’t written anything new on his blog for about a year now (unless I can’t find where he moved his blog to).
  • Danah Boyd – Autistic Social Software
  • Raymond Chen – Why Not Just Block the Apps That Rely on Undocumented Behavior?
    • The one and only Raymond Chen on why app compat matters to Microsoft. Good read. I was fortunate enough to work under the dev manager (Cornel Lupu) who came up with the notion and implementation of shims (a mostly internal technology to ensure app compat in an elegant way), so I can certainly appreciate it.
  • Kevin Cheng and Tom Chi – Kicking the Llama
    • You have to see the comic to appreciate it :)
  • Cory Doctorow – Save Canada’s Internet from WIPO
  • ea_spouse – EA: The Human Story
    • This article has been much discussed and quoted and possibly even led to some changes at EA (though I wouldn’t know). A human and family perspective and a good lesson on why you shouldn’t burn out your best people by putting them in crunch mode all the time.
  • Bruce Eckel – Strong Typing vs. Strong Testing
    • Why lazy type checking is not such a bad thing and good unit tests and automation matter much more
  • Paul Ford – Processing Processing
    • Good read. Hard to describe the article, but a good read nevertheless
  • Paul Graham – Great Hackers
    • Paul Graham is a really good writer and I enjoyed reading most of the articles on his site. This essay is about great hackers, how to recognize them, how to nourish them, etc.
  • John Gruber – The Location Field is the New Command Line
    • Thoughts on why the web as an application environment (software as a service to use the current buzzwords to describe it) is becoming popular.
  • Gregor Hohpe – Starbucks Does Not Use Two-Phase Commit
    • A fun little article comparing the Starbucks order process to software concepts
  • Ron Jeffries – Passion
  • Eric Johnson – C++ — The Forgotten Trojan Horse
    • A great read on how C++ conquered C with nary a fight.
  • Eric Lippert – How Many Microsoft Employees Does it Take to Change a Lightbulb?
    • A good read on what it takes to ship (vs code) a "simple feature". The other takes on the problem that Eric links to are also good reads
  • Michael "Rands" Lopp – What to do when you’re screwed
    • A really good article from a good writer on some of the perils and lessons of life as a software dev manager.
  • Larry Osterman – Larry’s Rules of Software Engineering #2: Measuring Testers by Test Metrics Doesn’t
    • Our very own Larry Osterman. I couldn’t agree more on the post and I’ve sadly seen evidence of it as well. Good testers are worth their weight in gold. Do not weigh them down with stupid metrics that are easy to game as well as being besides the point of shipping quality software
  • Mary Poppendieck – Team Compensation (pdf)
    • Some interesting thoughts on compensation for engineers, particularly the ills of ranking software engineers on a curve. This has been a topic of much debate at Microsoft and other places over the last year or so, and remains a very relevant issue.
  • Rick Schaut – Mac Word 6.0
  • Clay Shirky – A Group is its Own Worst Enemy
  • Clay Shirky – Group as User: Flaming and the Design of Social Software
    • Good articles on desiring social software. The first one in particular is interesting.
  • Eric Sink – Closing the Gap Part 1, Part 2
  • Eric Sink – Hazards of Hiring
    • Eric is another good write that I’ll have to start reading. His articles above about small ISVs and issues related to hiring people in small companies are very good. I like his definitions of "The Sales Guy" and programmers vs developers (though I tend to think of the latter as developers vs engineers, since by default everyone who writes code at Microsoft is titled a developer)
  • Aaron Swartz – PowerPoint Remix
    • A humorous take on why PowerPoint is bad. I wholeheartedly agree that PowerPoint is misused many millions of times a day. It’s worth reading this Edward Tufte deconstruction as well. I’m curious enough that I ordered Tufte’s essay on the issue.
  • why the lucky stiff – A Quick (and Hopefully Painless) Ride Through Ruby (with Cartoon Foxes)
    • I don’t know much about Ruby as a programming language, but the article was certainly a fun way to a learn a bit about. The cartoons are priceless.

Technorati tags: , , ,


Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Create a free website or blog at

%d bloggers like this: