Before we start, yes I did make that icon myself. I have the inkscape files to prove it.

Before we talk of solutions, we have to talk about problems. So, I have some questions for you all.

Question Number 1: Let’s imagine you have some mobility issue that makes it difficult to climb stairs. Do you know what areas of campus you can’t get to? (Probably not. I don’t)

Question Number 2: Let’s say you’re friend is sensitive to loud noise. You heard some construction outside one of your lecture halls, and your friend asks about it. They want to know if the sounds are going to cause them a problem before it happens. But, all you know is that the sounds didn’t bother you. You don’t experience the world like they do, and you can’ give them a good answer. You can go on about what sounds you heard if you remember, and how often it was, but none of that is the information they’re after. Your friend wants to know if the sounds are going to cause a problem for them, and you simply can’t answer that. You don’t know. You possibly can’t know.

Question Number 3: Think back to the previous two questions. These are problems of information. The only question now is, who might know the answer?

We all perceive the world differently, we may not see the hurdles, obstacles, and dangers that others experience. Our own perceptions may shift, what may look trivial one day changes when you return with an injured ankle another.

The information of what’s dangerous, what’s an obstacle, and what tools and routes and resources exist for all of these different perceptions of the world is out there. Somebody has lived those experiences, found those routes, this knowledge. The question is, how do we make it easier to ask these questions to people who can answer them? How do we find people with Common Ground? (hehe)

I’m sure by now you’ve figured out what the problem is, but if not, here it is. There are certain challenges that lead to questions that many people don’t have the lived experiences or perception to answer. It doesn’t have to be large scale differences either, they just make for attention-grabbing examples. With this in mind, I’ll go over a couple other constraints and then explain my project.

I figured out pretty quickly after identifying the problem I wanted to approach, that I was going to lean towards a Question-and-Answer type of model. With that in mind, I took a look at some other Question-and-Answer systems to see what design choices they made, and how those decisions affect how these tools are used. (Trust me, this is going to matter, this is going to explain most of the design decisions I made)

Who here has heard of Stack Overflow? (hopefully everyone) To keep this part brief, there are absolutely features I like about StackOverflow’s approach to the Question-and-Answer model, that I think would work well here. First, we’re going to take the topic system, and put a pin in that for now and come back to it. There’s more to say about that later.

First, for real this time, I like StackOverflow, and by extension, Stack Exchange’s approach of “Every question has an answer” This is the one aspect of the site that I most like. No matter how obscure of a subject, there is someone out there who knows the information like the back of their hand. It was this detail, the fact that there are people with nearly every experience possible done hundredfold, that made me confident in the realistic feasibility of actually implementing this.

However, this goes hand in hand with the aspect of StackOverflow I believe would be the worst for our application of the Q and A model. There is the idea that there is EXACTLY one answer for a question, and once it is solved it is solved forever. That is… not even true about many of the subjects StackOverflow discusses, much less for the varied perspectives and perceptions of so many people. If I wanted to make a QnA platform, I need to make design decisions that avoid having such an attitude form.

This last one is less specific to StackOverflow, and more about the entire QnA model, as well as most of the forum-type sites. There’s an identity that forms around an individual, around their user, and people form opinions on the aggregated posts from that user, and drama forms. We can’t completely get rid of this aspect, if only for the sake of being able to moderate the platform a bit to limit the impact of bad actors, but this is an idea I haven’t really seen challenged.

Now that the preamble is out of the way, we can actually start talking about the design decisions behind my project, and I can start to dive into the design decisions I made, with the “why” hopefully being emergent. (an aside, I’ve heard it said that a good solution, once understood, becomes the obvious solution. I’m hoping I found at least one good solution to these constraints.)

Let’s get first things out of the way first. The name of the project, the project logo, Common Ground. If you haven’t figured out the meaning of the name and the logo, I’ll briefly touch on it here. The accepted definition of “Common Ground” is a shared interest or agreement, but here, I would instead interpret it as “shared understanding” or “shared perception”

I promised you earlier I was going to talk about it, and here it is. I did like the concept of topics, but I reused them instead as labels. They essentially act as additional context that can optionally be added. They are the only information about a poster/commented you are given. Whatever the poster or commented have decided to say about themselves is what is visible to the other users. That’s it. By the way, this is live on the IASTATE network on this URL on-screen.

On the post page itself, we can see that there is no username information here either. Of course this information still exists in the backing tables, but it is never sent out of API endpoints. There is no way to determine from the post itself directly which user posted it. (as an aside, very helpful for testing. Happy accident.) The idea of this is to encourage users to be willing to share information that they may not have otherwise been willing to, as it is less likely to be connected directly to them, as every poster and commenter is just some anon user.

On this page, we can also observe another thing I changed from the traditional Q and A formula. Votes exist for comments, as there can be bad-faith and bad answers, but there are no votes for posts. This is another deliberate change. Any good-faith post is a good post, and is at least worth humoring having on the platform for people to offer advice. Bad-faith actors would have to be handled by some sort of platform-level moderation. The only value votes have is to indicate to other users whether an answer may be accurate or not, and I am still on the fence on having them on comments at all.

There are still accounts to post, which is one means one could control access to the app if need be, to limit bad actors. Unfortunately this design is just inherently very vulnerable to them, removing obstacles for people to speak without fear of it being traced back and being potentially harmful also decreases the risk to such bad actors. This is one of many problems with the design I am not sure how to fix.

In terms of technical detail, it works pretty much like any other Q and A site. It took a lot of thought to make a design that seems this simple, but there were a lot of careful decisions made, some of which I still am on the fence on.

Built With

Share this project:

Updates