> But if the toilet is already dirty, you’re not going to be the one cleaning other people’s pee, so you just add your own and leave.
Good analogy, but in code it's more than just disgusting to clean up after others. Changing code that was poorly written by someone else may cause bugs, bugs that now become your problem.
The goal of every programmer faced with such a codebase—as in the dirty bathroom analogy—is to get in, do his business as quickly as possible, and get out. Iterate this over time and the problem just keeps getting worse.
It's like the tragedy of the commons, where each programmer pollutes a common resource because the incentives are set up to reward that kind of behaviour.
This leads the codebase to become a 'Big Ball of Mud', the most popular architectural pattern in the world: http://laputan.org/mud/
It's the difference between a difficult problem, and a complex one.
I think most of us here would find complexity more interesting.
Most difficult problems are difficult for uninteresting reasons (uncertainty about how some API works, having to maintain poorly written code, unclear requirements or business rules...)
I think it would be better restated as 'when you've been doing it for a while you can make your mind blank all the time.'[0]
But it turns out that even though this can be really peaceful, it is not as useful as keeping your mind just at the threshold of the blankness, with just enough thoughts and sensations left.[1]
Why? Because you can use this state to investigate the workings of the mind, and to start to see how sensations cause thoughts, which can cause further thoughts and on and on etc. [2]
Meditation in many Buddhist traditions is to be used as a tool of investigation. It makes the mind just calm enough to enable you to study it. It is a form of introspective psychology.
An analogy from fluid dynamics: It can be almost impossible to predict the behaviour of a turbulent fluid, in fact this is one of the few remaining unsolved problems of classical mechanics. But we do have laws for laminar flows.
In the same way, calming the mind just enough, can be a great way to learn more about its workings. And having experiential insight into how your mind works, not book knowledge, literally can change your life. I know it has changed mine.
Good analogy, but in code it's more than just disgusting to clean up after others. Changing code that was poorly written by someone else may cause bugs, bugs that now become your problem.
The goal of every programmer faced with such a codebase—as in the dirty bathroom analogy—is to get in, do his business as quickly as possible, and get out. Iterate this over time and the problem just keeps getting worse.
It's like the tragedy of the commons, where each programmer pollutes a common resource because the incentives are set up to reward that kind of behaviour.
This leads the codebase to become a 'Big Ball of Mud', the most popular architectural pattern in the world: http://laputan.org/mud/