Before I started programming I majored in architecture. I have a strong visual imagination and as a teen buildings just “popped” into my head without me putting them there. As a career, it seemed like a natural fit but unfortunately I never really learned how to draw well enough so I moved on to engineering and computer science. Before I made that decision, I spent a lot of time in the library studying design. The most interesting books were ones that described a view of architecture that I found fascinating - the authors believed that the design of spaces could change people. A high ceiling for one type of building might affect people in a different way than a low ceiling. There was also material about pathways, meeting spaces, site orientation and many other things. It was all infused with this sense that the spaces we live in affect us. If we design better spaces we can be better.
I suppose it isn’t really surprising that Conway’s Law resonated with me early. Mel Conway’s observation that designed systems tend to mirror the organization that produces them seemed to come from the same worldview. In capsule form, Conway’s Law implies that if you have, say, three teams, chances are you will end up with three subsystems whether you intend to or not. Sometimes when I explain Conway's Law to people who have never heard of it, they laugh immediately. It’s that sort of nervous laugh that we can’t suppress when we get an insight. And, the insight in Conway’s Law is deep. When the cost of communication goes up we, often unconsciously, organize our work to minimize it. If it’s easier for me to share a vision and communicate within my local team, we end up producing something cohesive that is a bit detached from other teams’ work.
As much as we talk about Conway’s Law I think it’s really just the first step toward a more broadly systems oriented way of seeing software. The way we organize ourselves impacts the software that we produce. In much the same way, the design of software can impact how we organize ourselves and how we behave.
A while ago I realized that this seems to play out in social media space. Let’s take Facebook as an example. When you join Facebook you become part of a vast graph of online relationships - family members, work colleagues, friends and acquaintances. Like most social media services, Facebook encourages you to create more connections. Sometimes you’re surprised when different areas of your life collide. Google+, on the other hand, allows you to create circles to separate different friend groups. I haven’t used Google+ much but my sense is that the experience is different. You get less of the random surprise of a distant cousin chiming in on a discussion about something local, and perhaps a bit personal.
Twitter has a very different feel than Facebook or Google+. It’s more chaotic, and I think the reason why is because there’s a lot more lack of control. When you follow someone you start to see their conversations with other people, and those conversations are interspersed with the conversations of everyone else you follow. Since Twitter allows people to reply to people they don’t follow, it’s easy for conversations to escalate to harassment. The only tool to deal with these spirals is rather blunt - blocking. I’ve never experienced schizophrenia but from the descriptions I’ve read it seems that Twitter may mimic the experience well - random voices, fragmentation and overload with no filters. I’m not surprised that Twitter discourse is often emotionally inflamed - in a way it's part of the design.
From what I’ve heard, people interact differently on Tumblr. They "re-blog" rather than replying. It’s less conversational. Everyone gets to speak their piece by re-blogging something they like or don’t like, but in general it’s more like each user’s commentary on the world than competing and infringing conversations. I’ve seen some people use Twitter this way. They quote-retweet things more often than they reply. It’s a more silo-ed way of using the service.
The example that led me to think about how social media design affects social organization iis reddit. Over the years reddit has gotten a very bad reputation, but few people seem to remember that it used to be fine. It started out close to what Hacker News is today - a single forum where users can vote up or down individual stories. When reddit introduced sub-reddits, my first thought was “oh, it’s over now.” It was an intuition and I couldn’t quite articulate why I felt that way, but I knew that opening the door to allow anyone to create their own sub-reddit - essentially turning reddit into a platform rather than a simple site - would change its character completely. It turns out I was right.
If you can put aside what you know about reddit for a second, let’s do some design thinking. Imagine that we have a site like Hacker News, a single forum, and we change it so that anyone can create their own communities immediately and keep their ability to contribute to any of them. One of the things that we know about people is that they like to form affinity groups. If you and I share a hobby or a view of the world we can form our own group instantly but here’s the big issue: we can also be part of an arbitrary number of other groups on the same site. Would we really be surprised that something like brigading is the result? That design change to reddit was like creating a simulacrum of warfare on an open plain with no convenient mountain ranges or rivers to increase the cost of a raid or a fight.
Here’s the point. Someone made those design decisions. They designed those spaces and the resulting effects should not be mysterious to us if we are really aware of design. We can try to fix behavior in social media through rules and policies but that’s only one piece of the puzzle, and it’s a late piece. We have earlier choices that determine the sorts of behaviors we'll likely see.
I hope that you see the connection to Conway’s Law. There’s a back and forth process than we can use whenever we design something. We can consider a design choice and then think about the effect it will have on people. How will they behave differently? Then we can think about how that behavior will affect the system we are designing.
Conway's Law points in this direction.
I think there's a broader topic here: design forces in software - the deep effect of various choices in development. I'll be writing more about this over the next few weeks.