Live data from Hacker News

Why We Threw out All Our Code (And Why You Should Too)

blog.nowjs.com

61–66 of 66 posts

Re: Why We Threw out All Our Code (And Why You Should Too)

#61
post #46

Earlier quoted context omitted.

And that's how New York and Rome and Shanghai grew into world cities. They didn't pave them over and start from scratch. They grew out of shantytowns.

But wait, we were talking about buildings, not cities. A city is made up of many buildings. And buildings are torn down across cities on a daily basis.

Right, and chunks of code are thrown away on a daily basis.

The question is: which is the more appropriate metaphor for a project? A building or a city?

Re: Why We Threw out All Our Code (And Why You Should Too)

#62
Frequently, throwing out "all your code" is a sign you did pretty much everything wrong to begin with. Personally, the sign of a decent design is when you can wind up doing the old "Grandpa's Mattock" trick:

"This is grandpa's mattock; my father replaced the handle and I replaced the blade".

Re: Why We Threw out All Our Code (And Why You Should Too)

#63
post #46

Earlier quoted context omitted.

And that's how New York and Rome and Shanghai grew into world cities. They didn't pave them over and start from scratch. They grew out of shantytowns.

But wait, we were talking about buildings, not cities. A city is made up of many buildings. And buildings are torn down across cities on a daily basis.

People might think coders are a bit self-important if we start analogising our project's as cities rather than buildings.

Maybe some projects are more building innovation centres, that later go on to be used within actual buildings, and some don't get used.

Re: Why We Threw out All Our Code (And Why You Should Too)

#64

Earlier quoted context omitted.

But wait, we were talking about buildings, not cities. A city is made up of many buildings. And buildings are torn down across cities on a daily basis.

Right, and chunks of code are thrown away on a daily basis. The question is: which is the more appropriate metaphor for a project? A building or a city?

I agree with the position that it depends, code may be a building, or a city or any number of things.

I disagree with the OP that deciding to recode can simply be compared to tearing down and making a new building for no reason. That's oversimplification.

First, there are times when buildings must be demolished and built from scratch. The OP makes this idea seem ridiculous but it happens everyday when buildings are in fact demolished and rightly so. Second, fewer buildings are demolished and built from scratch relative to programming projects demolished and built from scratch due to the inherent differences between a coding project and a building project. For one, the former is more regulated and carries more physical risk than the latter(a coding project).

Re: Why We Threw out All Our Code (And Why You Should Too)

#65
post #7

Throwing out all your code and rewriting it from scratch is like demolishing your building and constructing a replacement from scratch. It's usually not the right thing to do, it occasionally and rarely is the right thing to do, and it's always the tempting thing to do. It's stupid to argue, "You should never tear down a building" (like http://www.joelonsoftware.com/articles/fog0000000069.html implies) and it's also…

>"like demolishing your building and constructing a replacement from scratch. It's usually not the right thing to do" Actually, tearing down a building and rebuilding is very often the right thing to do, but isn't done for the same reasons people don't toss their code and rewrite from scratch - sunk costs.

Unlike software, new buildings are almost invariably significantly more efficient and less resource intensive than old ones - and green building has, of course, gone from a fringe movement in the wake of the Rio Summit, to the mainstream and is now standard for public and corporate buildings.

Like poorly written software old buildings are expensive to operate and maintain (and unlike well written software buildings still deteriorate over time when left only to their own devices). Finally, like software one must go through old buildings and figure how systems were designed and installed and patched in order to modify them - and this is very time consuming. Per square foot costs of renovation are commonly as much or more than new construction.

Post reply on HN