- Encourage communication between different roles.
- Trust the developers. I like it when a project manager can talk code but in the end it's the people who are doing the work who should make decisions.
- Protect your team from upper management. Don't let senior managers assign work to your team members for their pet projects.