“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
—Refactoring, Martin Fowler with Kent Beck, 1996
Always start with the foundation
This means before we actually start building "the thing", we need to have setup a repeatable way to build/run/deploy "the thing".
This allows us to move fast and iterate quickly.
It is always a pain to setup the foundation after we have started building "the thing". The code will tend to encircle manual, undocumented processes.
Broken things are fixed immediately
Never leave the pipeline broken. Fix it immediately. Priority over everything else, especially if we are in a team.
"The broken window theory"
Suggested reading: https://blog.codinghorror.com/the-broken-window-theory/
Keep documentation next to the code
Simple things like a concise README.md
file in the root of the repository with simple and clear instructions can alter the perception of the project and boost its adoption.
Good design is invisible
Keep things simple. If it is hard to understand, it is hard to maintain.