Make Software in the Estuary


An estuary is where the sea meets the river. Here, there is a mix of fresh water and salt water, sediment from the rivers and marine life from the sea. The effects of both sea and river are seen in many ways. It's a swirl -- there's no upstream or downstream. It's considered to be one of the most nutrient-rich, productive ecosystems on the planet. So really, who wouldn't want to make software in an estuary?

The Traditional Production Flow

Here's a software production flow with disciplines and responsibilities represented:

  1. Company leadership - develops a strategy and business model
  2. Product management - identifies customers and products that could realize the business model
  3. Design - visualizes information, interfaces, and flows for the product
  4. Project management - manages a team in execution of production
  5. Engineering - implements the design for the product
  6. Quality assurance - verifies the correctness of the implementation
  7. Operations - release and maintains the finished product

This is a simplified, constricted view -- a bit on purpose. More or less, the traditional production flow is there. It's very structured. It feels like a factory assembly line. I can imagine a lot of wall-throwing. There are lots silos. There's a lot of specialization. The streams do not cross. It does not feel like an estuary.

No More Strangers, Upstream and Downstream

In the traditional production flow, there are specific orders and directions. Arrows flow between neat boxes. It might feel like a spotless production facility, clean and robotic. It may even be really efficient. But you likely have some uneasiness considering such a creative endeavor as software production being made in such an environment.

I think we should not think of ourselves as being in an upstream or downstream position, sitting somewhere in this traditional flow. Rather, we are a full participant at any and all points. We shouldn't think of our contributions in terms of our titles. We should think of what we can offer of substance and then offer it. In the estuary, things are messy, and we like it because of what we trust will be a better experience in the end.

It might be worth asking yourself if you really believe in the power of collaboration. As in, are you really ready to participate in such a mix of people, ideas, and varied contributions? It might be worth considering:

When previously downstream...

  • Did it ever feel like you were expected to just do what you were told, completing your well-defined job on the assembly line?
  • Did you ever lack an understanding of why you were making what you were being asked to make?

When downstream comes to the estuary...

  • Do you feel comfortable deviating from and adjusting the plan?
  • Are you ready to feel uncomfortable and contribute outside your wheelhouse?
  • Are you ready to have your work critiqued and changed?

When previously upstream...

  • Did you ever feel like you were the one mainly responsible for the thinking on the project?
  • Did you ever feel like those downstream from you weren't being responsive enough to your ideas or instructions?
  • Did you ever feel like you were in command and control mode all the time?

When upstream comes to the estuary...

  • Are you ready for others to contribute to or push back on ideas that you create?
  • Are you ready to relinquish some control on "your ideas"?
  • Are you ready to stay engaged for the entirety of the project and care about the production experience end-to-end?

Good People Required

Collaboration in the estuary isn't easy. Work done here is done at a different level than work done on a pristine factory production floor. It's more engaging, creative, demanding, evolving, and innovative.

Good people are required. Self esteem from all is required. Courage to potentially look stupid is required when you ask fundamental questions, question why, or challenge the status quo. Courage to get something wrong means that you're contributing even if there's someone who might be "better" at a particular activity than you most of the time. Humility is required to allow space for others to influence your work and defer to those who don't share your title or field of expertise. Trust is required when others want to take part in something that you see as very important.

The Medici Effect

The Medici Effect is named for the family living in Italy in the 14th century who had a great effect on the area and history. They invited many experts from diverse disciplines and had the effect of making Florence, Italy a center of advancement and innovation, catapulting forward the Italian Renaissance. The same effect of new and more ideas can be seen by us as we bring many disciplines together in a common cause. What can we do to encourage our cross-functional teams really cross functions?

People have different tastes and exposures. Associative thinking is making connections between different ideas. Naturally, people of different backgrounds and trainings will be more able to make more and varied associations. New, fun, and unusual combinations will result.

Steve Jobs often expressed that his passions lived at the intersection of the arts and technology. That sounds like a cool estuary. Now think of the intersection of the passions, knowledge, and abilities of entire teams really working together.

So swim in the estuary. It's a great way to make software. Don't think of your roles in terms of upstream and downstream disciplines. You can have a rich, productive team and a better product by truly working together, not just being on the same team in name, location, or project. Pay the price of the messiness of collaboration. It's challenging, of course. But who doesn't want to do great work with people of courage, humility, and trust?