Users will always surprise you in how they employ your application.

It’s always surprising to see which features in your software will get the most use. Even more surprising is how users sometimes will work with your software in ways you did not expect. When you designed and wrote the application, you had certain use cases in mind. But once you release the system to the real world, a lot more randomness comes into play. People will do unexpected things.
Talk to your users to learn how your code is actually being used. Often about 20% of the features will get 80% of the use. Some features may never be used. If there are bugs or difficulties with the system, the users may find workarounds that you are not aware of. You need to learn about these so you can develop a more user-friendly solution.
Sometimes it is helpful to analyze the usage logs to gain statistics about the usage of various parts of the application. It is generally more useful, however, to talk to the users directly and get them to relate their experiences first hand.
On the trading floors of wall street financial firms, the traders often retain some of the developers in the same room as them, to keep the feedback loop as short as possible. They do this because millions of dollars in transactions are on the line. If learning from users is that important to them, it should be important to you as well.