Search This Blog


Monday, September 22, 2008

What Motivates You to do your Job Well?

OK, this is an entry trying to win $100 worth of software development books, despite the fact that I don't read programming books. In order to win the prize you have to write an entry and describes what motivates
you to do your job well. Hence this post.

First motivation, money. I know, this doesn't sound like a great inspiration to many, and saying that money is one of the motivation factors might just blow my chances away. As if money is a taboo in programming world. I know there are people who can't be motivated by money. Kudos to them. Me, on the other hand, am living in a real world, with house mortgage to pay, myself to feed and bills to cover. So I can't really exclude money from my consideration.

If I can get a large sum of money for doing a good job, then that will definitely boost my morale. I won't care whether I am using an old workstation, or forced to share rooms or cubicle with other people, or have to put up with an annoying boss, or whatever. The fact that at the end of the day I will walk off with a large pile of money itself is enough for me to overcome all the obstacles, put up with all the hard feelings and hurt egos, tolerate a slow computer and even endure long hours of commute.

Those of you who think that I am too money faced, have you ever being subjected to humiliation not because you are lazy or stupid, but simply because your wallet is not deep enough? Have you ever find yourself not being able to pay the bills at the end of the month? Have you ever look yourself in the mirror, wondering what wrong you have done and so now you are making less than half of your friend makes who is not even half of your intelligence, notwithstanding that you put in twice as many working hours as he does?

If yes, you will definitely agree that money is an important factor ( I am not saying that it's the only factor, so don't misquote me) .

Another thing that motivates me is project interactivity. I want instant feedback on my code. Weird as it sounds, it is true that the faster I can know the correctness of my code, the more motivated I am. This is why I prefer Agile Programming over Waterfall model. Knowing well how a long, protracted development process can kill morale, I prefer iterative programming with constant feedback and constant goal realignment. I prefer to finish a project, or a milestone completely.  Done must mean done!. It is a very painful experience to revisit old codebase in order to fix old bugs; not only you will lost all the momentum on the new projects, but you also have to refamiliarize yourself with the old codebase, and who knows whether the code is written for testability! Being able to work full speed on a new project is important to keep the momentum going and the fire burning.

Working with code that has unit test coverage is also a major motivation. I guess this is the result of being test infected. I consider my day job and personal projects interesting, simply because I write unit tests for my code. Unit tests give me full confidence when I change my code.  It can get me in the zone! And of course, with Typemock, it becomes so easy to mock dependencies and write granular tests and that increases the fun factor as well. A lot of times I would deliberately leave one or two broken tests unsolved before I called it a day. This was done so that I could begin the next day by solving the broken tests and hence get myself up to the full speed in terms of development.

Some people consider a long vacation a major motivation factor, some want private office, or nice chair. For me, these things are nice to have, but they won't motivate me much. Private office, nice chair are good, but I would rather have a nice house and a comfortable chair at home, thank you very much. Vacation is great as well, but you can have all of them when you retire, right?

Developers are usually introvert, so they want politics out of their way. And developers have big egos, they want to be respected. If their points are not properly respected, or if dirty office politics get in their way, then they might get discouraged. I was used to be like that. But somehow, some point in the past I learned that politics are inevitable. And no, there will be times when you won't get respect even though your points are fully valid. I have since then learn to live with them and do my job. I will not allow office politics to affect the quality of my work, neither will I be put down by undue respects or recognition. There are so many injustice in the world, there is no point to grieve over my mistreatment if there is any.

So, to recap, here are the steroids that will boost my morale, ranked in a descending order:
  1. Money
  2. Project interactivity
  3. Test coverage


Casey said...

I think that you are on to something here. I have found personally that I basically have three sliding scales, somewhat connected, that keep me motivated, or at least happy in a job.

These are (in no particular order):
1. The company. This means the paycheck, benefits, vacation, etc.
2. The project. This is what you are working on every day, and, as you point out, how you are working on it.
3. The people. This is your customers, your boss, coworkers, subordinates.

If all three scales are high, you're doing great. If one drops a bit, but not too low, you're probably ok. If two drop, or one is high, one is low, and one in middle, maybe you're content, but your resume is getting updated after hours. As you get further on in your career your standards increase as well. Think of the reasons people quit, which is really just motivation, but in the other direction than what you've written about.

For example: In my last job, the people were great, the work was interesting, but the company was terrible. I was fine, but when the work got boring, it was time to go.

I've had jobs where even if the pay was great, I wouldn't go back simply because life's too short to put yourself through that if you don't need to.

That's my two cents. Thanks for the post.

David said...

You hit the nail on the head.

When I was young, I was all about the respect, the title, the promotion, the responsibility, etc....

I was 24, earning well for a single guy with no house & no family, etc...

My older co-worker & mentor used to say, "I don't care about promotions, just give me a big raise."

He was 34, had 3 kids, a mortgage, and a sick mother.

I'm now 38, married, 3 kids, a house, and I do pretty well, but I would take the money over the prestigious job any day. I can have fun at home or in my down time. My work time needs to be stimulating and fulfilling, but more than anything, it's gotta pay the bills and allow me to have a comfortable life outside of work.

To anyone wondering if I'm old & lazy, I've started & sold 2 companies, and now work as a consultant. I'm not rich but I do OK. But ultimately, I want to enjoy life outside of work, and I want to retire when I still can enjoy life. That means earn now, defer ego & gratification, and try to appreciate what you have.