Submitting Questions on Stack Overflow as a Last Resort
As I mentioned in my previous article, many commercial product and services companies ask customers to use Stack Overflow for ‘Community Support’ rather than their formal support offerings. Many open source projects do the same, mostly because they often don’t have formal support offerings.
It makes sense, using the community for support gives customers and users greater access to experienced resources that rarely avail themselves through formal support offerings. Support teams usually escalate to Engineering when they can’t identify a solution, but Stack Overflow seems to be ‘staffed’ by true Engineering types.
I definitely find the solution to many of my development issues on Stack Overflow; the fact that Search Engines index it usually leads me pretty quickly to a solution, or at least hints that ultimately get me to the solution I need. I don’t mind doing the work, as long as I get pointed in the right direction which many Stack Overflow posts do.
When I’m working with multiple technologies, wiring them together in potentially unique ways (for me anyway), it’s often hard to find the answer I need on community forums. Not impossible, but it’s often hard. In the last year I worked on a project that coupled two technologies in a way all of the documentation told me should work — but even after searching for days I simply couldn’t find an example that showed me how to do it. I’ll talk about this example more later.
Asking for support on Stack Overflow became a last resort for me lately. I love finding answers in Stack Overflow via public search engines, but asking questions there is unnecessarily painful. Because of this, I now work really hard to exhaust all of my other options before creating a question on Stack Overflow.
Don’t get me wrong, for many of the questions I ask on Stack Overflow, I get responses from what are clearly experts in the topic area, and for those people I’m sincerely grateful. Sometimes those responses come quickly (which I love), other times it takes a while but eventually the answer arrives.
Sometimes just asking the question helps me figure out the answer; does that make sense? I often find that for really difficult coding problems, asking someone for help actually helps me figure it out myself. I often drag my wife into these conversations; she doesn’t know anything about coding, but at least she’ll listen to me (where I know my kids or dogs won’t). As I order the steps or facts in my mind to describe my problem to her, somehow that process better aligns my brain to help me figure out the solution myself. She knows to just give me her attention as I explain it, knowing she doesn’t really need to do anything else except perhaps asking clarifying questions, then I’ll usually figure it out as I talk.
Asking questions on Stack Overflow is like that for me too sometimes — just the act of writing the question, then clicking the Review Your Question button, makes ideas flow into my head. Sometimes they flow in before I click the Post Question button, often they flow into my head immediately after I click that button.
I don’t know what causes this, but lately I frequently find the solution to my problem immediately after submitting my question. I can look for days for something, then suddenly find it after submitting my question in the forum. At this point, it’s embarrassing to immediately go back into my posted question and say something lame like “nevermind, I figured it out.” At this point, I usually try to document the solution to help others who might have the same problem — unless, of course, if the problem was caused by something stupid I did, in which case I quickly delete the question, if I can, and run away.
Stack Overflow recently started making an issue out of how I provide a solution/answer to my own questions, deleting my responses or making me wait two days before I can accept the solution I provided. It’s almost like Stack Overflow is working against me; this makes the concept of ‘Community Support’ through Stack Overflow a problem and why I wrote this post.
As I said in the beginning of this article, many development tools, frameworks, libraries, and services recommend users and customers use Community support. The issue I have, and the reason for this post, is that Stack Overflow actually makes it harder or even impossible for me to use Stack Overflow for Community support.
Because of the way Stack Overflow rates user reputations, it encourages users to post answers as frequently as possible; even if their post is a useless answer or response to the person asking the question, in order to improve their ranking on the site.
I had a screenshot of another example, but I deleted it long ago because I didn’t think I’d ever get around to writing this post, sorry. I was looking for a solution to a Joomla issue and found a post where the poster asked a question about how to find a specific Joomla component to solve the problem. A responder suggested that the user select a suggested module to solve the problem. If you know anything about Joomla, you’d know that modules are blocks of content that show up in the UI somewhere (areas of content on the page) while components manipulate or process content in a portion of the page (yes, an oversimplification). Suggesting a module to a Joomla admin who is looking for a component is like offering a rake to someone who is looking for a wheel. This particular user delivered a completely useless response — but improved their Stack Overflow reputation by doing so. Yes, I know, the user’s reputation can get voted down, but it’s more likely people just ignore the stupid response rather than voting it down.
Recognizing that this behavior is problematic, Stack Overflow restricts how frequently you can answer a question. This wonderful restriction, of course, creates problems for me when I hop on and browse the forums looking for questions I can answer. Many times. I’ll answer a question, then find another question in the queue that I can answer, but can’t submit an answer because not enough time elapsed since my previous answer. Nothing like deliberately prohibiting me from helping as many people as I can as quickly as I can. If my answer’s good, who cares how many minutes passed since my previous answer (to a different question).
Sometimes I get responses that make me feel like I’m being treated like I’m an idiot. I know this is pretty subjective, but I work hard to document most questions with enough background information that other Stack Overflow users can tell (I think anyway) that I’ve thoroughly thought through the problem and have thought of most possible scenarios. By the time I get to Stack Overflow, I’m usually asking a specific question — recognizing that it’s the one piece I need to finally figure this thing out.
In one example, I spent days investigating several different ways to solve a particular problem I had to no avail. I spent time carefully crafting my question while at the same time including information about the different approaches I’d already investigated. The first responses I received were “Does your array actually need to be dynamically-resizeable?” and “Using dynamic memory on an Arduino is a very bad idea, can you justify it?” Neither response made any effort to address my question, although the second one at least told me it was a bad idea. Of course I knew it was likely a bad idea, but it was the only way I could think of to solve the problem at hand. Explaining that what I want to do is a bad idea, with solid reasons behind it, is a potentially useful response to my question. Asking me to justify my reasoning for doing what I want to do doesn’t help me in any way.
For many of my Stack Overflow questions, I get quick drive-by responses, which does nothing to answer my question either; here’s an example. I didn’t think I needed to share my code to get the answer to my specific question because the question I asked didn’t have anything to do with the code I used, but more about how SQL query results get sent to the browser. A friendly person stopped by, said “Hi, we need to see the relevant part of the code” (which I quickly provided) but they then disappeared. It’s more than a month later and I still have no response from that person (or anyone else as a matter of fact).
Asking clarification questions is helpful, to get both of us on the same page as we work together toward an answer — that makes sense.
A while back I was working on a Flutter application that needed to access the device’s Wi-Fi settings. I looked around for a while, and found a Flutter plugin that provided the capability I needed. As I worked through the plugin’s sample code and monitored its behavior in my application, I realized that my app wasn’t getting the permissions it needed to access the device’s location (which for some bizarre reason is required in order to obtain Wi-Fi information now on Android and iOS devices). Thoroughly understanding the issue, and after working a while to locate a solution, I decided to finally post a question on Stack Overflow.
Of course, a short while later I figured it out. To validate my solution, I built a stand-alone Flutter application that implemented the full solution and demonstrated how it worked. Since I wanted to help others in the same situation, I cleaned up my local git repository, added a detailed readme file, published the complete sample application to GitHub as a public repository, then answered my own question on Stack Overflow with a link to the sample app.
At this point, I thought I was done, but that wasn’t the case. A couple of Stack Overflow users commented on my solution:
- Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.
- While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes.
Realizing that I delivered a fully-documented and complete sample application illustrating the solution, more than you usually get in an answer on Stack Overflow, I didn’t really feel the need to go back into the answer and dump in the content from the readme file. I was in a hurry, and already moved on to the next feature in my app. What did Stack Overflow do? They deleted my answer (see the screenshot).
In another example, I was trying to solve a particular problem with a Firebase Functions app manipulating Calendars inside of Google Workspace, and I simply couldn’t find the solution anywhere. I spent days reading all of the documentation and trying different code snippets, but none of them worked for my particular scenario. I spent a lot of time writing out what I wanted to do, added references to many of the articles I found online indicating that what I wanted to do was possible, and asked if anyone could provide a code sample that illustrated how to do what I wanted to do. Here’s what I asked:
“Does anyone have, or can anyone point me to, an example using Firebase Functions, TypeScript/JavaScript, and a Domain Wide Delegated Service Account to Create/Update/Delete calendar appointments in Google Workspace?”
What did Stack Overflow do? They deleted my question, citing violation of usage guidelines and such. Apparently they’re pretty sensitive about answers that point to external sites and/or data.
If you think about that, it makes sense. Of course they care about that — because users finding their solutions external to the Stack Overflow site affects their advertising revenue. It doesn’t matter that I delivered a complete sample application directly helping other users — the fact that the solution resides somewhere else is a problem for them. It doesn’t matter that I asked the most thoroughly researched, and most thoroughly described question I ever asked on Stack Overflow, since I didn’t ask a specific code-related question, and I might be asking for code samples from somewhere else, they deleted my question.
I spent some time on the Guidelines page and I can’t see anywhere where it’s prohibited to seek ‘recommendations for books, tools, software libraries, and more.’ Besides, I wasn’t seeking recommendations for books, tools, and software libraries. I asked specifically for a code sample that demonstrated how to solve a particular technical problem. That’s what Stack Overflow is for, right? Helping people with their code?
Of course, a few minutes after posting that question, I found the solution to my problem — a complete code example in a GitHub issue that demonstrated how to do what I wanted to do. I posted a link to the solution as an answer to the question, but, of course, as you already know they deleted the question. Anyone following me with the same or similar question won’t be able to tell that the question was already asked, and they certainly won’t find the solution on Stack Overflow because the question and answer are both gone.
Stack Overflow has a rich and vibrant community to help, so that’s probably a good thing. What I’m seeing though is that Stack Overflow pushes back and actually makes it harder to ask questions and/or answer questions. If that’s the case, then what’s the point? Why bother? If I can’t ask a question without worrying about whether Stack Overflow is just going to delete it — what’s the value of sending me to Stack Overflow for help? If I can’t answer multiple questions quickly without getting blocked, then what’s the value of answering questions on Stack Overflow? If I can’t answer my own questions with a complete app demonstrating the solution without getting my answer deleted, then what’s the point of sharing my solution with others on Stack Overflow?
What I want from support communities like Stack Overflow is:
- Don’t treat me like I’m an idiot until I’ve proven to you that I am. Assume I know what I’m doing until I prove otherwise.
- Answer my question — the actual question I asked — not the question you think I asked (this requires actually reading my question)
- Don’t ask me to justify my approach. I already told you why I’m doing this.
- Don’t suggest/offer different approaches unless I’ve indicated that I’m willing to try other approaches. I’m here to solve ‘this’ problem, not start down another rathole.
- If what I want to do can’t be done, then tell me so.
- If you don’t know how to do what I need done, say nothing. No, seriously, don’t even join the conversation.
- If you don’t have anything substantive to add to the conversation, say nothing.
- Ask clarifying questions if you think the answers to them will help you or others in the community to more quickly deliver an answer. If you’re asking clarifying questions in order to look superior, say nothing.
- Don’t delete my question unless there’s something offensive or inappropriate in it. It’s OK to ask a question where the answer may be found elsewhere (outside of Stack Overflow) — it is what it is.
- Take the answer you get from me, even if it happens to be a link to a sample project demonstrating the solution. It’s a complete solution to the problem and GitHub’s a better way to read readme files, don’t force me to copy over my readme file contents into the answer just so you can maintain your advertising revenue.
Photo Iva Rajović on Unsplash