#8 Teams, Not Resources

For creating good software, we need to build teams, not just staff resources

Teams build good software. Resources don’t.

“Resources” is actually an anti-pattern. In software, anti-patterns are common solutions that yield undesirable results. Cost overruns and timeline delays are often visible. Low value software is one undesirable result that often gets ignored.

“Resources” anti-pattern abstracts unique individuals into a soulless category. More perverse is the delusion it creates, that human beings can be modeled as quantities which can be estimated, budgeted and allocated.

This delusion is the legacy of the industrial age. Back then, after the management secured raw materials, equipment and machines - people were the “resource” to be flexed to scale production of template goods. The management problem was to align financial incentives of staff to production goals.

“Resources” doesn’t belong in the digital age. Because we aren’t scaling production anymore. 

We are scaling creation of new value because software once produced can be copied infinitely. Whether someone will use a piece of software is limited by its value rather than the amount of resources building it.

“Teams” is the pattern antidote to the “Resources” anti-pattern

In the digital age, the raw material is ideas. The recipe of converting those ideas into business value is often unknown in advance. Open source software, cloud services and rich vendor ecosystems have made it possible to reuse, rent or buy the most common aspects of software development.

The value comes from building differentiation. You have to equip and empower teams to iterate over a period of time to build that “differentiation”1.

While a team is made up of resources, resources don’t guarantee a team. A team forms from shared creative motivation of people involved. A team coalesces around people  who are empowered to succeed. It coalesces around people who have latitude to fail. A team solidifies from mutual trust.

I have been in and around software development for 18 years. From my experience good teams always have an extra layer of emergent creativity that an equivalent collection of resources doesn’t have. 

Small teams – creatively motivated, empowered and having trust – can create outsized value. WhatsApp had 50 odd employees when bought by Facebook for $19B. I have seen similar sized teams spin wheels on projects of few million.

It may be a cliché, but a team actually is a whole more than sum of resources.

Managing a team means managing the framework of creative motivation of the team. A good team has a deep understanding of the need the software will meet. The team members have a belief that they can create the solution for the need. They perceive the opportunity to create software as something that will help them grow in their careers. They share the anticipation of the better future they are creating with their product.

Gene Bond describes need, belief, opportunity, anticipation as “creative attractors” which create the perception of “meaningful work”2. Meaningful work is the real source of creative motivation. 

Only teams have this creative motivation. A collection of temporary resources don’t.

We need more “Teams”, Not “Resources”.


Afterthought: “I think hierarchies kill innovation for the most part. And I think matrixes are just lethal in most cases. There are exceptions, but in most cases, you need original thinking and speed of execution, and it’s really hard to get that in anything other than in small team format, in my view.” - Marc Andreessen3

1

Jeff Lawson, Ask your Developer

2

https://iism.org/article/why-are-ceos-failing-software-engineers-56

3

As discussed with Elad Gil in an interview for Elad’s book, High Growth Handbook