Pat Maddox says you have to work for a startup. He's wrong.
Actually, he's right. You do have to work for a startup, at least once. But he's also wrong. You have to do other things as well. One of those things is working for a consulting firm, or going into business as a consultant yourself, or both.
You will learn how vastly different beautiful code is from useful software.
You will learn how much more useful listening to your users is than visualizing something cool.
You will discover the compelling business reasons for agile software development, and you will do it, at least once, by having to dig yourself out of a pit you created by failing to understand what agile really meant.
You will come to see business processes as programs run not within computers but by groups of people.
You will have time off on the weekends and you'll be able to have a life.