40

No, this is not a bitch session. I'm a serious professional developer of 30+ years experience, with paid developers working for me on commercial software. I find Stack Overflow to be the most amazing thing that has happened to the web in my professional experience (with the possible exception of Joel on Software!).

It is a wonderful thing to Google for something and find a precise, on target answer literally in seconds. Hats off to everyone involved.

At the same time, I am finding it much less useful when I try to ask questions, and I see the same in other serious questions in areas that interest me. The new question queue is dominated by newbie questions and people eager to build reputation, and the answers I see to serious and challenging questions are often glib and unhelpful, or even wrong.

I could try to write long questions explaining what I'm looking for, but from experience long questions are hard to read for busy people, and many of mine are really quite short. I just need them to be taken seriously by people with (say) 10+ years of expertise in the field (if there are any watching).

I have considered proposing solutions, such as - a question 'level': newbie, intermediate, advanced - a checkbox for disabling "don't do that" answers - an 'experience' level as well as a 'reputation' level - a 'wrong' answer flag as well as a 'right' answer flag - additional powers to the questioner to reject questions or at least downgrade them

Yes, I known about programmers.stackexchange but many questions I have simply don't fit there.

From one previous attempt I know that proposing anything that represents change and has ever been proposed before is a good way to suffer serious reputational damage, so I'm trying to avoid doing that. I've read the reasons why previous attempts to do things like this have been rejected, but they only make sense considered individually. I'm looking to solve a problem and inevitably it will overlap with things have been proposed and rejected in the past.

I think SO needs to change, but I'm not the person to say how. I leave it to all those 10K+ people out there to hear what I'm saying and hopefully to see ways to evolve toward a better SO for the 10+ year developers out here.

So finally, my question is: what single new feature, or very small set of features, would be most likely to improve the usefulness of SO to serious professional developers, allowing serious questions and answers to emerge out of the tide of newbies and homework?

In response to comments, here are two hard questions I asked.

Why does typedef struct produce a link failure eventually produce a very good consensus answer, that I was probably experiencing a compiler bug.

https://softwareengineering.stackexchange.com/questions/230001/how-to-write-a-compile-time-initialisation-of-a-4-byte-character-constant-that-i was the trigger for this question. I got two answers, both variants of "don't do that", which I absolutely hate. Eventually, after posting my own answer, I got a comment which was useful. I still think there are probably other ways to do this, but I'm not going to find them here.

