Nothing I have ever written excuses you from writing excellent software. If you have to add some tiny bit of complexity to the internals of your program in order to make it excellent, you should do that. Adding complexity to the user interface almost never makes your program excellent, though. (That violates "simple to use.")
I'd say that 99.9% of the time, simplicity and following the principles of software design will lead to excellent software, and you should only violate a software design rule when you're certain that's the only way to deliver excellence.