don't design a system to avoid a component you don't understand

Too often your fear of a component that you don’t know influences how you design your system. Whether you call it ‘curiosity’ or ‘being comfortable with ambiguity’, you need to be able to identify when you are seeking out, or shying away from, information.

Here are some rules of thumb that might show when you are avoiding the complexity, rather than seeking to understand it:

  1. You cannot concisely describe why you’ve designed the system in a certain way.
  2. Your description of your design focuses more on what you don’t want to do, rather than what you do. (We don’t want to touch X,Y,Z because of A,B,C.)
  3. Were you to design from scratch, your design would be significantly different.

Instead of these, you should lean into what you don’t know, and make it known. Don’t seek solutions that avoid the unknown component, because it will come back to bite you.