I just sat through Chet Richard's keynote talk at the Lean Software and Systems conference here in Long Beach. He asked us to build our own list of fundamental practices that we should become great at. What practices have you found that make your team always successful? This was a true gift of Chet's during his talk. I wanted to share that with this group, but I also want to hear this group's answers. I am trying to build my list and I am only at iteration 1. Please answer the question to help me shape iteration 2 of my list with a broad scan.
Good and frequent communication in general and specifically active listening. Communication is one of key root causes for broad range of problems, which could be avoided if were better at it. This is definitely number one for me. Since many project managers tend to rely deeply on formal communication I stress active listening (which assumes talking) as key area here.
Continuous improvement which is tightly connected with experimenting. I never assume that what we have is an optimal solution. I never assume I know the right solution from the top of my head either. So anytime we have a possibly better idea we just try it and see if it works. Actually I'm not even sure which part here is more important: the one where you change things and evaluate result of changes or the one where you constantly look for occasions to adjust the way you work.
Visualization. Actually it doesn't really matter what exactly we do visualize. It works miracles in terms of updating status of a project, discussing architecture, organizing project portfolio, etc. Think how many times it was just easier to describe things with an image, even a crappy one, than just with words. The very first thing I need in a new office is a couple of whiteboards.
Building on Pawel's answer, be inclusive.
Deploying software may involve QA, sys admins, network admins, DBAs, and front-line support staff - get them involved early.
Often the perceived resistance at deployment time from these teams is because they need to do their due diligence. They also posses a wealth of knowledge about the larger software ecosystem, and user behaviour; this should be incorporated as part of the continuous improvement - many developers are shielded from the quirks of end-user behaviour, or unusual aspects of the larger software ecosystem.
Honest and open communication. No politics, dilly dallying or beating around the bush.
Leaders who trust, listen and stay out of the way of great technical work. Managers play support role!
Empowerment at lowest level. Team organizes and gets stuff done themselves.
Not manager but team delivers. A realization by each individual in the team that he is directly influencing to the project's delivery & success.
Generous reward program which spots and rewards great work, consistently.