18 October 2011

Steaming pile of poo

Steve Yegge wrote this in 2004 when he woked at Amazon:

We have 50 million lines of C++ code. No, it's more than that now. I don't know what it is anymore. It was 50 million last Christmas, nine months ago, and was expanding at 8 million lines a quarter. The expansion rate was increasing as well. Ouch.

Stuff takes forever to do around here. An Amazon engineer once described our code base as "a huge mountain of poop, the biggest mountain you've ever seen, and your job is to crawl into the very center of it, every time you need to fix something."

- Steve Yegge

I think 50 million lines of anything is likely to be a little whiffy. Unless it's written in Lisp. (It is, of course, impossible to write crap code in Lisp. (I know, I know, if it was written in Lisp it would only be 500 lines and therefore not whiffy at all.) Well, I don't like to brag, but I can write crap code in any language.)

It's true, I sometimes write code to achieve some goal without fully understanding what I'm doing. Imagine: you don't fully understand the problem, or the library you have to use, or the best way to approach the user experience, or the most appropriate algorithm, or whatever. You try stuff and it may work or not and you learn and you come to understand better what you are doing. So then the code kind-of works, and now you know what you are doing and you can tidy it up so it looks like you knew what you were doing from the beginning. Except sometimes this last bit doesn't happen, maybe there isn't time, so the shipping code looks like it was written by someone who didn't know what they were doing, which it was.

Do we ever finish our significant works?

I never finish a painting - I just stop working on it for a while.
- Arshile Gorky


index of blog posts

No comments:

Post a Comment