All my problems with programming stem from when I have to work with shitty specifications, bugfixes from bitchy QA people, and management. Alas, this pays the bills.
When I can do my own thing at my own leisure, against my own standards and unit and behavior tests of my own design, I am happy.