The allure of golf lies in the fact that all shots cost one stroke. It doesn’t matter if you tee it up with a wood and blast it 250 yards down the fairway, or you tap in a putt from 3 inches away, it’s still one stroke on the score card. A day of brilliance for a professional golfer can fade away if they push that easy uphill three footer past the cup and lose by a single stroke. If you don’t believe me, just ask Scott Hoch.
I’m constantly reminded that programming is a lot like that. Many times the work done early in a project is a lot like hitting the ball down the fairway with a driver. You get that satisfying feeling of making progress in huge chunks, and everything feels grand. But no matter how easy it is to get close to the hole, you have to make those seemingly easy putts in order to finish, and the small bits at the end can wind up costing you just as much as the big chunks of progress did early in the project.
I can’t count the number of times that I’ve spent hours working on something that turned out to be a one character fix. The difference between “and” and “or” can mean thousands of dollars in lost revenue. Sometimes I find myself filled with a lot of sympathy for golfers who are ridiculed for missing seemingly easy putts.