My personal notes for A Decade of StackOverflow

A talk by David Fullerton I attended at DeveloperWeek 2019

One of the really interesting things about this talk was how candid it was.

It's about getting something out there that isn't perfect, learning what's not working, and having the courage to go back and rebuild the parts that aren't working.

Doing Just Enough

All of StackOverflow runs on 9 web servers and 4 SQL Server boxes.

An example is how they managed tag search. In the early days, instead of building a complicated tag management system, they simply did a CONTAINS statement in SQL. However, this doesn't work with special characters. Rather than complicate things, the simply substituted the special characters for word characters they weren't using (e.g. c#). This lasted a couple years, and solved the problem simply and quickly.

The moral of the story: An early hack that solves a problem quickly can actually sustain you for a long time. Eventually, you may need to rebuild it, but you can do so with the full use case in mind.

Scaling the Community

One of StackOverflow's biggest challenges hasn't been scaling technically, it's been scaling the community.

[As the community grows], the biggest thing you start to lose is a sense of empathy.

StackOverflow has long has this culture of "being right is more important than being helpful."

This ended up being one of the biggest challenges to scaling the community. They had to change the community to drive towards helpfulness as a shared value.

The motto used to be "StackOverflow is for professional programmers." This exclude a lot of people who don't feel like they belong to this group. It drives people away from the industry. This also hurts people from underrepresented groups.

They're working to "refactor a community."

  • This year, they rolled out a new code of conduct that emphasizes "kindness, collaboration and mutual respect."
  • They added a way to enforce the code of conduct by adding a new flag (unfriendly or unkind).
  • They added a new contributor indicator to remind the community to be nice to someone who's new.

The net change so far is new, unkind comments has dropped by a third.

Listening

These things have a common thread of a willing to go back and revisit old decisions. StackOverflow's success is driven by a willingness to listen to what people say and change.

Ask the right questions, and be willing to listen to the answers you get.