For years, when I’ve met people and told them who I work for, one of the most common reactions has been something along the lines of:
I love CouchSurfing! But… the website… is kind of…
I immediately reassure them that they’re not offending me. I know it, the engineers know it, we all know it: we have a problematic website.
A couple of months ago, the engineering team began working on a completely new code base for the website. I sat down with our head of Engineering, Andrew Geweke, to talk about why and what it means for the community.
Meredith: How would you describe the challenges that we currently have with the site?
Andrew: The current site, that code base is over 8 years old, which is an eternity in website time! There are probably no websites that people use today that are using code anywhere near that old. There’s code in there that was written five years ago by someone who hasn’t worked for CS in four years and nobody really understands it. That makes a very, very hard application to maintain. Previously we had sort of added more and more and more features onto it, but we hadn’t ever really taken a hard look at the core and said, “what’s going to let us improve or invest in the real core of this site?”
M: And what are the implications of that?
The biggest thing is it’s unsustainable. And it’s limiting. Because it’s complex, we couldn’t be confident that we could do major new features and not break existing things.
M: Can you give an example?
A: Take search. We’ve tried tweaking the search algorithm but really there need to be even bigger changes. But because the code is complex enough, it’s very hard to do those kinds of things without breaking things.
M: What work are you and the team doing right now?
A: We decided to start implementing a number of important new features and it was clear that we needed to do that on a new fresh code base. The old code base was complex enough that any big improvements would have taken us many, many times longer than it would on a new code base.
M: What’s involved in a process like this?
A: Well, for example, in the current site, the information that we have about a current user is stored in probably 200 separate data fields, at minimum, spread across over a dozen tables. In the new system it’s stored in probably eight fields in one table. Part of the point is to make this much easier to work with. We want to simplify this down.
M: And that’s a lot of work.
A: Absolutely. Taking all of that information and completely changing the way we store it in order to make this transition is part of the difficulty. In my experience, CouchSurfing had this history of making new features: “Here’s a very complex tool. We will now provide you with lots of text and video to teach you how to use this tool!”
One of the big things we’re trying to do now is work really hard to give people simpler tools. That process takes a lot of time. It’s the old trope: it takes much more time to design something that’s simple than something that’s complex. You probably know the old quote, some famous author wrote to somebody else and said, “I’m so sorry that I wrote you such a long letter, I didn’t have the time to write a shorter one.” [Ed. Note: There doesn’t seem to be a definitive agreement on the source of this quote.]
M: I hadn’t heard that, but it’s good. Very true.
A: Right? You know this very well. It’s the same thing. The hardest thing is to be like, I’m going to express my thoughts very clearly, and in a few words. If I give you 30 pages, you can just start typing. It’s the same in code, it’s a very similar process. We’re trying to work very hard to make something simple.
M: So once we’re running on the new code, what kind of benefits are members going to see?
A: The two immediate ones are it’ll be much, much faster and much more reliable. Also, the simplification is a lot of it. Because the code base is simpler and the data is so much simpler, we can expose everything in a much simpler way. If I can give another example: you search for a host in Paris, and right now we just sort of give you a bunch of random hosts in Paris. Well, we should be smart and figure out who are the hosts who can host when you’re there, who are the hosts who said they’re open to your kind of person, right, all of this stuff, without making you go through all these complex search filters.
I mean, members know how to set their search filters and find the type of people they’re looking for, but they shouldn’t have to do that. We should just give them the kinds of people they’re looking for. This new system enables that because the old system was so complex you couldn’t even think about it. So that’s going to be a lot of it.
M: Right. So since we’ve come back to search, obviously that’s one of the most important things to improve. I also know it’s not one of the first things that members will see improved. Can you explain that a little bit?
A: The thing is that it’s so important so it needs a lot of care. We’re going to work really hard at it and get it so it’s really good and really right for all of you, and not just throw out a mediocre implementation. We’re going to sit there and think about this and do it right because it’s so crucial.
M: Any final thoughts about this change?
A: CouchSurfing is a wonderful concept and a wonderful thing to do. But for a long time our users have had to work hard to use the technology. This is all about turning it around so that the technology serves the users. For me that’s one of the highest level expressions of what we’re trying to do. All these people, they all use other networks, they all use Google. Those websites work way better. CouchSurfing, they love it because of what it lets them do, but oh my god is it hard to use. They’ve been patient with us. So, we want to take the concept that we know and love and bring it up to modern standards for a website.
Interview conducted by CouchSurfing’s community communications manager, Meredith Hutcheson