Menu Sidebar


How to be a “Dirty Harry” programmer

How often have you heard and/or told this story? Right before the project started I’d seen some blog posts about Tool X and I really wanted to give it a try. So I talked the other developers into using Tool X. At first it went really well, but we kept on running into problems with […]

Pair Programming is like Having a Copilot

A common client objection to pair programming is that the project isn’t big enough for two people. The assumption being that more programmers means more work accomplished (at greater cost). It occurred to me today that perhaps the best response to this is to make the comparison to the pilot/copilot system in aviation. It’s not […]

Cargo Cults and Dharma Transmission

Here’s a pattern I see a lot in discussions of development practices: Skeptic: I’ve tried practice X, and it doesn’t work Believer: What do you mean it doesn’t work? It works for me and everyone I know. You must be doing it wrong. Skeptic: Nonsense. I did it exactly the way the book says to […]

Wax on, Wax off

Zed’s post on mastery is great, as usual. I have only this to add: that while mastery transcends rules, no one achieves mastery without first acquiring discipline. The masters, who eschew wrote practices to cut straight to the heart of a problem, first spend years practicing forms, repeating katas, and studying theory. I think every […]

Older Posts

Virtuous Code

"The three virtues of a programmer: laziness, impatience, and hubris" — Larry Wall

Books and Screencasts

RubyTapas Screencasts

RubyTapas Screencasts

Small plates of gourmet Ruby code.

Confident Ruby

Confident Ruby cover

32 Patterns for joyful coding.

The Making of

Confident Ruby cover

Watch me build an app in Sinatra and Rails

Objects on Rails

Objects on Rails

A developer notebook on applying classic Object-Oriented principles to Ruby on Rails projects.

Exceptional Ruby

Exceptional Ruby

The definitive guide to exceptions and failure handling in Ruby.