Keep it Simple, Over Time
Perhaps you already heard of the KISS principle. It’s an acronym for “keep it simple, stupid”. It states that most systems work best if kept simple. It’s a guiding principle in software engineering to favor simple solutions over complex ones.
Simplicity as a design goal is one aspect of the KISS principle. I think another aspect is even more important, and that’s the temporal one:
Keep it simple, over time.
Coming up with a clean and lean design for a new project is already a challenge. Keeping things simple over time is a much bigger challenge due to the different forces at play at different points in time. New features, bug fixes, workarounds, engineering and business tradeoffs. They all make it extremely hard to maintain simplicity.
Do I have an easy solution to this challenge? Sorry, not this time. It’s a question that makes me think. And I invite you to think about it as well.
How do you keep things simple, over time?