This is part of a series of posts on Product Thinking:
A system is an entity with interrelated and interdependent parts; it is defined by its boundaries and it is more than the sum of its parts (subsystem). Changing one part of the system affects other parts and the whole system.
Systems thinking means a few things to me and I want to present multiple types of systems that we work with as designers while highlighting their similar properties.
At Quora, the most common conversation regarding what I would call systems thinking is dealing with product mechanics. Product mechanics are rules by which a product operates. These are the fundamental rules that shape the product, unlock different behavioral dynamics from users, and ultimately determine how a user feels about using the product.
To explain this, I’ll use a video game example as I think the mechanics and resulting dynamics are easier to understand. Imagine a multiplayer video game based on the playground game Tag. It’s programmed in such a way that you move around in roughly the same way as you can imagine a human would in a physical space. You can run, jump, duck, etc as you can imagine yourself doing in real life. This is then effectively a simulation of real life Tag, so any strategies that would work in real life should apply in this game and so would any resulting dynamics. Now imagine that we change some mechanics such that players can run 5 times as fast as humans could in real life and jump 10 times higher. This completely changes how everyone would play the game. It becomes faster-paced, a new dimension of vertical space is introduced, and so it ultimately becomes harder to tag someone. This makes the game lower scoring, new strategies develop, etc. You can go through this exercise and tweak all kinds of things but most importantly you should understand the relationship between changing the mechanics of the system and the resulting dynamics of how people participate in the system. In games you can expect strategies and counter strategies to develop and in social systems you can expect norms and counter norms.
Social software tends to have a huge depth of subtle dynamics that can be difficult to detect, control, or catalyze. Even so I think everyone can understand that for example due to the mechanics that comprise Snapchat, users demonstrate different behavior there than in another photo sharing product. Two example Snapchat mechanics I’ll use are its properties of ephemerality and user controlled deterministic distribution. When you have content that self destructs, and that is clear to the user, they will start to use it in a different way than if they perceived that the content they create will be evergreen. Additionally when you ask users to decide who exactly will see that content every time they create it, they learn to trust that the system will behave deterministically. As opposed to a product like Facebook where your network is large (and likely to be increasing in size) and the distribution of your content is non-deterministic due to how a machine learning powered distribution system (Feed) typically works. You generally just don’t know who will see your content, when they will see it, who will react to it, who will redistribute it. You could take a photo that you think is funny to your college friends but then your mom Likes it. This then distributes it to whichever friends you and your mom have in common (likely more family), causing you to at the very least get an experience and a bunch of notifications that you didn’t anticipate.
An example of a mechanic that leads to subtle dynamics that are hard to detect and measure is Twitter’s character limit. This decision means that people use Twitter in a particular way which ultimately defines how everyone feels about the product. To put another way, if Twitter did not have a character limit, you can imagine that people would use it differently. To give another extremely specific example, the way Twitter is used changes depending on the information density per character of the language. So for example with a language like Japanese, you can convey more information with 140 characters than you can with English. This is one of the factors leading to Japanese usage of Twitter being very different than Twitter in English. I speculate that this divergence was detected by whoever makes decisions at Twitter and led to them increasing the character limit everywhere. The most important thing is understanding and believing that changes like this lead to different dynamics. Whether those dynamics are better, worse, or even predictable is a whole separate discussion! On Quora, I worked on deciding what the maximum length of our questions should be. We want people to use questions in a very specific way and don’t want that to change across different languages. So we have a calculation that considers the information density per character in order to set different question length maximums for different categories of languages. Here’s an interesting comparison of different languages: http://www.media-lingo.com/gb/fa...
An example of a more complex system that has many layers of resulting dynamics would be all the rules that make a notification system work. What notifications exist, who gets them, how often do they get them, how the user controls them, how different users experience the same notification, and more. Being good at this means being able to make elegant systems that solve a problem for all permutations of inputs; meaning when you make a decision about a product it has to work for all your users and it has to enable the dynamics that you think are right. I wrote about this particular challenge at length: https://design.quora.com/Notific...+
We’ve written about mechanics systems design if you want to read more:
Interaction and UI Systems
I think designers typically see a product as a series of interaction flows, UI and experiences. As these things become “solved” within the context of that product, it becomes important to define standards and to establish consistency. This is colloquially referred to as a “design system”. The benefit of being able to look at a product through this lens is that you see how many screens, interactions, and UI components add up to an overall experience. This process tends to lead to more consistency, cohesiveness, and streamlining of interactions and design patterns. Those things tend to lead to increased usability, increased development velocity, and simply a better looking product! That said, a design system is never a silver bullet. You still need to be able to express your brand and develop interactions that enable your product to be most successful.
The Collective User Experience
Another kind of systems thinking is the ability to reason about and affect the greater user experience — or the average user experience at scale. Although this kind of systems thinking can on the surface appear to be not very user centric (and potentially detrimental to the success of the product) because it intentionally ignores the perspective of any individual’s user experience, it is ultimately one of the highest leverage ways to impact the average user’s experience at scale. By improving the system you are ultimately trying to improve as many people’s experiences as possible through 1st → nth order effects. Often in a social product it will make sense to make some user’s experience poor in order to make the average user experience better. An example that will seem obvious is if you have someone harassing your other users you might take away their ability to communicate. This makes that user’s experience really bad but helps prevent harassment, making everyone else’s experience better. A more nuanced case though would be one where you are forcing users to do something and your motivations are unclear to them so they feel that the change imposed upon them is arbitrary and meaningless but in fact you expect to see subtle downstream effects that will ultimately improve everyone’s experience.
A real world but heavily simplified analogy would be taxes. Nobody likes getting taxed and when taxes go up it feels meaningless and devoid of perceptible impact. The reality (bear with me) though is that somewhere that money is helping something in the system that is improving the average experience of living on some time scale. It could be paying for public schooling which is making everyone more educated which is helping the economy which means you and your kids and their kids will have better lives. It is challenging for any individual participant in the system to feel satisfied but as system designers we need to be able to see, balance, and catalyze the whole thing despite being aware of any costs on an individual.
A product analogy would be YouTube moving their identity system to use Google accounts and ultimately your real name. This was, I think, an attempt to improve the YouTube comment quality problem by reducing the % of actors who are anonymous. For a user, switching your account to a new system and losing your username is a tedious and frustrating experience. But ultimately it’s an attempt to impact the ecosystem in a positive way which should improve the average user experience. These kinds of decisions are always tough to make because you are reasoning about downstream effects and potential changes in user behavior. Commonly, the best process for doing this kind of work is by using a lot of a/b testing and metrics that proxy the behavior you are looking for. It’s hard to rely on user testing because you are often looking for changes in behavior that users are not cognizant of or if they are it that requires an adjustment to a change in context over a longer period of time.