I am one of those people who wants their code to be poetry. Ideas and logic expressed in the simplest most elegant terms. But when I left academia for industry and started working on a bigger project requiring coordination between many dozens of people, I realized that this approach is not conducive to making money. My idealism collided with the complexity of the real world. Software is a mess, but a beautiful mess. I now realize this is not necessarily a reflection of the skill of those who write it, rather the complexity inherent in the users domain.