I found too many sources for this to attribute it to anyone, but I thought it was a brilliant summary of a debate I have many times a month:
A lot of overengineering has been justified in the name of flexibility. But more often than not, excessive layers of abstraction and indirection get in the way. Look at the design of software that really empowers the people who handle it; you will usually see something simple. Simple is not easy.
Ask a teacher. Simple is not easy. Simple is what you get when you distill a lifetime of experience, education and understanding into a teachable phrase.
Depending on what you classifiy as simple. Going to the Bathroom…Simple. Going to the bathroom with no intestine…Dont think that is to simple