Introducing Stack Overflow Documentation Beta
blog.stackoverflow.com
blog.stackoverflow.com
As the author of an open-source project, I try my best to write a great documentation, and I would be a bit annoyed if people started to add examples to StackOverflow just to gain reputation there instead of contributing to the "official" one.
Also, SO is ranked way higher than the smaller-projects' documentation on search engines, pointing developers there. This can be problematic, for example, if a big release comes out and the SO documentation is behind.
The documentation for a lot of projects is really bad, I know, but I prefer a solution which doesn't disrupt the work of the mainteiners which writes good and extensive documentation.
When I pointed this out, I was berated for not understanding that Stack Overflow is trying to become the canonical source. Sure enough, a few weeks later, the top hit on Google no longer pointed at the official documentation. It pointed at that same Stack Overflow question, with a half-assed answer that only gave a fraction of the information the real documentation did.
I appreciate Stack Overflow for its strengths, but it's harmful too. Being able to go directly to the canonical source of information for a product and do your job without anybody spoon-feeding everything to you is a vital developer skill, and I'm seeing more and more people who won't bother to lift a finger unless somebody does half their work for them. This project seems like it will push the developer community much further down this path.
I also don't think there's a problem of spoonfeeding information to developers. If a developer at Company X tries to solve all their problems via StackOverflow questions, waiting for someone to come save them, I'd have to assume that this would manifest as them being blocked all the time. At that point, it's up to their lead to teach them and hold them accountable for exercising other ways of resolving their problems, including RTFM.
> it's fine to link to external sources, but the same basic "content should stand on it's own"-guidelines apply (so no link-only examples and the like)
- http://chat.stackoverflow.com/transcript/117558?m=31845619#3...
Which is pretty standard advice on Stack Overflow; we spend an awful lot of time cleaning up broken links that were probably pretty useful at one time, but...
Disclaimer: I work for Stack Overflow and also really hate broken links.
If the canonical documentation is more helpful to more people, it should rank higher. If Stack Overflow Documentation is more helpful, _it_ should rank higher.
It doesn't hurt to try to create a resource that might end up being more useful to more people. But until it really is, it needs to be ranked as so.
For example, Flask [1] has a great and complete documentation, but still someone is starting to duplicate it on SO Docs. Why are we wasting time duplicating things instead of improving what's already there?
It's only the first day, and there are a lot of people scribbling, but there are also a lot of eyeballs on it (user review of edits is how Docs works). Hopefully over the long run we can keep a lid on this kind of information smearing.
The official docs are the reference (and at best some common questions are answered). Stack Overflow is a Q&A site. It doesn't replace the docs; it complements them.
The new "Documentation" section on stackoverflow is just categorized code examples created and ranked by the community. It doesn't replace the docs too. Though It is not clear how the Documentation feature will evolve and whether it will be as useful as the Q&A part.
I see this on SO a lot. Some developers just have different experience levels, and are better/worse at searching through docs.
Most work has already been done. Sounds like a good quality to have.
Instead of having some innovation when it comes to spammers, wikipedia and stack overflow punish the original content creators.
http://meta.stackexchange.com/questions/111279/remove-nofoll...
("Starting today we will be removing nofollow on links within posts that hit a high enough threshold to be considered reputable. The details will remain somewhat vague at the moment to discourage gaming of this feature.")
- [Upstreaming content on Stack Overflow Documentation - Meta Stack Overflow](http://meta.stackoverflow.com/questions/328438/upstreaming-c...)
And the point of the whole feature is to document things without good canonical (or non-canonical) documentation:
- [Creating a topic which already has good official documentation - Meta Stack Overflow](http://meta.stackoverflow.com/questions/328569/creating-a-to...)
Now I have to duplicate onto another community-maintained Wiki? This is only going to ask for problems. I don't really say "have to" lightly - StackOverflow is most definitely going to yield better search results in the long run.
Now I need to resist the urge to just Google the question, I need to exert effort to find the documentation and make it handy.
The most important reason for me at least: The great RTFM famed man pages are the worst place to learn anything about how to use a particular tool for a newcomer because most of the times man pages lack good and varied examples.
To quote Einstein, "Example isn't another way to teach, it is the only way to teach." - Albert Einstein [1]
I have suffered endless time trying to learn things from man-pages. Spent time asking questions on forums until the expert people there saw the need to give some examples and offered help. I also thank them all.
SO documentation can add much needed value for the newcomers here as experts can add examples and newcomers can find them at one place.
This one is the greatest reason I support efforts like SO documentation project. Of course, I don't underplay the great work the open/free source contributors are doing. It may be the case that the great experts, may not find time to write down examples that a newcomer may need and the needs vary from one newcomer to another: One size doesn't fit all.
The distributed crowd-sourcing model nature of SO can tackle this problem in a much better way, unless the truly open efforts like archive.org or gnu.org come ahead with hosting solutions like this.
[1] http://www.alberteinsteinsite.com/quotes/einsteinquotes.html
I think though the efforts spent on duplicating documentation on SO is just wasted: why don't you contribute back to the canonical one? Usually maintainers are just happy to merge new documentation chapters or examples.
So, two possibilities: either something revolutionary I didn't fully grasp yet — or Examples, not Documentation.
For now, I much prefer the model of Go docs, MSDN, or PHP manual with user comments — if talking about docs.
1. The UI needs some refinement. I was looking to find a topic to post about and from my 10 minute browse I realised that if I was meant to find information in this documentation it's really hard to find what you are looking for. After you drill down to a tag it feels "unstructured". Readthedocs layout feels more user-friendly.
2. To future proof the documentation examples should come with a version number they apply to. For example there is PayPal and DropBox API examples which in a few months might no longer be valid.
Any profits that get made off this "documentation" (i.e. incoherent bag of examples) will not flow to the community or company behind the software in question. It's a parasite, leeching off the success of other projects which it neither created nor cares about.
How did they get corporate partners for their launch? That's easy. It looks to those companies like free labor.
You're forgetting that it genuinely helps other people in your industry. Stackoverflow is an amazing resource for programmers, pretty much every question I type into google relating to a library or some software comes up with 3 or 4 stack overflow links that actually help me. If they can take the masses of questions which basically form ad-hoc documentation for tonnes of projects and put them in a cohesive place then how is this a bad thing? Because people don't get paid $0.01 per post or something?
Perhaps any advertising revenue from the docs site could go towards something good, would this be better?
My StackOverflow profile helped me get a new job with a good payrise. It's also helped me a better developer.
I'm absolutely ok with them making a profit, and they're a hell of a lot more ethical and useful than what went before them.
Except, who does that? Let's face it, most of us would rather be coding than writing docs. Consequently, a large number of high-profile projects (I won't name names) have surprisingly crap documentation. If SO can find a way break that spell, more power to them.
The worst part, imho, is moderators not getting a dime for all the work they do.
They're the ones that really run the Stack Exchange sites.
But other people's answers will help you solve your problem and earn your pay.
A month or so ago I was stuck on a problem and thought I'd go through a tag for something I'm familiar with, and submit some answers to try and get enough points to be able to fully use the site.
One answer had a new programmer following a tutorial and using an old method signature. I commented that the tutorial he was following is out of date, and listed the correct method to use.
The person downvoted my answer, and then pasted (basically) the same code as the answer to his own question and accepted it. I know I just had bad luck in this case, but it's pretty frustrating.
Not allowing a user with low points to do some functions makes sense, but let them submit content and allow other users to determine if it's useful. I could have (and wanted to) comment on dozens of answers, which would of helped out a lot of people and saved them time/frustration.
I've contributed a little to the Swift tag but the real advantages come from technologies that don't already have good documentation.
I'm considering starting a tag for the enreco HTML -> PDF generator I use quite a lot as the official documentation isn't great.
What is that? Googling it only brings up this comment thread.
For whatever reason I answer many (most?) of the WebGL questions. At some point I felt I needed to make longer form answers with better working examples so I made http://webglfundamentals.org
But, now there's this huge conflict. I spent a couple hundred hours on making webfundamentals.org but when someone asks a question on stack overflow I'm not supposed to just link to whatever I wrote. I instead I'm supposed to effectively transfer all my content to SO. Something about that just feels wrong. SO is making money from the content I created which feels a little weird (yes I know I get other people's content back). Also, while I get that SO's gamification is part of what has made it so successful it's also feels like it turns many things into a competition. I try to tell myself don't worry about those points I'd be lying if I said they didn't affect me at all in various ways.
Taking all that and adding to documentation, as an example, when I contribute to MDN I feel like I'm doing something purely positive. But if/when I contribute to SO Docs I already know I'm not going to feel the same. One reason is because SO Docs will be making money from my work. The only thing I get in exchange is some "score" on my name I can maybe use to get a job. Maybe that's a fair trade since I don't get a score on MDN?
I'm not sure how to make my point. I love that I find answers on SO but something just doesn't feel right and I don't know how to express it.
I only wish it were organised a bit more like normal documentation - i.e. into classes and methods. Might make it easier to find things.
Edit:
Apparently they do it already: http://genius.com/web-annotator
Anyone know of a similar solution that's available now?
[0] http://meta.stackexchange.com/questions/16054/is-the-stack-e...
Getting people to document things on the infra side is deplorable in general and I would love to try anything that helps improve that.
That said, I still hope they output some sort of GitHub repo of all the accepted changes to make it a bit less walled-gardeny. A CC license is nice and all, but having the content in a repo as well would put my mind at ease.
If for some reason Documentation doesn't really take off or work and we end up scrapping the project, we'll produce a final dump of all content at that point.
- is it viral when compiled into a binary, or when used in scripts?
- how to attribute?
I've had my experience with them so I get where you're coming from, but you can't say StackOverflow isn't a great resource and perhaps in part because of them. I'm sure and am glad they will have their share in the documentation part as well.
Or tell me about where people are using it to discuss every question that is not fit for SOs questions/answer format.
I think PHP is going to be documented really well, I anticipate hundreds of wonderful examples how to get a substring or format a date-time from MySQL query result.
I doubt there will be much content outside of that.
It should not be used to add redundancy. And it should not be used to accumulate cruft that doesn’t belong in any manual or list of examples. People have already gone for low-hanging fruit; for instance, do we really need examples of how to initialize a list?
It would be nice to have an API for this so that my IDE can pull these examples.
The idea is to build up libraries of examples in different areas, allow easy code sharing and to remove some of the cruft needed. It's good to see stackoverflow hit this "code examples" area better.
I am interning at Sourcegraph and we have heard devs want better usage examples too, so we automatically show all uses of any function
check out: -https://sourcegraph.com/github.com/golang/go/-/info/GoPackag... - https://sourcegraph.com/github.com/golang/go/-/info/GoPackag...
I really wish that we as a community would spend more effort towards better, decentralized systems.
The idea is to build up libraries of examples in different areas, allow easy code sharing and to remove some of the cruft needed. It's good to see stackoverflow hit this "code examples" area better.
Will updated examples be run through a program testing them in some way? If not a full run within a playground-style environment, then through a type checker?
And will the examples be tagged with version numbers? Some programming languages are notorious for changing syntax and/or semantics between minor versions.
To "do the same thing for docs that we did for Q&A"? Yeah, except there just was no sane platform for Q&A before. And for docs there is, you know… the docs!
It has three mode: forum, Q&A (clone of SO), share links (like HN)
Couldn't find blog.stackoverflow.com The Q&A site blog.stackoverflow.com doesn't seem to exist…yet.
You can vote for it to be created through our democratic, community-driven process at area51.stackexchange.com, or see a complete directory of all our Q&A sites at stackexchange.com.