When you are working with people, one thing you must expect and be sure about: “You are working in a complex system, not in a complicated one” (See a previous post to know the difference).
When you work in a complex system, there are some unpredicted behaviors, as everybody who works with people already know. So, you can’t control the people, you can try a lot of strategies to do it, like: persuasion, influence, fear, bonus, promotions, etc. Some of these strategies are good ones, but others are malicious and just show how bad a manager is as a manager and as a person.
But whatever your strategy is (hope you choose the good ones for everybody), more or later you will have “surprises” because you thought you could control a complex system.
So, how can I manage a team if it’s not manageable by nature and have some unpredicted behavior?
You can minimize the unpredictability managing the system, creating the rules, not rules for the people but for the system. If you are a project manager, or a team leader, you must give freedom to the team members, but show them the constraints that you think will influence the behavior of the system, or in this case, the team performance, motivation, etc. The team, as a complex system with people, will experience a wonderful thing, a complex system growing and self-organizing with itself. I have already experienced this in some projects where the project manager was out or gave this managing opportunity.
This seems to be a simplistic view of software teams’ management, but if you stop and think for a while I am sure you reach this conclusion, or similar, because when you are managing people you are managing the unpredictability which seems to me a paradox, and it is! So, this is why you must let the system go, inside your parameters.
Want an example of this? Traffic.
No one is controlling the people inside the car, and sometimes they really have an unpredictable behavior, but, for the good of everybody in this system (with some flaws but fortunately just a few), the system self organizes. There are anyone controlling the drivers? No! There are unpredictable behaviors? Yes, they are people! The system works? Yes, I use it all the time! This works for software developing teams to, really! Do you have the courage to try it out?