If you are a kick ass programmer, you're probably working in one of the two modes:
- Working for your manager mode.
- Working for your product mode.
The difference seems trivial at the first glance. You are getting stuff done, right?
In the short run this hardly matters as long as your motivation factors are intrinsic (you're not working for a twenty percent hike, a promotion etc.).
In the long run however, working to get a pat on the back from your bosses often means that you are not giving your best to your project.
You want to show your manager you're working late hours so you work late hours.
You want to show your manager that you take all support requests even if they aren't critical so you rush to close a non critical support ticket in the middle of the night.
And you're constantly worried about what your manager thinks about you.
In working long hours you are often not your productive best, in taking every single support ticket in the middle of the night you are just firefighting and not innovating enough, in worrying about what your manager thinks about you, you aren't saying no or expressing your opinions strongly and candidly enough.
To make things worse, you are probably burning out and very soon you are going to be sick of it.
Impressing your manager will not fuel your career for long term.
A larger purpose or cause, meaning, a quest for perfection, continuous improvement or even the relentless desire to ship something remarkable to your users or the world might be a way better long term fuel for motivation.
Now stop impressing your boss by saying yes to everything, working like a cog and slogging late nights just because you want to show your bosses how hard you worked. It's going to wear you out in the long run.
Put simply stop working for your manager and start working for your product and your organization.
Chances are you will be much more happier, much more innovative, much more creative and.... even much more productive.