It does not matter how good an application is if the user experience (UX) is poor. In the past, user interfaces all suffered from the same problem: they were too complicated. The main reason for this is that interfaces were often designed around the business function and not around the person. The result was a cluttered screen that tried to provide many features to many different job roles.
For example, consider a sales order screen: how many job roles does this screen support? You might assume one, the sales order entry clerk. However, the reality is that the same screen is used by a large number of people who need to either check information or make adjustments to an existing order. Some examples are as follows:
A quality assurance worker in the delivery department needs to release a blocked item in the order.
A finance person needs to adjust tax assignments.
A salesperson needs to adjust discounts.
A marketing employee needs to apply promotion codes.
A project manager needs to check that costs have been assigned to the correct project phases.
Each of these people could find themselves using the same screen, but only a very small part of the screen. The screen ensures that they all work hard to navigate to the specific area they need, ignoring the options they do not need. Lots of clicks are required for very little high-value interaction.