Live data from Hacker News

The Efficiency-Destroying Magic of Tidying Up

florentcrivello.com

111–120 of 196 posts

Re: The Efficiency-Destroying Magic of Tidying Up

#111
post #6

I once cleaned up my sister's room. I thought I was doing her a favor but she was mad at me for a week! In hindsight I should have known better. Spacial memory and all that, she knew where everything was even though it looked messy. The article is not talking about the kind of tidiness that is the hallmark of a well-run workshop, IMO. That kind of tidiness is part of what makes more efficiency in that context.

>Spacial memory and all that, she knew where everything was even though it looked messy.

This is something my wife and I have figured out over time - If it's your own space and nobody else uses it, it's fine to descend to 'chaos' because you can just remember where you last put something.

That model breaks if the space is occupied by more than one person, because where one person put something isn't witnessed by the other person. So, having designated places for things and returning them to their 'home' makes the space most usable by multiple people.

Personally, even for solo spaces, I still favor everything having a home because I don't have a good memory for where things were placed.

Re: The Efficiency-Destroying Magic of Tidying Up

#112
post #94

I strongly disagree with this. Software should not be written to suit the machine. Software should be written to accommodate the weakest link: humans who are going to need to figure it out 6 months from now when its current programmer departs for the greener pastures. If there's no rhyme or reason to it, it fossilizes immediately and costs a lot of money to rewrite (often into another fossil). So whatever effort you…

Yep. What this article skips over is maintainability in all of the things it discusses, and in most cases also flexibility.

The optimization it praises only has single focus (operational efficiency), whereas if you take into account all of the aspects of the things in question, suddenly you see that the way things are are usually a solid compromise between the aspects it's really optimizing for. That includes human interactions such as analysis, repair, modification, and so on.

Re: The Efficiency-Destroying Magic of Tidying Up

#114

Earlier quoted context omitted.

