Features represent the essential complexity of software design. It's the complexity that can't be avoided. Everything else — the languages, tools, patterns, etc — are a form of accidental complexity. Therefore, to write the simplest possible code (regardless of which side of the stack we're on), we…