How much effort do you put into something that you’re going to give away for free?

The Chipotle nearest to me had a bit of a fire last week. When I arrived the following morning, they were still in the process of going through checkouts by the FDA and whomever else to ensure that they were good to reopen. They had to turn away customers for the first part of the lunch rush, but instead of leaving empty-handed, customers were given coupons for free burritos the next time they came back:

(So … I had a really nice picture of the coupon here. But Chipotle emailed me and asked me to take it down because really dumb people kept trying to print it out and use it as a real coupon. Web quality and all. Dumb! Sorry about that, Chipotle!)

(Yes, there is a back side. Yes, it is just as detailed.)

While they aren’t printed on linen, these burrito bucks have many of the same anti-counterfeiting features as modern currency: foil printing (the burrito in the Chief’s hand), moire-inducing dot patterns, thin lines, embossed stamping, serial numbers, heavy-weight paper, and even a low-contrast pseudo-watermark.

Someone put a whole heckuva lot of time and effort into creating a very nice looking coupon, which would then be given away and redeemed for product that would eat away at the bottom line for the restaurant (and chain). I’m impressed by this.

It’s too easy to say “well, it’s costing us money to do, so let’s not spend too much time on it”. But then what happens? No matter how nice and polished the rest of your image is, you still put out something that doesn’t meet your usual standards. Why not? Is the loss of image worth the money? The answer may not be easy, and it may come down to it being a compromise, but it’s still something that deserves thought.

I think the same thing applies to code. I’ve never been a big fan of throw-away code or doing something once that you’ll never do again. I guess that’s why I’ve stuck with ColdFusion all of these years. Yeah, CF may not be as fast-to-scaffold as Ruby, and it doesn’t have Perl’s knack for handling one-shot tasks. What CF does really well is build things that will last. It may take more brick-laying up front, but once it’s done it’s done, and it will last. I don’t believe I’ve ever heard the word “brittle” used to describe CF code.

If it’s worth doing, then it’s worth doing right the first time.

By Rick Osborne

I am a web geek who has been doing this sort of thing entirely too long. I rant, I muse, I whine. That is, I am not at all atypical for my breed.