Creating software that is powerful AND easy to use is the Holy Grail for any developer. But, sometimes achieving that perfection is tougher than it sounds. Why? Users want software that does a lot of things, giving them broad, powerful feature sets that are also simple and easy to use.
Developers must be careful not to overwhelm the user with too many options at the main UI, but provide just-right features right at your fingertips, plus the ability to drill down into the level of detail that is appropriate and desired for the end-user. And, by all means, the best software should be fun to use—so much so that the UI itself almost disappears into a seamless user experience.
In some cases, a difficult UI can even be a limiting factor in the software itself. The lack of flexibility to enable innovation and feature expansion can bring a software solution to its knees and hinder further development. When the UI is maxed out, developers have few options but to make it more complex to achieve the necessary feature expansion, which runs the risk of creating an overwhelming user experience.