I've thought sometimes about something I either heard Ton Roosendaal say or heard indirectly (?):
"Those parts of the codebase that are mangled and hairy, the ones the devs always complain about... those are the parts the users really want and like"

Interesting take on worse is better

@cwebber Inclined to agree. If that code was generic enough to be easy to refactor then many devs likely would have done so already. But it's that generic then there's nothing unique enough there for the user to love it over other options. It's like how we prefer mom's original recipe (the one living in her head) over the canned store versions.

@cwebber here's a concrete example: i worked on a retail website. product listings, shopping cart, checkout - the usual stuff.

we let people backorder things that weren't in stock, and then we'd ship it when it showed up. it must have been the source of at least half the complexity in our business logic. complicated product display, the cart, order placement, all the shipping code, the financials, purchasing...

@cwebber after years of this, i went to work for our main competitor, who had just decided "we don't take backorders". it was night and day. they'd just opted out of having to solve entire classes of problem.

but here's the thing: people _love_ backorders. if you don't do it, they'll demand it, and if you do, they'll use the shit out of it while exercising every weird infuriating corner case in it you can imagine.

@cwebber Joel Spolsky made a similar point in his extremely influential 2000 essay "Things You Should Never Do, Part One."

His angle was, hairy code is institutional knowledge. It's a record of bugs encountered and fixed.

@cwebber Ha! Great minds think alike, etc. 😆​

Definitely give THE SYSTEMS BIBLE a read sometime if you haven't -- it's the rare insightful book that is also funny

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!