I don't think I can ask questions much better than these, hence my question about whether SO might evolve to better handle hard questions.

  • 17
    what is it about your questions that makes them attract less answers? Are they difficult, like solving perf problems? Are they conceptual and opinion rather than hard facts? Are they in niche areas that less people follow? or do you have a really high bar for what you think is a useful answer? This question is quite long but leaves me not understanding what the problem is you want to solve. – Kate Gregory Mar 2 '14 at 1:00
  • Related and possibly duplicate: meta.stackexchange.com/q/31253/210016 – Benjamin Gruenbaum Mar 2 '14 at 1:06
  • 14
    I have this problem too, but I've basically accepted that the number of people who can answer my questions is comparatively small, and that's just that. I usually get a decent answer -- especially after posting a bounty -- but it just takes longer. – Ernest Friedman-Hill Mar 2 '14 at 1:15
  • 3
    At least in my limited experience, the community is good enough at figuring out when a question is deep or interesting, and if other people care and if a solution exists, someone will obsess and dig into it. A bounty is a great way of getting attention, but that should be all that's needed. Usually, the writer of a question is the least qualified to say whether it's "beginner" or "expert" level, and that's assuming that such levels even make sense. (A compiler bug affects beginners and experts alike, for instance.) – Kerrek SB Mar 2 '14 at 1:33
  • 4
    Robert Harvey's answer to "Reputation level for close privilege should be subject to inflation" is not a response to your proposition, but does have some value as a historical anecdote: it was not always thus. Tim Post's recent answer to "What drives me away from here" is similar. The situation is recognized, even if no one knows if it's soluble, let alone how to solve it. – jscs Mar 2 '14 at 2:09
  • 2
    @KerrekSB: the community seems less interested when there are already 2 or more answers, so maybe my question is: what's the best way to say please keep trying? – david.pfx Mar 2 '14 at 13:20
  • @david.pfx: A bounty. Also, if the existing questions are poor and downvoted, people will still post. Usually, votes on answers, which mean "useful for the community", agree with what's "useful for the asker"; in the rarer cases where that's not the case, bounties help to get the asker what they want. – Kerrek SB Mar 2 '14 at 13:55
  • 6
    Stack Overflow is optimized for expert answers, but not expert questions, unfortunately. And so is its user base, for that matter. – BoltClock's a Unicorn Mar 2 '14 at 15:23
  • 1
    @BoltClock'saUnicorn: that seems to be the nub. Any thought on trying to change that? – david.pfx Mar 2 '14 at 22:12
  • @KateGregory: From my perception they are questions that are unlikely to figure in a college assignment or indeed occur to anyone building toy projects or learning their craft. At the same time I hope they are of interest to serious professional developers with 5-10+ years of experience and/or working on a million lines of code or on legacy software. While this question is quite long in construction, the final question is just one single para, and as far as I can tell no-one has tried to answer it. Must be me. – david.pfx Mar 3 '14 at 10:24
  • somehow related: What drives me away from here – user221081 Mar 3 '14 at 15:42
  • I agree with @BoltClock'saUnicorn. It is hard to get answear for expert questions but there are sprint competitions for newbie questions. – Leos Literak Mar 4 '14 at 11:41
  • 1
    Thank you for this question, I've been thinking of posting something similar. I'm also a 35-year programmer, and when I first came here I thought it would be for experienced programmers to help each other. But 99% of the questions seem to be from total newbies: C/PHP users who don't know how to write simple for-loops, SQL users who don't know JOIN or GROUP BY, etc. It gets really tedious answer so many basic questions. – Barmar Mar 6 '14 at 20:05
  • @Barmar: it seems there are a few of us around. [Actually, I go back to punched cards but I'm trying to keep that a bit quiet.] This is the most popular question I've ever asked, so obviously there is interest. Read the answers -- there is a lot to learn here about how to rise above the newbie tide. – david.pfx Mar 7 '14 at 3:18
59

The problem

I think you got the problem wrong.

You're a "serious professional developer of 30+ years experience, with paid developers working for me on commercial software."

If you have a question you'd like to ask on Stack Overflow - chances are that a serious developer with 30+ years of experience, and a team of paid developers who have professional experience all tried to solve it first, and failed.

This makes the number of people who can likely help you, or even understand your problem a lot smaller.

  • Less people will understand it, so it'll get less shares and upvotes.
  • Less people will know what to do with it, so it'll get less answsers.

In a line - the entry barrier to answer your question is a lot higher.

For example, your last question was when discovering a GCC compiler bug.

What I do about it:

When I have a question which is problematic to answer like recently this one or that one I do the following:

  • Start a bounty, this helps a lot with visibility and that's what bounties are for.
  • Go to the SO chat, and bother people about it (politely).
  • Find the development IRC channel of the system, ask there. Sometimes the best bet is the SO chat (for example - PHP) - sometimes you want to be more specific (for example - the JS chat is awesome but for Angular specific questions I'd try #angular.js)
  • Go to reddit and Hacker News and post it, asking people for help.
  • Bother relevant people on twitter - core developers are the best bet.
  • Bother the developers on GitHub. Open an issue about it if it's a huge issue and it's a GH problem, otherwise you can have luck with open source projects that relate to it.
  • Find the mailing list, ask there too. In JS, I always end up in esdiscuss for the language questions that have me stuck for a day or two.
  • Go on every serious professional forum and bother people about it with a link. This can really increase visibility. The golden rule is to find the forums where the hardcore devs of the library or platform hang out and ask there. For example, a friend of mine wanted to know how to do something in TypeScript and asking didn't help so he asked in the official forums and got an answer from Anders Hejlsberg within a few minutes.
  • Email authors -this is a drastic move, but when dealing with a complex system, emailing the authors of the system works nicely, especially in academia.

Note - this is only relevant advice when you've tried pretty much everything else , do not apply these techniques unless your question is really something a professional developer or a team tried solving for a few hours or days. If you ask trivial questions this way all you'll accomplish most of the time is getting a lot of people annoyed at you.

  • 12
    Thank you for the time and effort, but this really doesn't answer the question. First you told me I asked it wrong. Then you told me what I already knew and want to achieve, that the entry barrier should be high. Then you told me about bounties, but they mostly interest reputation hounds, not the people I want. And finally you told me places I could look other than SO, all of which I already know about and all of which I've done at various times. [And yes, I too have had a question answered by Anders.] The problem is: I want to know how SO could help me better, not where else I could go! – david.pfx Mar 2 '14 at 3:13
  • 5
    Yes, I know. I did not answer your question directly - I discussed the subject it was talking about. What I did, was suggest a couple of ways to increase the visibility of your SO question by pushing it outside of SO (which is just as important). In order to get more attention in SO itself your're pretty limited to bounties and the chat (both of which I suggested). – Benjamin Gruenbaum Mar 2 '14 at 3:16
  • 3
    Part of the problem is that people who are highly skilled don't want to spend their time answering your very specific but not very highly applicable question (they already do plenty of that and get paid well usually). Instead, they answer questions with much higher applicability or public interest - these questions are usually easier too. – Benjamin Gruenbaum Mar 2 '14 at 3:18
  • 1
    but they mostly interest reputation hounds, not the people I want I don't think that's a fair statement. – Alan Mar 3 '14 at 0:23
  • 1
    @Alan: not trying to give offence, but bounties appear to attract people trying to build reputation rather than those comfortable in their own skins. I'll have to give it a try and see what happens. – david.pfx Mar 3 '14 at 10:18
15

Looking at your questions, they are not all straightforward to reproduce. It is not just a matter of expertise. I may be wrong as I don't know about all these topics, but to me only the first one looks simple to reproduce:

The others would either require me to write a lot of code to reproduce the problem or to carefully set up an environment. Even if you were able to target your question at an expert, you are still asking them to do a lot of work.

I could try to write long questions explaining what I'm looking for, but from experience long questions are hard to read for busy people, and many of mine are really quite short.

Reading is not always hard work. Asking lots of clarifying questions is hard work though and these are often needed if a problem is not easy to reproduce. If a question looks like it will need lots of clarifying questions then I am likely to avoid answering it (not laying claim to expert status on anything here).

My experience on SO is that writing a long question including a minimal example results in good answers.

  • 4
    THIS, I think, is the real answer to this question. When in doubt, SSCCE! – Aza Mar 3 '14 at 15:05
  • 1
    @Emracool: no, we should MCTR, now; shog9 said so. – David says reinstate Monica Mar 3 '14 at 15:13
  • @David eh, ya know what I mean – Aza Mar 3 '14 at 15:25
  • Point taken. Good advice. – david.pfx Mar 4 '14 at 2:58
  • this is the advantage of talking about specifics, with examples rather than generalities, @david.pfx – Jeff Atwood Mar 6 '14 at 6:21
  • @JeffAtwood: I sure got that message. The interesting thing is that this is the most popular question I've ever asked so there is real interest. The SO feature and practice set probably allow skilled question writers to rise above the tide but it sure isn't easy. The help stops well short of the gems found here. The answers to this question may help, but this is probably something for the 10K+ people to think about. – david.pfx Mar 7 '14 at 3:28
14

Can you provide specific examples? It is difficult to talk about generalities and abstract terms, I find it is helpful to anchor these discussions on real, concrete examples so everyone is clear.

https://stackoverflow.com/users/1105562/david-pfx?tab=questions

These questions look mostly answered to me. Which ones are problematic? URL?

I will also add that when I find my questions are not satisfactorily answered, I consider it a failing of my question first. I didn't make the question clear enough, I didn't research and explain my problem sufficiently, etc. Every question is an opportunity for me to learn more about my problem -- up to and including answering it myself over time, even if only partially.

  • 22
    Is this an answer? – jscs Mar 2 '14 at 5:30
  • 5
    @josh it is an answer that questions the premise of the question. "Look at all these problems us professional developers have on Stack Overflow!" with no actual evidence presented is not exactly a question, either, is it? No, it's a rant. – Jeff Atwood Mar 2 '14 at 7:31
  • 2
    Fair enough. You've expanded it quite a bit since I made my comment anyways. – jscs Mar 2 '14 at 7:57
  • 2
    @JeffAtwood: fair point, see my edit. The basic problem with asking better question seems to be that they're longer and that turns people off. Asking brilliant short questions about hard topics is beyond me at present. From your lofty viewpoint of near infinite reputation, do you not see any potential for SO to evolve in direction I suggested? – david.pfx Mar 2 '14 at 13:06
  • 2
    @JeffAtwood The question is not specific to OP, it's not a secret that it's much much harder to get a good answer to a hard question than to an easy one in Stack Overflow. Picking on OP is the easy thing to do. I've had to work very hard to get answers to some of my questions. – Benjamin Gruenbaum Mar 2 '14 at 15:01
  • 1
    @david.pfx "at your lofty position" - it's worth mentioning that Jeff Atwood is a cofounder of Stack Overflow and Stack Exchange together with Joel Spolsky. – Benjamin Gruenbaum Mar 2 '14 at 15:03
  • 1
    @BenjaminGruenbaum: yes, I knew that, and about Coding Horror (which I have read on occastion). Even if I hadn't, with a reputation like that I was going to Google him, wasn't I? I don't get to chat with legends all that often. – david.pfx Mar 2 '14 at 22:11
  • Also, last I had checked, S.O. isn't the right place for questions that have a very narrow domain. One could argue that a seasoned developer with 30+ years of experience, along with a team of developers, isn't going to be struggling with the same issues that us mere droogs deal with. – Alan Mar 3 '14 at 0:26
  • @alan: We use SO a lot, but rarely ask questions, as you surmised. The point is that my knowledge keeps going out of date and what I find here is incredibly smart people who know things I don't, and lots of traffic. I have learned heaps by answering C++ questions, and being told why I'm wrong (I learned my C with K&R and MSC 1.04, so things have changed a bit). I just feel it's harder than it should be to get good answers when I do have a question. – david.pfx Mar 3 '14 at 10:16
  • 2
    @david.pfx much better, but " I got two answers, both variants of "don't do that", which I absolutely hate" I will refer you to stackoverflow.com/questions/how-to-ask -- Keep an open mind section, specifically the answer to your question may not always be the one you wanted. It's also a shortcoming of the question in that if what you are doing is considered odd, you need to justify why you must do it that way and provide a rationale that makes sense. Questioning the question is valid. Completely. It's what I did here.. – Jeff Atwood Mar 4 '14 at 0:46
  • 2
    @JeffAtwood: thanks for the advice. I'm still not quite sure what I wanted from this question, but I did get the attention of some fine 10K+ people, and if my question fell short, I think there are some excellent answers here, which I and hopefully others will benefit from. At the same time I would ask you to at least keep in mind the possibility that SO could evolve too. – david.pfx Mar 4 '14 at 3:03
  • I was going to post an answer until I read this one. Making an answerable question can be difficult, but in the end, examples are what will bridge the gap between a hard unanswerable question and a hard answerable question. – Travis J Apr 17 '14 at 22:55
10

I have asked only two questions on SO. They were both very hard. One got a good answer and one did not. Both were answered by Microsoft employees I happen to know in real life, but who I would not have asked directly. While very hard, they are not long. Part of the work we need to do to use this site is to extract an answerable question from our long and complex problem. We see a failure to do this when someone posts their entire homework assignment instead of asking about an error message, or in the "too broad" or "unclear what you're asking" questions.

That work is harder when the question is harder, but it's a requirement for using the site. Picking out the one issue in a difficult piece of code (like the endian issues in the initializing code) and asking just about that is more work than pasting in 20 lines of code and saying "this doesn't work, what should I do?" But in a way, that question is just like the one from a 20 year old who has pasted in his "ask the user for two strings and concatenate them" homework.

I wrote an answer about beginners who don't know how to write in a particular language and who also don't know how to write a question for SE and I concentrated on these being different skills. I think in your case (and I know, I'm basing this on the flimsiest of evidence) you are an expert in your area, but don't know how to write a question for SE. Sure, your questions don't get closed but they don't get you the answers you want. Perhaps if you invested time and energy into teasing out smaller questions from your larger problems you would find that these questions, even though they are very hard, would start to get answers.

(I know I am vulnerable to being accused of a No True Scotsman here: a well written question is by definition answerable, you're not getting answers so it must be because your questions are not well written, if you improve them and they still don't get answers well you just must not have written them well, haha. But I do mean this sincerely. The difference between a question and a problem is huge and on SO if you don't whittle it down to something single and answerable you will not get the answers you need.)

  • 2
    PS: I forgot to mention that I also have over 30 years of experience and paid developers working for me, and I know a number of users who are active in the C++ tag who would also fit that description. It may seem like this place is an undergrad chat room, but there are plenty of senior devs here as well. – Kate Gregory Mar 3 '14 at 15:43
  • 3
    thank you for a thoughtful answer. My question was whether SO needs to change. I both wanted and got the attention of some fine 10k+ people like yourself, and basically the answer you are giving is No, SO is fine and it is I who need to change. I shall pay close attention to the advice given here, and I hope that the answers will also benefit others (as it should be). I hope you will also keep in mind the possibility that SO may need to evolve too. – david.pfx Mar 4 '14 at 2:55

Not the answer you're looking for? Browse other questions tagged .