This was one of my favorite interviews. Patrick does a wonderful job of creating “just enough” framing, through his questions and comments, to allow our discussion about systems thinking in software engineering to flow. When we spoke, I was at the end of a three-month writing sabbatical. So I had been thinking deeply about this subject but talking to no one. Good thing Patrick was my partner, it was satisfying to explore these themes without getting lost in the weeds.
A favorite clip includes:
Diana: “It used to be, years ago in my work – we’d build a house, a digital space. A website. Everybody did, The New York Times, The Economist. Anywhere that you went, Amazon, it was going over to someone else’s house and having an experience. Everything was really designed for that.
But now people want information in the context they are in. That’s not just [defined by] what device they’re on, but also they’re on different platforms, Facebook or Twitter, and interacting with [the information]. Also, depending on the context they’re in, they want a different priority of information.
Restaurants is a great example. If I’m sitting here at my desk looking for information about a restaurant in New York City, I usually want to see the menu and how to make a reservation. But when I look at the same information when I’m on the street in Manhattan, I want directions. Where are you? Because usually I’m on my way.
Now, our way of communicating is a giant graph. And [the fact] that we want to mix and match information depending on the context that we’re in and we want to prioritize differently, presents this truly delightful challenge to systems design. Really just infinitely interesting.”
Patrick: “Exactly, I love the restaurant example because … before you laid out that systems thinking can have linear thinking within it, right? Because it’s more of an overarching, I mean it’s a system anyway. But with the restaurant example, it’s one way when you’re at home, very linear, the information you want to have and what you’re looking for. And then on the street, it’s completely different. Probably in a different city, you’re going to look at reviews. You have all of these use cases now and somehow when we’re building new software we need to accommodate for those or even think about what we have and then accommodate for that. Which makes it infinitely more complex than if we just had a few use cases, right? But because we even have use cases which we can’t even think of, I think we just need to incrementally keep going and discover.
If you really want to build complex, interesting, matterful systems — it’s about the synergy of bringing people together who can blend their strengths and compensate well for their challenges. So that you have … a strong execution and also the willingness to always be learning.