There is a great difference between a team where people want to work and one where they're looking forward to 5 PM and to go home. I suppose we don't need any Lean sensei to tell us this.
However, what is not obvious is how to let the team members motivation flourish and how to keep it high for years in a sustainable way.
"Hire good people, and leave them alone."
This is one of 3M formulas: of its many products, the most important formula is not a chemical one.
The sense of this quote is to encourage epxerimentation, and in its particular case scientific research: 3M is a company based on innovation as much as we are when we want to conquer a new market with software. Products start out as the idea of a single person, which recruits some of his colleagues to develop them.
This basic idea - let people come up with their own project and allocate some of their time to them - evolved into Google's famous 20% time, where GMail and Google News were born.
It's not that on Friday everyone does what he wants, but 20% time and 3M's spirit are the expression of a creative culture, where a team member is free to follow his own ideas. The impact on intrinsic motivation is very good - especially given that this culture is rare: as software developers, we often develop internal tools for our colleagues or even open source ones, but we are not usually involved in the creation of a new product.
Extrinsic and intrinsic motivation
Extrinsic motivation is the force that drives work in many enterprises, and it mostly consists of carrot and stick rewards: do your job well and we'll give you money and an "Employee of the month" plaque. Work sloppily and you'll be fired.
However, intrinsic motivation is much more powerful: it is generated by craftmanship pride and a sense of value in what we do. For example, seeing your first feature being deployed on a live project gives you new energy to work on it; compiling timesheets and documentation often doesn't, because we are not aware of the value they produce, nor we can apply our intellect to a difficult problem while working on them. It may also be the case that the task at hand really have no value as it is vestigial of some old bureaucracy.
So how do you create intrinsic motivation? Not by promising more money or by firing people. The Poppendiecks have a list:
- communicate the purpose and vision of a product to the developers working on it. It is something to prepare a series of database queries for some department; it is another thing to write the same queries to help them finding frauds in the system and save hundreds of dollars.
- Make sure the purpose is achievable from the team: is you just want them to increase revenue by 10% with a bunch of predefined features, they're not going to be pleased.
- Let the team meet the customer. Seeing an end user working with your application for 10 minutes gives you a disproportionate feedback on usability issues and on whether that new feature would work or is a waste of time.
- Let the team estimate and commit to a deadline. If you decide the deadline, they decide the scope, or viceversa.
- Management should act as a buffer between the team and other departments or the customer. I've actually see some people hired just do to this job: shielding the developers from interruptions and answering their requests multiplies productivity.
The Poppendiecks cite research by Thomas and Maslow on what are the needs of a team for working well (you certainly know Maslow's hierarchy of needs).
- Belonging: like in sports teams, you win or lose as a single group. When you start shifting blame around, you're not a team member.
- Safety: even if you screw up, we can fix the problem you have created. In an environment where no defects are tolerated, no one will have the courage to make decisions.
- Competence: one of the factors the kills motivation is not knowing how to go forwards. External expertise or coaching can help a team in case of a need, but the developers' culture is a long-term investment.
- Progress: accomplishments create new energy. Even small victories, like covering a whole legacy component with automated tests or completing all the stories for this week, can be celebrated.
The Poppendiecks have some words reserved for long hours, but that's a long story for another day. Just don't let highly motivated people work for too long (12 hour a day is not a sustainable pace) or create the pressure for others to work longer hours too. Recently I have seen a colleague from an external branch of a company working 20 hours intervailed by a night of sleep; either he felt the pressure to put in long hours, or he was too much involved with the tasks at hand to be able to stop.
But you can only pressure people (consciously or inconsciously) into working longer hours, not in producing more: that has to come from intrinsic motivation.