I used to write code like that - architecting whole application up front, creating layers upon layers of abstractions. Experience taught me to do the reverse now - start with the simplest version that works, keep going until writing code gets tough, and then switch to whiteboard and use what I learned along the way to design a proper solution (and if any part of the design process starts getting tough, I switch back…

Maybe the most astonishing thing I've learned in my career is that it's far better to design your system after the code is written and working! Because that's the time when you've learned to understand the problem, and you already have working code to move around.

This, absolutely. The time to design properly isn't before you write code. It's when the requirements start to become fixed rather than fluid.

Re: The Efficiency-Destroying Magic of Tidying Up

#115

Sorry but there's no excuse for crap code. If it's hard to understand then time is lost every time you have to work with it. You shouldn't defend it by trying to assign positive attributes to it (its effecient. ...yeah). Maybe there's nothing good about bad code and we should use being called out on it as an opportunity for improvement. No, lets double down on our delusions of superiority by telling ourselves that cr…

Most of the reasons why code is hard to understand will be on a fairly small scale. It is possible to yank that out and replace it, while honoring and respecting any underlying chaotic organization that may have occurred despite the crap quality of the code. (As the article says, this sort of chaotic adaptation requires flexibility and crap code only inhibits that.)

That's pretty much what I've done in this last calendar year, taken two messy systems chaotically (in this article's sense) interfaced with the rest of the company, and upgraded them. I gave them new, hopefully-non-crap code, certainly better documented code, documentation on the system structure, better operational deployment, massive upgrades to security, general speed improvements, and in one case, a fundamental architectural change at the most foundational level even though the surface that the users interacted with hardly appeared to change.

And yet... despite all that, I would not say I "rewrote them from scratch", because I did not simply start with a blank sheet of paper and start scribbling what I think the ideal solution would be. I took the underlying adaptations, respected them, assumed that they likely had a reason even if I didn't know what they were, and built systems that largely dropped into place on top of the old ones rather than being totally foreign bodies that cause cascading requirements for other systems to also be significantly rewritten.

If, in the future, those other systems do get rewritten, I even have some paths prepared (but not yet written) in the code for true architectural upgrades to occur in the future. But in the meantime, I have improved systems that work now.

It's a much better approach to replacing a system that denying the chaotic adaptations. Even "crap code" can be mined for them, and they are not generally the crappiness itself.

Re: The Efficiency-Destroying Magic of Tidying Up

#116
post #48

Earlier quoted context omitted.

I work for a large size corporation but one which is a quarter the size of many fortune 100s. I guarantee you almost no one knows how things work or are done beyond their immediate scope. Much of my life is spent just trying to glean an understanding of some adjacent function or trying to convince people above me that things they believe about how things work are not actually reflective of how they actually work. A R…

Maybe that's how Musk's ventures are different - he knows how everything in his corporation works?

Everything? No way, that's not humanly possible. But he does know a lot and more importantly is a fantastic engineer and can understand any part he needs to.

The majority of companies are run by people who would have trouble understanding the details of what their company does.

Re: The Efficiency-Destroying Magic of Tidying Up

#117

Earlier quoted context omitted.

There are ways to make such "organic" structures more resillient. Life is one huge proof of that. One of the reason biologists and medical researchers have so much trouble figuring how anything works in living organisms is because in biology, there are very few clear boundaries; every process is mixed up with a lot of other ones. And yet the final result is incredibly resilient.

Sure, but that’s the result of almost 4 billion years of trial and error. I don’t think comparing that to a couple years of engineering trial and error is quite the same :p

Why not? Our brains let us iterate orders of magnitude faster than biological evolution can. It's how we built civilization.

Re: The Efficiency-Destroying Magic of Tidying Up

#118

Earlier quoted context omitted.

> New cars of today tend to require expensive somewhat expensive specialists to fix Not for any practical reason. The tolerances on some parts are tighter, but in general anyone who takes the same interest that the average man took in the '80s can repair the vast majority of a current vehicle, safely, as long as they're not deliberately impeded by a computer.

> as long as they're not deliberately impeded by a computer But I meant exactly that - at least from the stories I hear (I don't own a new enough car), half of the breakage in modern cars seems to require interfacing with the computer to at least clear an error flag. I once helped a guy with a software project, and learned that he's operating a workshop fixing a specific car brand. He showed me the device he uses to…

If you don't want to do complex diagnostics that kind of stuff is unnecessary for the overwhelming majority of repairs on the overwhelming majority of vehicles.

I think you're bother over estimating the complexity of modern vehicles and under estimating the simplicity of old ones. Back in the carburetor days people were complaining about vacuum line spaghetti to run the emissions system. People always complain about new stuff.

The reason new stuff is harder for DIYers to work on is because there isn't yet a body of knowledge on how to work on them without all the stuff a shop had.

Re: The Efficiency-Destroying Magic of Tidying Up

#119

Earlier quoted context omitted.

> New cars of today tend to require expensive somewhat expensive specialists to fix Not for any practical reason. The tolerances on some parts are tighter, but in general anyone who takes the same interest that the average man took in the '80s can repair the vast majority of a current vehicle, safely, as long as they're not deliberately impeded by a computer.

> as long as they're not deliberately impeded by a computer But I meant exactly that - at least from the stories I hear (I don't own a new enough car), half of the breakage in modern cars seems to require interfacing with the computer to at least clear an error flag. I once helped a guy with a software project, and learned that he's operating a workshop fixing a specific car brand. He showed me the device he uses to…

>half of the breakage in modern cars seems to require interfacing with the computer to at least clear an error flag.

Yes, you need an odbII tool. they are not expensive by the standards of decent '80s automotive tools (the cost of 'minimum viable analog tools' has dropped precipitously during my lifetime. )

The cheapest ODBII tools are bluetooth, and there is a cornucopia of apps to interface with them in the app store. You can get one that is easier to use that doesn't require a phone for $100 that will work for most problems on most cars.

(Of course, the more expensive ODBII tools are better, I'm given to understand, and allow you to do more, but you can do a lot with the cheap junk; and resetting the codes is generally the most basic functionality; unless you've got a fancy car, even the cheapest one that fits your brand should work for that. )

Having come of age at a time when I was driving and repairing (older) carberuated vehicles, I personally think that fixing a carb is like a thousand times harder than interfacing with the ODB system. Modern injection systems just solve so many problems without trying.

My experience of the modern diagnostic systems is that it's actually way easier. The scan tool saves you so much time and effort vs. the old manuals "go to page 5 if it doesn't X, 32 if it does" A lot of the time, the cheap scan tool gives you a code and description; you punch that into a search engine and you get a goddamn video of someone doing the repair. It's amazing compared to screwing around with an exploded parts diagram. (I mean, from the perspective of someone who isn't really a car guy) - I mean, there's always problems the scantool doesn't catch, but... I mean, I'm talking about all this from a shadetree perspective, there have always been a lot of automotive problems I couldn't fix, just 'cause I'm not an automotive specialist.

Re: The Efficiency-Destroying Magic of Tidying Up

#120
post #45

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. T…

> 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

Post reply on HN