Trusting a Software Ecosystem

Digital products aren’t monolithic. They depend on systems and infrastructure that aren’t controlled by the team responsible for the product. (Thinking about these things as “products” over-simplifies them. But I digress…) Consider a mobile app that relies on knowing its user’s location. That functionality won’t likely be developed internally by the app’s creators. Instead, they’ll use frameworks provided by mobile operating systems such as Android and iOS.

These operating systems in turn also leverage complex systems that their creators — Google and Apple, respectively — didn’t build themselves. For example, these companies didn’t create (or operate) the Global Positioning System on which location services depend; the U.S. government did. OS providers trust the providers of these systems; app developers trust the OS providers; users trust app developers. It’s a chain of trust.

When you use a ride-sharing app such as Lyft or Uber, you’re trusting this chain. Most people aren’t aware of it being a chain at all; they experience the app as a singular thing. If something goes wrong, they’ll reach out to the party responsible for the means through which they interact with this complex ecosystem: the developers of the app.

If you’re in such a team, you must understand how your product functions as a system and develop a good sense for its interdependencies. It behooves you to understand the business models that underlie each link in the chain. What drives the providers of these services? What could they do with the information you’re providing them? Are their interests aligned with yours? Are they aligned with those of your app’s users?