I have been asked this question a number of times during job interviews and in various professional gatherings. Almost everyone I have talked to agrees that offering higher salary is not the best approach. This seems to baffle some non-technical managers but happens to be true.
Offering higher salary does not increase technology worker’s productivity and/or quality. Salary being offered is a function of the demand and supply of any given skill set and experience level in any geographic location and has little to do with engineer’s motivation level.
Offering a milestone based bonus can work in the short term where it will motivate the tech worker to work longer hours to complete the task in the assigned time frame. This can work only a few times as the capacity for anyone to work longer than normal working hours and maintain same quality is limited. If repeated several times this will lead to lower quality output negating the overall productivity increase that we were after.
Here is what works in the long run:
- Assign short assignments to each team member
- Define short term measurable goals
- Define tangible quality metrics and make it available on a shared site which is clearly visible to team members
- Review work and provide feedback every week. This could be peer review instead of a centralized review. In fact peer review works better provided we provide a check list that the reviewer uses in providing feedback.
- Publicly recognize the member scoring high on the metrics periodically
- Offer a small reward ($25 gift card for example) along with recognition to the best team member each month
- Provide a forum for team members to share their knowledge with other team members. This works very well in R&D departments where technical know how defines ones social status within the team.