Some people or companies think you can buy loyalty and productivity. As Daniel Pink says in "Drive: The Surprising Truth About What Motivates Us" this is motivation 2.0 at work. The carrot and stick approach to management that derives from the factory mentally of the previous century. It works, to a degree, for repetitive work where the problem to be solved is linear and repeatable.
But much of today's work is knowledge and creative work. The outcome is not a linear, repeating process but rather requires a unique solution each time. Software development is generally like this. Sure each small problem may not require a complex solution, but when you assemble all the little solutions together, there are a zillion ways to make a complex software application work. This requires motivation 3.0.
However, focusing on extrinsic rewards instead of intrinsic rewards actually causes under performance in many of today's jobs. For example, pay for performance usually fails because money focuses people on the short-term at the expense of the long-term. People need money to live and it should be in an amount that is fair; so that money is no longer a prime consideration.
After that, motivation 3.0 addresses three human needs:
- Autonomy – Self-directed work (as much as is feasible), set the end goal and let the employee determine the path to the solution. This is less work for management so is a win-win.
- Mastery – Achieving flow in work and excellence in the skills required to practice your profession.
- Purpose – The highest level motivator. Why you are doing what you do.
When setting up your business, if you have a compelling mission and a strong vision, it will address the purpose of what you are doing. If your purpose resonates with your employees they will achieve meaning in their work.
Autonomy and mastery are handled partially by your company culture (the core values) and systems/processes ("the way things are done here"). Make sure you set up your business to address this as much as possible. If you want employees to care about your customers you need to be consistent and care about your employees.
Actually, consistency with your mission, vision and culture are paramount to building a great company.
The final piece is understanding the personal goals of each employee (or at least key employee); especially the career goals. I am not saying you need to develop someone to become a musician if their job is software development, you are running a business after all, but the closer your real goals are the better.
However, the trick is to align (as much as is possible) people's goals with the achievement of company goals. Look at where the company needs to go, then look at where your people want to go, then look at the people you have and figure out what skills they need to achieve mastery and success for the new role through training and experience. That is your people development plan.
My opinion, promote from within as much as possible. This gives people a career path and it preserves your corporate culture. Hire their replacements from outside. The only exception is for totally new roles or roles that can't be trained for in the time-frame you need. When you hire, look for fit in mission, vision and culture. Hire slowly and fire bad matches quickly.
As well, make paths for people to continue to grow within their specialties. A great developer should not have to become a manager (unless they really want to) to keep growing careerwise. I've personally seen some really unhappy (bad) managers who were once great technicians; total waste.
Ultimately, it all starts at the top… aligning people and strategy.