When I was younger, I used to think applications used too much disk space. I used to think that they were filled with all sorts of useless features. I might have got upset when I saw a bug that had been sitting in a bug database for two years was still broken. I used to hate Microsoft when they borrowed a feature from a competing product. I might have spent time advocating open standards and criticizing a company that came up with a proprietary solution. I used to think like a naive, young, end-user.
Then I got a job doing software development. I found out how software development is really done. After a while, I understood why I was so wrong about the above.
I can't really explain it though. To all those that still think those things I listed above: Once you get a job working in software development and have been working there for a few years, think again. You may understand what I mean.