When I think about teams, I think about them with a strange mixture of metaphors.
First I see a thing that is in some respects like one of our classic pictures of an atom. There’s some particles in the middle, and some others that seem somewhat clearly "outside" like the electrons in their clouds. But that metaphor slips a little. In atoms, the electrons & protons & neutrons are separate and separated. In teams, it’s more like a swarm.
So slip that to a flock, instead, or a school of fish. The center is moving, and fish are moving in and out of the center, changing places. The center is a kind of strange attractor, moving through space with its attendant swarm around it, all moving to stay near or far. Moving through space? Well. No. Not space, because space is fairly empty. The space teams move in is fairly full.
Having watched a lot of teams, i’ve watched a lot of flows those teams swim in and through. Now, I can’t tell you I know everything required for software development excellence. In fact, i’d go so far as to say no one can.
But I do know three things required. I see them as flows or currents in the soup through which the team moves. They are nutrient flows. If any one of them is missing, the team dies. If any are attenuated, the team suffers. And every team i’ve seen that was developing software excellently used those three flows at nearly optimal efficiency.
The first flow I call "valued results". Valued results is the chief steering mechanism of the flock. If the strange attractor at its center is moving, it’s moving to the flow of valued results. Trivially, valued results are how the team knows it’s winning, how it knows it’s going the "right" direction.
A minor but not remotely ignorable point. It’s not valuable results. It’s valued. That is, this is a true flow, into and around the team, it’s the exchange of output for valuation, not a distant end-result. Excellent teams consistently find ways to keep these exchanges going, and there are myriad approaches.
The second flow or current through which the team swims, on which it feeds, is called "geek joy". I use that word geek a lot. What I mean by it is someone who is highly technical and highly creative. I don’t distinguish by title or role. So when I say geek joy, i’m talking about the flow that provides the team’s drive. In the geek trades, we have an incalculable advantage over most others. Simply put: geeks love this shit.
I know, and I know you know, many geeks who do it all day long, then come home and do it all evening long on their own projects. Your designers, your programmers, your analysts, and others i’m not even thinking of right now, all of these are such geeks.
One never has to motivate geeks. One only has to avoid de-motivating them.
The flow of geek joy in excellent teams is what keeps them constantly leaping ahead, loping across the plains, to mix all metaphors further. I’ve never seen an excellent software development team that wasn’t suffused with geek joy, the sheer wild exuberance of doing THAT THING.
The third flow is the flow called "courageous curiosity". This flow provides the team with a feeling for where it is at right now. It is the asking and answering of questions. It includes, especially, scary questions, which have hard answers. Remember that the strange attractor at the center is itself always in motion. Nothing sits still.
Courageous curiosity is our only way to know where that attractor is going, what flows it’s consuming, & where individuals stand, relative.
So those are three flows I know are required for excellence in software development. Valued results, geek joy, and courageous curiosity.
I’ve seen a lot of teams. I never saw an excellent one that wasn’t drinking deeply from all three flows. I’ve never seen a failing team that wasn’t failing to take advantage of one, two, or all of them.
As I said at the outset, i’m not sure those three flows are "sufficient". But I am sure they are "necessary". If your team is failing, or you think it might be, look to the three nutrient flows that keep it healthy.
Is one weak? Is one altogether absent? Start there.