Hacker News new | ask | show | jobs
by daguar 2409 days ago
I think I have to quibble with this:

> Here, I propose Scott’s Law: never put order in a system before you understand the structure underneath its chaos.

James C. Scott wouldn't probably never underwrite re-ordering of systems from the top down.

Central to his argument is that viewing complex systems from any singular position requires a process of simplification (legibility) that prevents a complete understanding.

The presumption that one has gotten to a place of "understand[ing] the structure underneath [the] chaos" is in fact the false confidence he attributes to most of these ordering projects.

I think if you want to wrangle a suggestion from Scott's book, it's more about making lots of small pokes at a system and seeing how it reacts, and slowly building on positive reactions from the system.

(Also, messiness and complexity are not intrinsically linked to the efficiency of a system — systems can optimize for lots of variables and it's really context-specific. So as much as you shouldn't take order to be innately good, don't take messy to be innately efficient!)

3 comments

> "I think if you want to wrangle a suggestion from Scott's book, it's more about making lots of small pokes at a system and seeing how it reacts, and slowly building on positive reactions from the system."

I can feel a bit for it. I have worked on a complex multi-million line codebase. There was this predictible behavior when a new guy came to join us. Many times they had never worked on such a large project.

First they rant about how terrible the system is, than tell us how wrong the system is, followed by advice about how we should use this an this method or design patterns to make things right.

Only after months of working with the code the guy would cool down. When a (software) system is really complex, you have to get familiar with it. No matter how you structure it, a minimum number of logic and dependencies will always exist. Restructuring will not take away the complexity. It's just replacing them.

Offcourse a clear structure is better for you're understanding than a messy one, but even in the most clearly written code a lot of complexity can exist. I think Scott is talking about this, the point beyond clear structure.

thats complexity :)

Have an upvote.

By coincidence I just read Scott’s book not too long ago and can attest that it contains not a single suggestion that imposing any sort of order on a system is ever a good idea. Quite the opposite, in fact.

There may be lessons for city planners and agriculturalists in the book, but I’m pretty sure there isn’t a single one for software developers.

Au contraire. The world wide web is justified by Scott's book. As is JavaScript and the crazy things we do with it. Worse is Better. Understanding how distributed systems actually work beyond how we wished they work.
> Here, I propose Scott’s Law: never put order in a system before you understand the structure underneath its chaos.

Previously formulated as Chesterton's Fence [0], among others.

There's definitely a blind spot in software for the general principle that you should understand a thing well before you decide to remove it. Anyone want to propose some theories on why disregard for an extant body of work tends to plague software so extensively?

[0] https://www.chesterton.org/taking-a-fence-down

Because we suffer from the attitude that we don't have to understand a thing, as, say, reading the article might lead to, before attempting to correct it. ;)
It wasn't really intended as a correction -- more just an addition -- but I didn't feel like clarifying just to save a few imaginary internet points. Apologies to anyone who interpreted as attempting to correct an article I didn't even read. :)
The OP explicitly mentions Chesterton’s Fence.
> Anyone want to propose some theories on why disregard for an extant body of work tends to plague software so extensively?

Removing stuff isn’t restricted to software practitioners but there’s no need to reach for a flashy theory for something that can be adequately explained by human nature, in this case hubris.

Hubris is bound to manifest in any situation when a person with incomplete understanding of the situation, acts like they ‘know best’.