Related theory I've had rattling around my brain recently: a programmer's career velocity is strictly correlated with the percentage of code that they deal with every day that is code of their own making, vs. someone else's. I always get so motivated and productive when I'm building off my own stuff, and pretty grumpy and slow when not.