Important Blog Posts, Part 2

This is the second part of an ongoing series in which I list blog posts that have profoundly impacted my personal thinking.  The first part is here.


1. Joel Spolsky: The Development Abstraction Layer

If you are someone who manages software developers, then your first priority must be to build the development abstraction layer.

Please read this essay.  I'm begging you.


2. Steve Yegge: Good Agile, Bad Agile

The inimitable Steve Yegge at his best.  There are so many jewels in this post.  No other blogger can consistently deliver epic posts with such absolute lucidity.

In this post, Steve paints a vivid picture of what it's like inside Google.  He describes how the developers are able to ship excellent products on time without following any particular methodology.

Stevey's ultimate point: be agile, not Agile.


3. Joel Spolsky: Human Task Switches Considered Harmful

This is another one of Joel's essential essays that I wish all managers would read.

In past jobs, I've noticed that many managers have little or no understanding of this concept, and have no idea that they are killing their developers' productivity.

Ruby on Rails Shops in Grand Rapids, MI

Updated 1/24/2008

In the spirit of some posts I've done in the past, I've made a list here of all the companies I could find in Grand Rapids using Ruby on Rails.

As you can see, it's slim pickings. Let me know if I've forgotten anyone!

Important Blog Posts

I've been voraciously reading blogs for about two years now, and in that time, I've come across some pretty amazing stuff.

I decided a couple months ago that I really needed to make a list of my all-time favorite blog posts and essays, and share that list with others.  This list would only include things that have profoundly impacted my personal thinking.

Here is the first subset of that list.


1. Joel Spolsky: The Law of Leaky Abstractions

This is my favorite thing that Joel Spolsky has ever written.

This essay took on a whole new significance for me when I started learning Web development with ASP.NET.

Even if you know how to drag and drop in the Visual Studio designer, you still must know how to write HTML, CSS, and JavaScript.  Even if you use an object-relational mapper like SubSonic, NHibernate, or even the NuSoft Framework, you still must know SQL.

As a software developer, you'll need to rely on abstractions created by others.  These abstractions will leak, and it will be your job to plug those leaks.


2. Paul Graham: Great Hackers

Paul Graham can certainly seem arrogant and full of himself at times, but this classic essay remains a must-read.  Get inside the mind of a great programmer.


3. Joel Spolsky: The Joel Test: 12 Steps to Better Code

Just a note to every company I've interviewed with since college: whether you knew it or not, you took the Joel Test. ;)

Perfect Design Is Asymptotic

"Perfect design is asymptotic. You can get infinitely close, but you can never reach it."

- Phil Haack

I thought that was one of the more profound things I'd read (about software) in a while.

Native IntelliSense for SQL Server Management Studio 2008

In case you haven't heard, SQL Server Management Studio 2008 is getting native IntelliSense.

What took so long?

I know that SQL Prompt has been filling this gap for a while, but I've always found it to be buggy and inconsistent.

It's nice to know that we'll finally have first-class IntelliSense when writing T-SQL.

I Can't, in Good Conscience, Ignore TDD for Much Longer

"Over the last twenty years I’ve seen the rise of Structured Programming and Object-Oriented Programming and Message Passing and the Relational Model and those are all good things, but TDD is the single biggest advance in my lifetime. It might (finally) turn software from an amateur’s kitchen to an engineering discipline.


If you already know about...TDD and you’re not using it, you should be waking up in the night in a cold sweat, because you’re being less than professional.


If you’re a Software Development Manager, ask your engineers if they’re using TDD, and if they’re not, make them start.

And if you’re a CIO, ask your development people if they’re using TDD internally, and if they’re not, go order some copies of Kent Beck’s Test Driven Development: By Example and hand them out and tell them to get with the program. Anything less would be unprofessional."

- Tim Bray, 2004