In software, common tasks should be easy. Everything else should be harder.
One key to good software architecture is to design the internals of the system to make the stupid mistakes hard to do. Stupid mistakes are usually made during those tasks you only do every once in awhile. Those are the ones that should be buried from easy access, require very specific configuration, and extra confirmation to complete.
Copyright © 2016 Sterling Hanenkamp.