I’ve been supporting software development teams for nearly 10 years as an engineering manager now and have worked in teams for twenty. Here are ten observations I've made along the way that will help you in building and leading teams.
Caveat: nothing always works
Also, there are no silver bullets (but there are a few universal truths!). There are oh so many forces at play in organizations, teams, and individuals! Many of these are resistant to change. It's best to experiment, but be ready to fail a lot.
1) Check in with your team frequently on the direction
When leading a team you'll only occasionally know where you are actually going. Maybe you only know the general direction. This is fine, but remember to be honest about this and frequently check with your team that this is where they want to go. This is a very basic and essential coaching practice.
2) It's relationships all the way down
Ultimately, the quality of relationships in your team plays the biggest role in how the team works. Invest a lot in nurturing a tightly knit team. It's good for the team members and good for the business, too. Yet, the business usually doesn't seem to understand this (this is where you come in!).
3) Trust builds in a spiral shape
It starts with little promises and deals made and kept, then a little bigger, then a little bigger.
4) Honesty means believing everything you say, not saying everything you believe.
Read the room, get the context, and always, always be respectful and supportive. Don't speak only to be heard. Shoot straight, sure, but ask yourself whether your truth at hand is helping in that situation or not.
5) Meetings often fail
Use meetings mostly to formalize and confirm. Going from zero to an agreement using a meeting fails way more often than succeeds. You can build the ground for consensus in small groups, in hallways, backchannel chats, and informal conversation far more effectively than in a meeting.
6) Don't try to get your team to do what you want them to do
Instead, get them to do what they already want to do! They nearly always want to do things that make their lives better (only the 'how' is missing). Help with that. Basic coaching principle, again.
7) Get your team to experiment
Lived experience nearly always beats verbal argument, reserve most of your effort for getting folks to experiment. Set up the most favorable conditions. Accept the results. I have a dedicated post about this. Oblique approaches are often far more successful than direct ones.
8) You shall fail
Accept the ultimate reality: you'll fail, plenty. Don't be so hard on your team, sure, but also don't be so hard on yourself! If this game was easy, you wouldn't really be necessary, would you?
9) Prioritize soothing the easiest nearest pain
Leave the hardest furthest nightmare for later, when it will have become easier and closer. What small fixable thing is bothering your team now? Work on that. You'll build trust and you'll enable the habit of change.
10) Have fun
Have fun yourself and spark joy in the team! Share fun! Be of good cheer. Don't take yourself so goddamned seriously - none of this is actually all that deathly important.