What’s up with Ember.js and Stack Overflow?

At ton of tech Q&A happens outside of places like Stack Overflow, especially in Ember Community Discord and the Discuss Forum. However, for many developers, Stack Overflow is still one of the first places they look to solve a problem. What are some ways that this gap can be overcome? Who should tackle the problem? How? Is it even a problem? I’ll share what I know about a past effort called “Stack Octoberflow” and a promising project called “May I Ask a Question,” hosted by Chris Manson and me! It’s gonna be May ;)

Livestreaming Stack Overflow on Twitch is all the rage these days. Streaming League of Legends is soooo 2017.

Validation

If you’re reading this article, you may be looking for validation one way or another: either that Stack Overflow is a huge problem in tech and someone must do something, or that it’s nothing worth worrying about.

In a way, these are both right.

Yes, someone should do something. Many someones should do something! In Sean Massa’s recent EmberConf talk, Contributor Rally, he shared that contributing to open source comes in many forms. People who ask and answer questions are contributors, not just developers writing code. All of us need other developers who are willing to help us better understand problems, bugs, and strategies. If nobody answered questions on Stack Overflow, that would be sad.

Sean Massa covers all the different ways that someone can contribute to open source projects, including the act of simply asking questions

And yet, I think you shouldn’t be worried. There are plenty of valuable places besides Stack Overflow for work to be done. It’s incredibly important to prevent someone from running into problems in the first place. This can be accomplished through quality documentation and fostering communities (like the Ember Community Discord and forum) where people can learn and explore together, where they talk with others long before they’ve hit a Stack Overflow-worthy wall. Additionally, our statistics on question answer rate aren’t much different from other frameworks.

What failed in the past?

This past October, I embarked on a secret personal mission to better understand some concerns that other people had raised, with the idea that I’d put together a community action plan. I called it “Stack Octoberflow.” When I suggested the idea, some people warned me that the website was an unredeemable pit of toxic misery, and others said that it was an essential and engaging place for learning. It was a little bit of both.

For a month, every morning on the train, I tried to answer Ember questions. I couldn’t upvote anything or comment, because Stack Overflow gives users powers based on a points system. The more questions you answer that are accepted as the “best” answer or are upvoted, the more abilities you get. Conversely, if your answer is seen as “bad” by other users, they can downvote your work or even edit it without your permission, and you lose points.

At first, I was a bit shocked. From a UX perspective, I felt like the website did not want my questions or answers, that what I was actually supposed to do was be a passive consumer of information. I used the term “hellscape” a lot. A friend suggested that Stack Overflow makes more sense when you think of it as an answer curation service, not a wiki or forum. Inherently, curation means some users have more abilities than others, like a librarian curates a topic section or a newsletter team curates articles. If a site operates purely by what is most popular, you end up with some of the pitfalls of Reddit or Hacker News instead — what floats to the top isn’t necessarily the “best” content. However, you also miss out on some of the perks of those other sites. The “top” curated content on Stack Overflow is wildly outdated since Ember has been around for a long time, the site doesn’t have a good way to handle app versioning, and new people can have a hard time breaking in.

After a while, I reached out to a few volunteers who had the points needed to do more advanced operations, like close questions or make edits. Occasionally I asked them for help, but I knew there are only so many notifications that a person can handle before they start to tune out. I was also still annoyed myself. I will say that attempting to answer questions gave me better debugging skills and some good blog post ideas, so there were some upsides to the experience!

Ultimately, I abandoned the project. It was burning me out. I felt that it needed a champion who wasn’t me. My favorite part of chat Q&A, Twitter, and blog posts are the interactions that result, and Stack Overflow felt like shouting into the void. When there are only so many hours in the day that I have for side projects, I want them to be things that give me energy, not drain it.

However….

Upcoming, awesome things

Every few months, the “Stack Overflow Problem” pops up again. A flurry of people share concerns that by having Q&A in ephemeral places like chat, there are some issues that result. Answers can’t be searched. Some things go unanswered. Certain statistics could be better.

We’re not alone in our questions about what to do:

The thread here is a really interesting rabbit hole. We have concerns in common with other communities too, like React. It turns out the challenges don’t go away when there are more users, questions, and answers.

So what should be done? I spoke with (er, whined to) Chris Manson of Stone Circle, and he had a great idea. If answering Stack Overflow questions felt like shouting into the void, why not use the buddy system?

Once a week, for the month of May, Chris and I will be livestreaming a session where we pair together to answer questions. If you’re one of the people who is concerned about “The Stack Overflow problem,” or you just generally want to learn some Ember, you can join us! You’ll see how we find questions, what we do to find an answer, and how we write a response. We’ll try upvoting some things here and there to help other people feel more engaged.

How will this help anything?

The project above is not the solution. These are not the droids you are looking for. Chris and I won’t change much with our answers.

Here are some secrets. The success of an open source project comes from the net sum of many different efforts. There is no silver bullet. The double-edged sword of open source is that anyone can do anything, however, they can’t do everything, so it’s up to you to take action to support or lead the efforts you feel are most important. If you don’t do it, maybe nobody will.

What Chris and I are doing is teaching and sharing what you could help with.

How you can help

The most important thing I can stress is this — figure out what you enjoy, maybe bring along a friend who likes it too, and do that thing.

If Stack Overflow sounds overwhelming, maybe it’s not your jam, and that’s ok. There are so many different, critical ways to support an open source project. It’s totally fine (and healthy!) to ignore certain aspects. It’s really important to not burn yourself out on trying to pay attention all the time.

That said, any of us who feel sufficiently energized can invite people to share their questions in the Discuss forum or on Stack Overflow in order to help make them searchable. Any of us and jump in and try to answer things. If you want to give Stack Overflow a shot, here are some tips:

  • Include versioning in your answers. The opening sentence should say something like “This applies to Ember 3.x.x, and was written as of 3.1). Future devs will thank you.
  • If you search SO for your own work and see answers from the past that are now outdated, comment with the modern answer.
  • Join the Ember Community Discord if you want some company, spot an issue that should be modified, or can help with higher level operations like vote to close, editing, etc. Thanks to Sean Massa for the tip!
  • Use code snippets whenever possible
  • Help improve the quality of questions — if someone hasn’t provided enough information, comment and ask for more. This will help you, them, and anyone else who lands on the question from Google!
  • Link back to the Docs or the Guides or both
  • Be patient if you’re just starting out
  • Upvote good questions and answers. You’re giving people who are already engaged a nice boost, and maybe some additional abilities
  • Be excellent to each other. Every comment you make should be kind, helpful, and true.
  • Don’t take things personally
  • If you want to receive email alerts when someone responds to your questions and answers, check out your Profile settings
  • Abandon ship if you don’t like it. Your energy is needed elsewhere.

What next?

Tune into “May I ask a question!” We’ll be recording once a week during May, tentatively 9am EST on Fridays (we both have day jobs, so TBD!). You can follow our YouTube channel and our Twitch stream (Twitch recordings disappear after 2 weeks, so it’s best for day-of viewing). Here’s the super rough test run:

I have no idea what I’m doing.

Overall, I’m happy to help you find the intersection of the things you like to do and the things that need to be done within Ember. You can reach me on the Ember Community Discord (jenweber) or Twitter @jwwweber.

Thanks for reading!


Jen Weber builds apps for science at BioBright. She’s a contributor to Ember.js, an open source, front-end framework that provides shared solutions for tough problems, where development is guided by the community rather than any one company. She works to transform tech into an industry that welcomes new people.