Every architect and developer has to ask themself how the next architect or developer will pick up where he or she leaves off. There is rarely good knowledge transfer, which means the design itself must do the communicating.
Leonardo Da Vinci said, “Simplicity is the ultimate sophistication.” But, we’re not just simple because it’s sophisticated. We’re simple because it promotes understanding. Then again, there’s also more to communicating design decision than simplicity. Consistency, predictability, and simplicity all contribute to better understanding of complex solutions.
That’s why we have posted: “Any programmer can write code computers understand. Good programmers write code humans understand.” It’s because we aren’t writing for ourselves; we’re writing for the customer and their maintenance and enhancement developers.
That’s an axiom that is hard to stick to. But you should.