I'm surprised/impressed at how quickly they're moving on this whole Stack Overflow concept. There are YC startups that don't seem to be as nimble as Atwood's team. What's the long-term relationship between Atwood and Fog Creek?
SO is only, I think, 3 programmers including Atwood. So I should hope they're nimble. Why they should be any less nimble than a YC startup would never even occur to me.
Spolsky is really more of a silent partner in this (maybe not so silent publicly, but the impression I get from their podcasts is that he is involved only on the business end).
Many people in this community think Atwood is a retard because he writes about stuff he's not an expert in, and because he uses Microsoft products. I venture to guess that many people here think he's not of the caliber of programmer that YC invests in. He has clearly proven them wrong.
I think you're knocking down a strawman; many people don't think he's a retard so much as a mediocre author who writes a sometimes exasperatingly mediocre blog.
None of that means he can't be a brilliant programmer. I'll admit to being a little surprised that SO took off as it did, and I certainly don't think that being relentlessly hyped again and again by both blogs explains all of that success. But I'm not sure why that proves me wrong; am I supposed to start liking Atwood's blog now? I opened it to have another look; the top post starts with a pronouncement that "abstractions are powerful things" (oh God), and then goes on to tediously argue that they invariably leak, but are still powerful things. No thanks.
There's no doubt access to a large audience helped get some publicity and users early on. But to be fair, Stack Overflow worked well and was useful on day one. We've seen startups basically fold on the first day when things don't go smoothly. The site crumbles under load. There's no content on a user-generated-content site. Maybe the thing flat out doesn't work as advertised. Some of them eventually overcome these problems only to be ridiculed for it over the next year. The Stack Overflow launch was handled incredibly well. I would attribute their success to much more than the size of their audience.
That's not being fair, that's being contrary. If StackOverflow was a stupid idea or poorly executed, no one would use it. Yes, they announced it from a pretty tall pulpit, but if no one cared what either of them had to say--for or against--no one would care to read their blogs, either.
Sure, it's being fair. Before we go off and pronounce that "Jeff Atwood has proven everyone wrong," let's keep a few things in mind. Also, having a lot of readership does not prove someone is a top shelf programmer.
To be honest, this is not even something that Joel and, perhaps, Jeff haven't said themselves.
StackExchange is a product of Fog Creek. The end-user sites (SO, serverfault.com and superuser.com) are a joint venture. I assume the deal was that Fog Creek got rights to the hosted version in exchange for funding the development of the end-user sites.
Spolsky and Atwood got talking after Atwood posted a criticism of Joel. I think they pretty quickly started working on this idea after that (I think Joel brought it up with Jeff).
Anyone know of plans for non-profit or educational use? I imagine the folks trying to cure diseases or solve environmental problems could use a tool like this.
I think this is going in my next essay about OSS vs. proprietary software.
Proprietary software: OK, so technically it both exists and works, but it costs money.
OSS: It has only had one man-week of labor in it. The software is not feature complete. However, if it actually worked, it would be awesome because you'd be able to browse your corporate knowledge base on your Wii. Also, it would support browsers without Javascript, because your office is cool and lets workers change things like that.
Successful open source projects -- the ones you use, the ones you love, the ones you have heard of -- are the exception. Projects like this are the rule.
That's not a very interesting observation. Part of the reason that successful open source projects are, presumably, statistically far less than unsuccessful ones is that the barrier to entry in order to start an open source project is basically non-existant.
Any 12 year old who gets an idea for a game can put up a project on sourceforge. However, proprietary software has steeper barrier. Typically, it comes from people in an established company if not an entrenched bureaucracy.
It's more interesting to choose projects that have achieved certain milestones (beyond one man-week of labor as you put it).
As well, there are plenty of proprietary projects that have failed and you have never heard of and never will. Data about failed proprietary projects is much more difficult to find. However, open source projects are almost entirely transparent about that kind of thing.
> Successful proprietary software -- the ones you use, the ones you love, the ones you have heard of -- are the exception. Projects like this are the rule.
FTFY. In other words, most software suck and fail, open source or not, welcome to reality.
Perhaps OSS is stronger because of this phenomenom: only the best projects survive (the ones worth people spending their own time on). Whereas in propietary software, it's up to the bosses what gets made and developers to get paid.
Seems really pricey for a relatively simple software like this. Someone write an opensource alternative? it looks like something that can be thrown together in a weekend.
We have documented evidence in the form of podcasts that it took a team of 3 talented developers about 6 months to build StackOverflow. If you're looking for an order of magnitude estimate for how long it would take to reproduce it, that's it.
How exactly are you planning to reduce an 18 man-month project down to a single weekend of your time?
More generally, why is this attitude so common among programmers? How, in the face of documented proof to the contrary could an intelligent person like the parent still consider a site of the complexity of StackOverflow to be a "weekend job"?
I think it's certainly longer than a weekend, but recreating something that exists is usually easier than doing it the first time. You don't really have to worry so much about how things ought to fit together - you just copy.
And I can't tell you how many doomed Death March projects started with this assumption. "The requirements are done, the design is done, we know it can be done, simply copy what we see there."
The boil it down to a cliché, copying what someone else has built is exactly the same problem as rewriting an existing application from scratch, without the benefit of being able to read the source code.
Rewriting a cross platform browser in C++ is way more difficult than writing something that took a small team 6 months to do. I'm not trying to say that it's a weekend, but have a look at SO. Unless there's something I'm missing, it's not "deep hacking", but more "crank it out" (not to take anything away from that team - they certainly did nice work!). Scaling might be an issue sooner or later, and that would take some more thinking, but the basic thing just doesn't strike me as some Big Hairy Problem.
So, yeah, be wary of "hey, that looks easy!", but don't think things are impossible either.
Rewriting a browser isn't impossible either, as Firefox proves. Perhaps SO is an order of magnitude easier than a browser, but I stand by my suggestion that copying an existing application you didn't actually write is often much more difficult than expected and has led many teams to their doom.
My comparison was "writing something from scratch" vs "copying". If a team has trouble with copying, wouldn't "writing it from scratch" be even more likely to end in failure?
Also, with something like SO - you can pretty much see the models, and how they interact. That's already giving you a lot.
> More generally, why is this attitude so common among programmers? How, in the face of documented proof to the contrary could an intelligent person like the parent still consider a site of the complexity of StackOverflow to be a "weekend job"?
A lot of what makes Stack Overflow successful is the amount of effort they've put into making a great user experience. That's not the sort of thing you just come up with in a weekend. It's a continual process that requires a lot of attention. And let's face it, open source's strong point generally isn't in engineering good user experience.
When I first saw it, I liked the clean look and feel, but hated the "DAVE, I CAN'T LET YOU DO THAT" approach to permissions with regards to comments, votes, and the like. As a beginning user, you had (have? don't know if they've changed it) all these links and buttons that are displayed, but don't let you do anything; they just give you a lame message about requiring N gold stars before you can do that.
"Dave, I can't let you do that?" You do know that SO allows questions and answers from people without even requiring them to log in? They allow content from essentially anonymous users.
The restrictions are along the "meta" parts (voting to indicate the quality of an answer), I think it is entirely sensible to restrict these actions to users who have built up a currency of trust within the SO community.
That being said, I think you are onto to something around the user experience. Perhaps an option shouldn't be shown to someone if they cannot perform it.
That being said, I think you are onto to something around the user experience. Perhaps an option shouldn't be shown to someone if they cannot perform it.
That would be really annoying, because you wouldn't know that these options exist, until you could use them (i.e. you're possibly confused and you don't know what the reward for collecting reputation is.)
Better grey out the things you aren't allowed to do yet, so you can see them and see that you're not there yet - preferably with an explanation of when you will be.
I forgot what the term for this is, but I think it's very often a good way to do it. Stable interface? Something like that.
Let's assume, for sake of argument, that you decide it's okay to write it in ASP.NET MVC, and that I've decided to hand you the StackOverflow source code, page by page, so you can retype it verbatim. We'll also assume you type like me, at a cool 100 WPM (five characters per second[1]), and unlike me, make zero mistakes. StackOverflow's .cs, .sql, .css, .js, and .aspx files come to 96.5k. So merely typing back in source code that already exists will take you five hours if you make zero mistakes and deploy on the same platform they're doing.
Except, of course, you're not doing that. So even assuming that it took you a mere ten times longer to design, type out, and debug your own implementation, that already has you taking more than your whole weekend, even if you stayed up coding straight--and I don't know about you, but I am okay admitting I code considerably slower than ten times slower than I copy existing source code.
Well, okay, I hear you say. Not the whole thing. But I can do most of it.
Okay, so what's most? There's simply asking and responding to questions--that part's easy. Well, except you can't let people upvote their own answers, so you need to block that. And you need to make sure that you don't upvote or downvote a person too many times in a certain amount of time, to prevent spambots. Probably are also going to have to implement a spam filter, too, come to think of it, even in the basic design, and you also need to support user icons, and you're going to have to find a sanitizing HTML library you really trust and that interfaces well with Markdown (provided you do want that awesome editor they have, of course). You'll also need to purchase, design, or find widgets for all the controls, plus you need an administration interface so that moderators can moderate, and you'll need to implement that scaling karma thing so that you give users steadily increasing power to do things as they go.
But if you do all that, you will be done. Except, of course, for the full-text search, espcially the search-as-you-ask feature, and user bios, and having comments, and having a main page that shows you important questions but that bubbles down steadily. Plus you'll want bounties, and handling multiple OpenIDs per user, and having email notifications, and supporting JavaScript-smart tags, and having user-configurable badges (you are going to do user-configurable badges without forcing your user to learn PHP and write hooks, right?), the history of your karma, upvotes, and downvotes. And the whole thing has to scale really well, since it could be slashdotted at any moment.
And we haven't even touched things like supporting upgrades, internationalization, karma caps, CSS so it doesn't look like ass, and all the little things under the surface that no one ever sees, but that you need to run the site.
To be really blunt: anyone in this forum who honestly thinks they can do all that in a weekend is so ridiculously full of himself that I want him very far away from any project that I'm involved with.
"And we haven't even touched things like... internationalization"
Well from one of the recent podcasts it sounds like Jeff is set against doing internationalization. And Joel is showing admirable restraint in not strangling him.
is it me or is it a little bit pricey in the mid range? 1 million page views is nothing, and then you are stuck in a $999 plan without actual traction to monetize.
And there is no reason to be stuck on a $999 plan on a shared server, if for $300 bucks more you can get unlimited + dedicated server.
Seems like the $999 plan should be $499 instead, and the $1299 plan should be $999.
And come to think of it, the pricing seems pretty high. Let's face it, the software is very simple and could be duplicated very quickly. Why pay $999/mo, when you can have a few hackers code it up in a couple of weeks for a few grand.
Hell, someone should do it here, would be a decent startup idea, copy them, but charge $29.99/$59.99/$99.99 for your plans.
Why pay $999/mo, when you can have a few hackers code it up in a couple of weeks for a few grand.
The long road of our industry is littered with the corpses of projects which would only take a few programmers a couple of weeks to program. But technical risk isn't the big worry here for a startup.
Hell, someone should do it here, would be a decent startup idea, copy them, but charge $29.99/$59.99/$99.99 for your plans.
That hypothetical startup would be:
a) Trying to market the product without having a successful reference implementation available and without having Joel & Jeff to bootstrap the reference implementation.
b) Be aimed squarely at the low end of the market. (i.e. penny-pinching pathological customers rather than enterprises for whom $1,000 is inconsequentially cheap if it brings projects in on time) This buys you some very fun customer support duties.
c) Need to sell minimally several dozen companies on a quirky knowledge-base type product per FTE they wanted to support.
d) Get to compete on search advertising with someone who can afford to outspend them ten-to-one for customer acquisition.
The first part, I wasn't talking about building it. I was talking about a customer, who is stuck paying $999-2500 a month, for a product that can be built by a few programmers in a few weeks.
That hypothetical startup wouldn't need to give customer service. You want customer service and like paying large fees? Go to stackexchange, you want a working solution at a huge discount? You come to the hypothetical startup.
Basically its the case of Stackexchange playing the role of a big pricey inbred company, and you giving them the 34signals option
Correct. But the total cost of hiring a programmer is easily estimated as 3*salary. $200k/year is a fairly cheap full-time programmer with overhead.
Don't forget to include all the office space, gym membership, soda, insurance, maternity leave, matching 401(k) contributions, hardware, software, internet access, telephone service, tech support, sysadmins, office managers, etc. necessary to support that one programmer.
>> the software is very simple and could be duplicated very quickly
As is said so many times in what we do, if it's that simple why don't you hire a few hackers for a few weeks, build it, and then compete with them? SE has a very polished platform, unbeatable service (presumably, since it's backed by Fog Creek), and a great sample implementation that you can look at to see exactly how much information is exchanged/value is added to your network. They've also got Joel and Jeff, two very prominent voices in the space.
As for the price point, I don't think they're going for small five-person shops. My guess would be that they've got two markets targeted:
* The internal company knowledge base. In this, they'd be taking a run at a small part of Confluence, and the price point doesn't really matter. If you're in this space, $3K/month is nothing if it makes a production team more efficient.
* Support/community building for a third-party product. Most company support forums are, after all, basically a way for people to ask questions to fellow users/administrators. So why not optimize on a system that's designed specifically around asking and answering questions, as opposed to a form that's meant for discussions? What immediately comes to mind, for example, is BlackBerry third-party software development. It's not bad once you've got the hang of it, but it has a lot of tricky parts to get going and optimize. So RIM would get an SE site going and say "we encourage everyone to ask their questions here, and we'll have a team of a few community relations people hang out here to do what they can." Gives the community a focal point, and in a way that promotes getting things done, as opposed to complaining. Think of it like a version of GetSatisfaction for technical support.
Their terms are so good (45 day free trial, immediate cancel & refund at any time), that I wish I had a use for it that justified the price. Even as a user-support for a software product, it would be cool. Probably cheaper, if you have serious support costs - for example, that (possibly fake) Gates article quoted $500 million per year in support costs. Saving a fraction of that is worth the costs quoted. I'm sure it's similar for other big corporations - and even for internal use.
As for price, you'd be amazed at what corporations will pay for solutions to their problems. This is because you'd be amazed at how much their problems cost them.
Until I clicked on the link, I was excited, as the comments on monetization lead me think they might be providing a marketplace for me to provide for-fee answers to users.
Unfortunately, this is not the case.
As it is, I don't bother to use StackOverflow. My questions would be too esoteric for the audience/format, and nearly all of the questions I see are boring, easily answerable with a search of the documentation. The questions would be less boring if I were paid to answer them, and then I'd be more likely to find a few gems to answer, too.
How much money would make it worth your time? If your expertise is too high / too esoteric for the StackOverflow community, then you should command high prices in the marketplace.
It's doubtful to me that you could appeal to expert users to exchange time for money when it is better leveraged by consulting and entrepreneurship.
This topic comes up quite often on the StackOverflow podcast.
How much money would make it worth your time? If your expertise is too high / too esoteric for the StackOverflow community, then you should command high prices in the marketplace.
$5-$15 per answer would be reasonable given the limited time involvement.
It's doubtful to me that you could appeal to expert users to exchange time for money when it is better leveraged by consulting and entrepreneurship.
I seem to have enough free time to blow a fair portion of it commenting on Hacker News.
Keep money per answer out of this. It's amazing what happens when you keep a site like SO working on social norms and avoiding market norms.
Other than money, how do you prevent an expert-exodus as expert users are deluged with simpleton questions? Amidst a deluge of bad questions, there's little value to remain active, as your own questions can rarely be answered, and users aren't providing interesting questions.
Something else is needed to provide a substitute for that value.
Alternatively, you must prevent the exodus by filtering the kinds of interactions/questions that occur. Mailing lists, for instance, have a barrier to entry to serve as a first-pass filter (the subscription), and then a community to enforce community norms.
Some experts are not only in for the money - they enjoy helping the novice, the less experienced. They're not only in for answering only the most interesting "gems" - a true expert can give a much better answer to a newbie question than an intermediate developer.
Similarly, (most) university professors don't teach for getting rich or just fort the research - they enjoy overseeing and helping the youngest generations of their particular field.
Listen to the StackOverflow podcasts and you'll read why money based answer systems don't work. In fact, this is why they are beating Experts Exchange.
On the other hand, Stack Overflow is racing to the bottom, so to speak, on the quality of questions and the people answering them.
Either way, money is what would entice me to answer questions on the web. Currently I do it for free on IRC, but only because standing community helps ensure that the quality of questions is reasonable on the channels I frequent.
I find StackOverflow very boring as well .. but I don't need to use it much. I've only visited the few times in interest because I always like to find nice technological discussions, but .. so far .. its been pretty "meh".
There haven't been any mind-blowing awesome gems of answers in there that have caught my eye - mostly pretty mundane things, content-wise, and as a programmer looking for an interesting community, I don't really get that vibe from it much at all.
To me it just seems like a place for kids to go and get their homework done for them by lonely strung out alpha dogs looking to place some authority in the world.
For me, sites like this will never replace the good ol' USENET groups and subsidiary mailing lists. Once again (as is the case with Twitter), a web site springs up to try to capture an audience from the pool of people who are just not competent enough with E-mail to manage it properly and exploit the results ..
I disagree. There is always something to be learned from Stackoverflow. It is impossible that 1 person has the same knowledge of all the users on the site. There are very interesting questions and answers.
Are there allot of simple questions? Yes because there are many people just learning how to do basic things in one language or another. However even in the most basic question answering it can be an worthwhile experience. You can filter out the simple questions and get on to the more advance ones pretty easy.
Programming is boring; unless it's not.
If you have something to say on a non-trivial subject, you better write an article.
Stack Overflow deals with boring, gadfly-style problems. You can get some specific bits of knowledge there, not the wide-spectrum wisdom.
I've long thought that a StackOverflow for photographers would be a great resource... but not a business. Unfortunately, the StackExchange pricing assumes that you will be a revenue-generating because no one can justify $129/month on running a free resource.
Photographers are actually a really monetizable audience compared to most. Sign up with the right affiliate program, and a single sale could cover that $129.
I was thinking the same thing ... but I think you could monetize it ... at least I think I could (by putting links to our products on the side, I could make up the hosting cost easily).
This is great. I was hoping this would happen since so much microdocumentation is only ever shared between team members on large projects and is not easily available to new members.
On the other hand, I guess the idea they mooted early on of going open source is dead now.
I'd say its possible to do this using Drupal in 2 weeks.
Oh, wait, did you say "3" talented developers?
Please, less than a week then. Drupal already has ready-made modules for this type of functionality. All you need is to throw 'em together. The price is too high, sorry.
Supose that i'e an idea to build a community using StackExchange. How can I monetize it to pay U$S999 a month once I pass 1mm pageviews? It's quite hard!
The segmentation between 'shared' and 'dedicated' hosting is bizarre -- aren't you paying them not to have to care about that?
Furthermore, it leads me to think poorly of their software -- did they really manage to fuck up something as embarrassingly parallel as responding to HTTP Requests? Maybe it's just that their MS toolchain is ignorant of the possibility...
There's nothing bizarre with it in my opinion - it's easy to understand, even for non-technical people, who are likely to make the decision at Big Enterprise whether to buy Plan A or Plan B. I don't see how a marketing decision such as this could give any insight into the efficiency and quality of their implementation of HTTP request handling.