In a lot of the writing on this site, there’s a central philosophy, that’s being expressed.
Wait… that sentence came out poorly.
I’m trying to share a central philosophy. It applies to a lot of the writing on this site.
Nearly, but a bit staccato…
A lot of my writing is around a central philosophy.
If you put in a little extra time, the consumer of your artifacts has an easier job. So, they’ll make fewer mistakes. And if they do the same, things stay easy.
A lack of simplicity, often a symptom of poorly expressed code, or unrefined first draft designs, makes a system tend towards chaos. The less simple, the more things the next person has to keep in their head to understand it, and the greater the cognitive load. The greater the load, the more chance that they’ll make a mistake, or take a shortcut to avoid making a mistake.
Shortcuts and mistakes lead to more complexity and a vicious circle.
This thought process can be applied to any artifact, be it code, design or documentation.
- In The 1-2-3, I talk about how to find the message in your writing and bring it out more clearly. Someone should probably talk about how writing in the passive voice weakens understanding, but I haven’t, yet.
- In With This Ring, I talk about making code read forwards. The better the flow of thought, the better the maintainance.
- This is why I hate Temp Variables so much.
- If something’s a surprise, then it’s better to reduce complexity by unsurprising it rather than putting extra stuff on top to mitigate the surprise.
- If going the extra mile is great, remember it’s also terrible if you don’t need to and generate weird edge cases
Overall, not taking the time to learn the best way forward, and not taking a moment to regroup when things are getting harder will land you in a situation that requires increasing amounts of brainpower just to stay in the same place.