Jan 21
Simple, Correct, Fast (in that order)
"Simple, correct, fast: in that order" (coined by Drew DeValut) is one of the phrases that's good to keep in mind.
I usually like to expand it with the word "reliable", because it makes it more clear that you need simplicity to get (and maintain) reliability and correctness.
If you approach the reliability and correctness through simplicity, you'll also get more important characteristics:
- robustness (simplicity and reliability are prerequisites for robustness)
- performance (simple code is much easier to profile and optimize)
- composability (try to make your design composable - when you have a complex problem, try to split it into smaller, simpler composable parts)
On the other hand, with more complex/intertwined solutions, even if you manage to temporary achieve those characteristics, it will be extremely hard (or impossible) to maintain them in the long term.
Comments, suggestions and questions and are always welcome.