in reply to Motivations

I've always found that the "enforced fun" activities are really meant to be "team building" activities. The "fun" is a disguised attempt improving productivity by opening communications between co-workers. The reality is that it works. Even if the activity isn't fun, the co-workers will bond in their hatred of it.

As for motivations: I always prefered to be appreciated. Money will only motivate a person so much. (The movie "Office Space" has a great line about monetary motivation: "A person will only work hard enough to not get fired") Me, the best thing is when I finish a project and my boss tells me that its the best thing he's seen yet. I'm motivated by the desire to do a good job. Yeah, I want to get paid for my efforts, but I also want my efforts to warrant the pay. (And no, I'm not rich. I'm probably underpaid too. But I make enough to cover the rent so I don't complain.)

Unfortunatly you can't always get that great feeling of having finished a project as often as would be nice, and some projects never finish. That can be damaging to an engineer's morale and lead to a downward spiral of productivity. There is no easy fix for that, but one good way to improve morale is to take your employees out to lunch. It doesn't matter where, but preferably somewhere they'll like (ask them if you don't know). They'll apreciate the opportunity to talk frankly. Make it a long lunch. Since you are they're boss they won't stress about getting back to the office. They'll relax and when they do get back they'll get more done.

Don't try to improve moral in monetary ways... you should already be paying your employees a fair salary. If things get tough, ban overtime. 50 hrs max! Preferably 40! Then start sending people home.

There is a good book on the topic called "Debugging the Development Process". I don't remember who its by (same author as "Code Complete") but its from MSpress and it makes some excellent points.