Traditional search engines and forums fail on engineering queries by indexing obsolete and unverified code, whereas crowdsourced reputation and public wiki editing deliver authoritative programming answers within minutes.
Within six months of its launch, Stack Overflow scaled to over 3 million monthly unique visitors, 16 million page views, and 800,000 posts, capturing an estimated 30% of all professional English-speaking programmers worldwide. (28:35)
Rather than relying on direct navigation, 86.6% of Stack Overflow's incoming traffic originates directly from Google search queries, validating an architectural approach where the site assumes Google is its true homepage. (23:44)
The entire platform runs on a lean infrastructure consisting of only two production Microsoft servers (one web, one SQL Server 2008) managed by a core four-person team. (24:56)
Over 90% of technical questions asked on the platform receive a community-validated, positively upvoted answer, typically resolved within minutes of posting. (14:59)
Detailed notes
## Background
Published by Google TechTalks on YouTube on April 29, 2009, this presentation features Joel Spolsky discussing his newly launched programmer Q&A platform, StackOverflow.com. According to the description, searching for technical programming solutions was historically plagued by stale forum threads, cloaked paywalls, and wrong answers, prompting Stack Overflow to combine voting, public editing, and game mechanics into a successful Q&A service reaching millions of monthly developers.
## TL;DR
Joel Spolsky explains why traditional search engines and chronological forums continually fail software developers by surfacing obsolete, wrong, or paywalled answers. To solve this, Stack Overflow combined Reddit-style upvoting, Wikipedia-style collaborative editing, OpenID authentication, and Xbox-style reputation badges to turn obscure technical inquiries into definitive canonical references. He details the site's rapid traffic growth—primarily powered by organic Google search queries—and defends running high-performance operations on a lean Microsoft stack using just two servers. Concluding with a lively Q&A session, Spolsky shares insights on avoiding full software rewrites, why consumer sites fail without technical affordances, and the broader economics of tech recruiting.
## Atmosphere & style
The presentation carries a sharp, self-deprecating, and witty energy as Joel Spolsky banters comfortably with an auditorium of Google engineers. It feels like an intimate masterclass blending urban anthropology, product design, and candid technical war stories, punctuated by playful jabs at Big Tech compensation and proprietary development stacks. The mood remains lively and conversational, shifting effortlessly between pragmatic architectural insights and humorous improvisations during audience cross-examinations.
## Bulletin
- [28:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1715s) Within six months of its launch, Stack Overflow scaled to over 3 million monthly unique visitors, 16 million page views, and 800,000 posts, capturing an estimated 30% of all professional English-speaking programmers worldwide.
- [23:44](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1424s) Rather than relying on direct navigation, 86.6% of Stack Overflow's incoming traffic originates directly from Google search queries, validating an architectural approach where the site assumes Google is its true homepage.
- [24:56](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1496s) The entire platform runs on a lean infrastructure consisting of only two production Microsoft servers (one web, one SQL Server 2008) managed by a core four-person team.
- [14:59](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=899s) Over 90% of technical questions asked on the platform receive a community-validated, positively upvoted answer, typically resolved within minutes of posting.
## Key takeaways
- [00:22](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=22s) Search engines fundamentally fail expert programming queries because PageRank cannot evaluate the technical correctness or freshness of solutions to obscure edge cases.
- [03:19](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=199s) Digital interface design must function as cultural anthropology, shaping user behavior and social norms through subtle interface affordances much like physical urban architecture.
- [05:49](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=349s) Existing technical knowledge resources suffered from severe failure modes, including search-engine cloaking paywalls, forced registration roadblocks, and chronological forum threads that freeze obsolete or vulnerable code forever.
- [13:29](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=809s) Stack Overflow solves answer ranking through Reddit-style community voting combined with the original questioner's exclusive authority to mark a definitive accepted answer.
- [14:59](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=899s) Multi-dimensional tagging replaces rigid Usenet-style hierarchies, allowing personalized feeds and algorithmic routing of obscure queries directly to proven domain experts.
- [17:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1030s) The platform utilizes a Wikipedia-style collaborative editing model to transform long-tail forum questions into living, canonical reference documents.
- [20:13](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1213s) Financial micro-payments distort community dynamics, whereas gamified reputation points (karma) and video-game style badges effectively incentivize high-effort technical contributions.
- [22:33](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1353s) An automated pre-search tool within the question submission field queries existing databases in real time, preventing duplicate questions before they are published.
- [24:56](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1496s) A compiled Microsoft stack using C# and SQL Server 2008 allowed Stack Overflow to operate on roughly one-tenth the hardware required by comparable open-source stacks.
- [26:31](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1591s) The team avoided 'empty restaurant syndrome' at launch by leveraging the pre-existing readerships of the founders' popular programming blogs and building features publicly on a podcast.
- [45:25](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2725s) The platform relies on Community Wiki mode to strip author attribution and reputation gain from viral or excessively edited posts, preventing users from gaming the karma system.
- [38:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2294s) Rewriting an established software product from scratch is the cardinal sin of software engineering, as demonstrated by the catastrophic delays suffered by Netscape and Perl 6.
- [50:40](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=3040s) Executing user code directly inside the browser offers minimal utility to most developers because client sandboxes cannot support the server-side, database, and systems languages that form the bulk of questions.
## Detailed walkthrough
### [00:22](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=22s) Introduction and Opening Banter at Google
Chris, head of the open-source group at Google, opens the session by welcoming the audience and recounting the reaction when Allen set up the talk announcement. He received an flood of emails, including one amusing note remarking on Joel Spolsky traveling all the way out, and another engineer immediately asking, “Can we get a copy of StackOverflow for our internal use?” Chris directs employees wishing to ask questions—including remote Googlers video-conferencing in from roughly 700 global offices—to submit them through the internal moderator page.
Taking the stage, Joel begins with self-deprecating banter about Google’s high-tech facilities, joking that he feels the room's cameras and scanners are attempting to upload his brain to run searches for the best sushi in Palo Alto for the rest of his life. He introduces himself and points out Michael Pryor, his co-founder at Fog Creek Software in New York City, where they have spent eight years building FogBugz project management and bug-tracking software. Joel then introduces Stack Overflow, a programming question-and-answer platform he launched alongside blogger Jeff Atwood of *Coding Horror*.
Joel frames the core premise of the presentation around why existing search engines fall short on expert programming queries. While search engines excel across broad informational topics, they struggle when a user needs a definitive, authoritative answer to a deep engineering challenge. As Spolsky explains his motivation: “I actually feel like search engines are kind of failing in a particular realm of expert questions and answers where something you could ask an expert and the expert would be able to give you a true and correct answer.”
[03:19](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=199s) UI Architecture as Cultural Anthropology: The Spanish Steps
To explain why existing websites fail, Joel draws a comparison to sociology and urban anthropology. Human behavior within an environment is deeply shaped by subtle physical affordances, often without conscious intent. As a classic architectural example, he points to the Spanish Steps in Rome, constructed to link the Bourbon Spanish Embassy at the bottom with the Trinità dei Monti church at the top. Despite being designed purely as a pedestrian thoroughfare, the steps became an iconic open-air gathering space and living room for backpackers on gap years because the risers are the exact comfortable height for sitting, the wide flight prevents seated people from blocking traffic, and the vantage point offers an expansive vista of the piazza below.
Joel argues that software design has transitioned beyond traditional human-computer interaction into human-to-human interaction. In an era dominated by social networks, community software, and the web, developers can no longer focus solely on simple button usability; they must act as cultural ethnographers who understand how interface rules govern human conduct. As Joel emphasizes: “The environment that you create influences people and how they behave, and similarly the user interface you create for your applications will influence how people behave and you have to think about it as an anthropologist to be able to do a good job.”
```mermaid
flowchart TD
accTitle: Environmental Design Shaping User Behavior
accDescr: Diagram contrasting physical architectural affordances of the Spanish Steps with digital interface affordances in community design.
subgraph Architecture["Physical Environment (Spanish Steps)"]
A["Low, Wide Steps & Great View"] --> B["Unintended Public Living Room"]
end
subgraph Digital["Digital Environment (Q&A UI Design)"]
C["Interface Mechanics & Incentives"] --> D["Spontaneous Community Culture"]
end
```
[05:49](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=349s) Surveying the Broken Q&A Landscape
When planning Stack Overflow in early 2008, Joel and Jeff Atwood analyzed the mechanics of existing Q&A products to understand why their social environments degraded. General-audience platforms like Yahoo Answers devolved into low-effort adolescent inquiries—epitomized by internet memes like “How is babby formed?” or absurd biology questions like “What eats the ants if I squish?” Meanwhile, Jason Calacanis's Mahalo Answers introduced micropayments, creating a mercenary atmosphere filled with low-quality, scammy incentives aimed at earning virtual dollars or scoring five-dollar haircut coupons.
Traditional technical communities were not faring much better. Standard bulletin boards built on phpBB architecture buried technical insights in flat, chronological forum threads padded with noise and signatures. Worst of all was the paywalled engineering site Joel refers to simply as “the hyphen website” (Experts-Exchange). That platform practiced search-engine cloaking: it served raw question-and-answer text to Googlebot so its pages would capture top search rankings, but presented everyday web searchers with aggressive paywalls and deceptive prompts demanding credit cards and bank loans just to reveal the obscured solutions. Amazon’s Askville suffered from a different structural flaw: by placing a giant question-submission box front and center, it over-encouraged asking questions while providing no compelling mechanics to incentivize experts to answer them.
- **Yahoo Answers:** Dominated by frivolous user inquiries and poor-quality crowdsourced contributions.
- **Mahalo Answers:** Distorted by micropayments, turning community participation into coupon hunting and micro-bounties.
- **phpBB Forums:** Cluttered, chronological discussions that failed to highlight the single correct resolution.
- **Experts-Exchange ("The Hyphen Site"):** Utilized search-engine cloaking to lure Google users into registration paywalls.
- **Amazon Askville:** Asymmetric UI emphasizing asking over answering, producing vast backlogs of unanswered queries.
[08:20](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=500s) How Technical Search Fails: Paywalls, Gated Access, and Dangerous Answers
Spolsky outlines the specific timeline of Stack Overflow: conceived in early 2008, coded starting around April 2008, launched into private beta and released by September 2008, and rapidly climbing to six million unique visits per month within its first six months. The entire system was engineered to correct the structural failure modes of searching for software code on the open web.
Search engines frequently fail technical queries because spiders struggle to parse technical syntax, such as identifying when a search term like `LI` refers to an HTML list tag rather than an English word or abbreviation. Beyond search parser limitations, Joel enumerates the primary dysfunctions that plague technical search results:
1. **Sign-up Scams and Cloaking:** Aggressive monetization sites bait searchers with indexed solutions, only to hide the answer text behind membership walls.
2. **Registration Roadblocks:** Communities like SQLServerCentral interpose artificial friction, forcing users to register before viewing forum posts and needlessly destroying public accessibility.
3. **Pervasive Wrong Answers:** Search ranking algorithms reward keyword density and recency over technical accuracy. Consequently, search engines continually surface insecure workarounds—such as advice telling engineers to resolve network or permissions bugs by entirely disabling firewalls—or out-of-date practices that introduce critical vulnerabilities into production codebases.
As Joel puts it when identifying the core search hazard: “Search engines get you a lot of wrong answers when you search for highly technical questions and that's the biggest problem.”
[10:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=610s) The Failure of Forum Discussions and the Obsolete Search Dilemma
Traditional forum software fundamentally fails software developers trying to solve technical problems because it preserves discussion threads as frozen, unchangeable artifacts. When sample code contains security flaws like Cross-Site Scripting (XSS) or SQL injection vulnerabilities, a developer discovering it via search has no ability to fix it or warn others because the original exchange took place years earlier. Tricky problems face an equally frustrating failure mode. For example, in the well-known interview puzzle of implementing `Rand(7)` using `Rand(5)`, the web is flooded with incorrect solutions. Joel Spolsky notes that this makes it an effective interview question for college graduates—because candidates who simply memorized an unverified forum answer will repeat a flawed solution—whereas Stack Overflow actually surfaces the correct mathematical answer.
```mermaid
flowchart TD
accTitle: Traditional Forums vs Stack Overflow Lifecycle
accDescr: Diagram contrasting how traditional forums freeze obsolete or incorrect information compared to Stack Overflow's continuous community curation.
subgraph Forum["Traditional Forum Thread (Web 1.0)"]
F1["Question asked (e.g., in 2004)"] --> F2["Unranked, guessing answers & vulnerable code"]
F2 --> F3["Thread frozen forever"]
F3 --> F4["Search engines boost page based on age"]
end
subgraph SO["Stack Overflow Approach"]
S1["Long-tail technical question asked"] --> S2["Voting ranks best answers rapidly"]
S2 --> S3["Asker accepts definitive solution"]
S3 --> S4["Wikipedia-style community editing keeps content fresh"]
end
```
In the typical forum experience, developers encounter endless strings of people guessing—asking "Have you tried this?" or linking to half-relevant articles—forcing the reader to blindly test each snippet in the dark until something miraculously works. Search algorithms cannot lean on traditional PageRank to evaluate these answers. When an obscure technical question applies only to an edge case on a niche platform, perhaps only a hundred developers worldwide will ever search for it. No one writes external blog posts linking to the correct sub-thread answer, meaning normal authority signals never accumulate. Search engines compound this by favoring older pages under the assumption that older domain presence implies stability. In software, this preference for age leads to completely outdated information:
- Search queries on building iPhone apps routinely surfaced obsolete forum threads insisting that native third-party apps were impossible and that developers could only make web apps in Mobile Safari—an assertion that was true for only a single year.
- Searching for interior photography on Google yielded a top result written by Phil Greenspun from an era before digital cameras existed.
- Search queries diffuse across countless synonyms and alternate phrasings, making it difficult for developers to match the arbitrary terminology used by the original author.
As Joel Spolsky summarizes: “You have no choice but to try every answer and see if it works usually in the dark until you accidentally kick upon something that works so there's, there's, there's no PageRank among answers to highly technical questions.”
---
[13:29](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=809s) Social Engineering: Voting and Community Consensus
To overcome the architectural shortcomings of forums and search engines, Stack Overflow implemented nine social engineering building blocks designed to make the platform anthropologically sound. Spolsky openly admits that none of these individual mechanisms were brand-new inventions; rather, they were shamelessly borrowed from successful implementations elsewhere on the web, with the voting mechanic directly inspired by Reddit. Under this model, high-quality answers are rapidly voted up by the community, often surfacing the correct resolution within minutes. Even on newly submitted questions, community consensus emerges quickly, with solid answers accumulating strong positive vote totals in less than an hour.
To balance community consensus with the individual questioner's original intent, Stack Overflow introduced a crucial modification to pure vote sorting: the original author holds the exclusive privilege to mark one response as the accepted answer. The accepted answer is pinned to the very top with an official checkmark, regardless of whether another answer gathered more raw upvotes. Spolsky shares an example where an original poster accepted an answer with 26 votes because it specifically resolved their unique environment issue, even though a competing answer had accumulated 78 community votes.
As Joel Spolsky observes regarding the power of crowd curation: “Voting is the idea that you vote up the answers that are good and it's actually astonishing on Stack Overflow how quickly the voting gets you the right answer because other people come in and vote up the right answers and this happened--this is a question that was asked an hour ago and within an hour that number one question already had nine votes.”
---
[14:59](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=899s) Smart Categorization: Tagging and Expert Routing
Rather than forcing technical topics into rigid Usenet-style hierarchical category trees, Stack Overflow relies entirely on multi-dimensional tagging. Programmers typically assign two or three natural tags to specify language, framework, and context (such as distinguishing a VB.NET question from a C# question). This metadata prevents programmers from wading through irrelevant solutions from other technical ecosystems and allows users to build personalized dashboards focusing strictly on the technologies they care about, while adding ignored tags to permanently hide topics they never want to see again (such as.NET programming).
Beyond user filtering, Stack Overflow leverages these tags algorithmically to route questions to proven domain experts. Spolsky illustrates this with his own career background: having managed the macro language strategy for Microsoft Excel and created Visual Basic for Applications (VBA), his technical knowledge in that area is deep, even if VBA is considered an older programming environment. Because he selected the VBA and Excel tags and repeatedly answered questions about them successfully, Stack Overflow identifies him as a subject-matter authority. When an obscure Excel VBA question arrives, the engine pushes it directly to his view so it gets answered quickly:
- Intelligent tag routing and user profiling allow Stack Overflow to achieve a success rate where more than 90% of questions receive an accepted answer.
- Users can customize their feed to isolate niche ecosystems (such as Python) or mute frameworks entirely.
- The platform dynamically identifies who can resolve rare programming questions based on demonstrated historical competence rather than self-reported interests alone.
As Joel Spolsky puts it: “Whenever there is a question on Excel VBA, Stack Overflow is going to try to show it to me because that's the best way they can get it answered.”
---
[17:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1030s) Wikipedia-Style Editing and Canonical Problem Solving
The third building block is collaborative editing, designed to prevent programming answers from becoming obsolete artifacts. In traditional forum software, when a thread finishes in 2004, it stays frozen forever; typos remain uncorrected, security vulnerabilities stay unpatched, and outdated APIs stay broken. Stack Overflow adopts the Wikipedia model, treating every single long-tail programming problem as a living, editable encyclopedia entry. Any qualified member of the community can click edit to clarify an ambiguous question, correct sample syntax, or update an answer to modern platform standards.
This crowdsourced editing mechanism is sustained through reputation incentives. Spolsky highlights a contributor named Martin who initially fired off a hasty, two-line answer advising another user to utilize an established tool rather than "roll your own" (misspelling "roll" as "role"). Disappointed that his short remark was not collecting reputation points, Martin returned two days later to radically expand his answer with comprehensive code samples. Other community members stepped in to fix his spelling mistakes and polish the formatting. Through this cycle of self-interested reputation seeking and public editing, Stack Overflow aims to construct the web's definitive canonical repository for every narrow programming problem.
As Joel Spolsky explains regarding the platform's ultimate ambition: “And our hope is that a large body of the questions that are in Stack Overflow will become the canonical place on the internet to learn about very, very narrow specific questions about very, very narrow and specific programming topics.”
[19:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1150s) Badges, Colored Ribbons, and Credibility
To encourage users to perform the specific behaviors that keep the site running smoothly, Stack Overflow borrows heavily from the achievement models found in modern video games like the Xbox 360. Joel Spolsky cites Napoleon Bonaparte’s observation on human motivation: “a soldier will fight long and hard for a little piece of colored ribbon.” Rather than offering cash, the site awards users digital ribbons and badges for completing positive actions.
Looking at his own profile on the site during the presentation, Spolsky points out his reputation score of 4,800 points alongside icons showing 15 silver badges and 28 bronze badges. These markers follow a user everywhere their name appears across the site, functioning as instant proof of community credibility and expertise. Furthermore, they trigger a completionist instinct among programmers, who actively pursue specific tasks just to collect every badge in the system. As Spolsky jokingly points out to the audience, anyone watching can obtain every single badge available on the site, except for the “Beta Tester” badge, simply because the beta period has already ended.
[20:13](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1213s) Why Micro-Payments Fail: Karma and the Wikipedia Model
Addressing the economic philosophy behind user motivation, Spolsky explains why micro-monetization schemes consistently fail on community platforms. He points to Google Answers and Mahalo Answers as casualties of the mistaken assumption that people can be bribed with small financial payouts to answer questions. While users will turn down trivial amounts of money, they will happily work for nothing when motivated by community and altruism. As Spolsky notes of his own professional time: “If you ask me how much it would cost to provide a day of my consulting, there is no price but I've spend at least a day answering peoples questions on StackOverflow.”
Trying to clear a question-and-answer market using what Spolsky calls the “ECON 101 management method”—offering a dollar, then bumping it to two dollars when no one bites—fails because market mechanics do not clear at such negligible amounts. In contrast, Stack Overflow uses “karma” (reputation points), earned primarily when other members upvote a user’s questions and answers. Reputation operates as a progressive human CAPTCHA: new users cannot comment on or edit questions until they have earned minimal karma by posting something useful. Spolsky also actively encourages a curated, Wikipedia-style approach for users who want to earn fast karma:
> “Look at the top 5 answers and merge them into one big glorious answer that just created from those top 5 answers, you're allowed to cut and paste.”
By pulling together disparate partial answers, editing them thoroughly, writing sample code, and validating that code, contributors earn massive upvotes while transforming chaotic forum threads into singular, canonical references.
[22:33](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1353s) Pre-Search and Eliminating Duplicate Questions
Traditional developer forums are plagued by endless duplication, where new users post the same solved queries repeatedly and veteran users reply with hostile links telling them to search the archives. To stop this cycle, Stack Overflow introduced an integrated pre-search mechanism directly into the question composition workflow.
```mermaid
flowchart TD
accTitle: Pre-search and Deduping Flow
accDescr: Diagram showing how question entry automatically searches existing questions to deduplicate content before posting.
subgraph AutoSearch["Background Pre-Search"]
B --> C["Extract probable keywords"]
C --> D["Query existing questions in SQL Server"]
end
subgraph Outcome["Resolution"]
D --> E["Present matching answered questions"]
E --> F["User finds existing solution immediately"]
E --> G["If truly novel, user proceeds to post"]
end
```
When a user types a title and presses tab, the system identifies likely keywords, executes a fast background search against existing posts in Microsoft SQL Server, and presents matching questions right below the box. Spolsky became convinced that Stack Overflow was destined to work on the second day of the private beta through personal experience:
> “I typed the programming question in, in the title I hit tab and I saw the question already been asked.”
Upon clicking through, he discovered the question had been asked only eight minutes earlier, multiple people had already replied, the community had voted on the responses, and the top-ranked submission solved his bug instantly.
[23:44](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1424s) Designing for Search: "Our Homepage is Google"
Rather than treating search engine optimization (SEO) as a superficial afterthought or a set of marketing tricks, the team architected Stack Overflow from the ground up under a single core premise: its true front door is Google.
> “We designed our site with the assumption that our homepage is Google.”
Recognizing that working programmers rarely visit forum homepages to browse questions, the site was tailored to match inbound search engine queries:
- Clean, permanent URLs that include the human-readable question title.
- Fully implemented meta tags, sitemaps, and standard search-engine friendly markup.
- Site analytics confirm this architectural focus: 86.6% of all inbound traffic arrives directly through Google queries.
- Direct visits represent a much smaller secondary contingent of dedicated community members who hang out on the site continuously.
- Competitors barely register in comparison; Microsoft’s Live.com represents an inexplicable 0.2% of total inbound visitors, leading Spolsky to shrug, “I have no idea why it's only 0.2% of our visitors, it doesn't really make sense, oh well.”
[24:56](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1496s) The Microsoft Stack and High-Performance Economics
Because speed and responsiveness are crucial to developer engagement, Stack Overflow was engineered for extreme performance. Despite presenting to an audience of Google engineers who lean heavily toward Linux and open-source tooling, Spolsky defends the choice to build Stack Overflow on a Microsoft stack using compiled C#.
The site serves 16 million page views per month using just two production machines—one web server and one database server running Microsoft SQL Server 2008 on multi-core Intel Xeon processors. Both boxes run with immense headroom and remain largely unloaded. While Spolsky acknowledges his initial hesitation regarding licensing overhead—paying for Windows Server licenses and $5,000 per processor for SQL Server—the real-world efficiency has inverted conventional open-source cost logic:
> “On the other hand, when I compare our performance to similar sites like that are running on the open source stack we're using about one tenth of the hardware that they are unfortunately and maybe that's because they are not good programmers but in terms of just the tight queries that we're doing and stuff, the Microsoft stack is actually appears to be paying for itself, in terms of reduced hard work.”
[26:31](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1591s) Curing "Empty Restaurant Syndrome" with Built-In Audience
Spolsky reflects that earlier question-and-answer services like Google Answers, Yahoo! Answers, and Ask.com failed to achieve developer ubiquity because they tried to cover all human knowledge simultaneously, falling victim to what he terms “empty restaurant syndrome.” If a diner walks along University Avenue in downtown Palo Alto looking for dinner, they will never walk into an empty establishment; good restaurateurs know to seat their personal friends at the front window tables on opening night so the venue appears vibrant.
To guarantee that developers asking questions on launch day received answers in minutes rather than silence, Spolsky partnered with Jeff Atwood. Together, their personal platforms—*Joel on Software* and *Coding Horror*—represented the two most-read independent programming blogs, generating roughly one million and several hundred thousand monthly readers, respectively. They launched a weekly collaborative podcast on IT Conversations where they designed the site’s feature set and architecture out in the open before an audience of 20,000 to 30,000 engineers.
By launch day, the community already had thousands of eager contributors waiting at the front window tables. As of April 2009:
- 136,579 questions have been asked on the platform.
- 91% of all questions have been successfully answered.
- Spolsky defines “answered” strictly: an answer only counts if it receives at least one positive upvote from another community member.
- The remaining 9% of unanswered posts consist almost entirely of obscure technical edge cases or problems that are simply too inherently difficult for a rapid fix.
[28:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1715s) Growth Metrics, OpenID, and Search Traffic Dominance
Stack Overflow's post volume has grown linearly to around 800,000 posts, where a post is defined as either a question or an answer. Alongside that content growth, the registered user base sits at roughly 60,000 people who form the core, dedicated community returning to the site constantly. Joel Spolsky notes that Stack Overflow adopted OpenID exclusively to aggressively push the standard, making login frictionless: a visitor can authenticate in just two clicks using an existing account like Google, with no separate login mechanism required.
Beyond that registered core, the broader audience reaches over 3 million unique monthly visitors (as measured by Google Analytics cookies), generating over 6 million visits and around 16 million page views every month. Triangulating from industry estimates—including figures from Microsoft developer relations indicating approximately 9 million professional programmers worldwide—Spolsky calculates that Stack Overflow already reaches about 30% of all professional English-speaking programmers within its first six months of operation. An informal poll of the Google Tech Talk audience suggests about 40% have used or seen the site, compared to roughly 30% when asked at the MIX conference in Las Vegas.
The overwhelming majority of that incoming traffic arrives directly from search engines rather than social links or external referrers. While direct visitors represent the core participants who hang out to answer questions and earn karma, the general public finds the site through organic technical queries:
```mermaid
flowchart LR
accTitle: Stack Overflow Traffic Composition
accDescr: Breakdown showing Google search driving the vast majority of inbound visits alongside direct core community traffic.
A["Inbound Traffic"] --> B["Google Search<br/>(86%)"]
A --> C["Direct & Referral<br/>(14%)"]
B --> D["Drive-by Visitors<br/>Seeking Problem Solutions"]
C --> E["Core Community<br/>60k Registered Users Earning Karma"]
```
- **Total posts:** ~800,000 questions and answers combined.
- **Registered accounts:** ~60,000 core users.
- **Monthly audience:** Over 3 million unique visitors, over 6 million visits, and ~16 million page views.
- **Search dependency:** 86% of total site traffic comes directly from Google.
---
[30:50](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1850s) Expanding Beyond Code: Server Fault, Vertical Q&A, and Recruiting
Stack Overflow was deliberately designed to focus strictly on programming questions requiring code. Non-code issues—such as asking why a computer encounters a blue screen every night at midnight—are swiftly closed by the community. To address non-programming infrastructure questions, the team is launching Server Fault, a dedicated sister site tailored specifically for professional system administrators. Spolsky emphasizes that this model requires working professionals to function effectively: “In other words, they really care about getting the right answers, they care about expanding their personal professional knowledge and they're taking this seriously in a level that the teenagers asking sex questions on Yahoo don't necessarily care about.”
Looking further into the future, several broader strategic directions remain on the table:
- **Software product / licensing:** Packaging the underlying platform for enterprise deployments.
- **Industry verticals:** Replicating the model for specialized fields, such as creating a dedicated Stack Overflow for U.S. tax accountants wrestling with tax law.
- **Technical recruiting marketplace:** Leveraging the site's rich data on individual developer competence across specific technologies to connect engineers with hiring companies.
---
[32:41](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1961s) Moderation Algorithms and UI Philosophy (Q&A)
Opening the floor to audience questions, Spolsky first clarifies that tag input uses autocomplete to surface existing tags and supports merging redundant ones. When asked whether the site suffers from bad user behavior or relies on self-policing, Spolsky explains that they treat moderation algorithmically rather than manually handling users one by one. Problematic accounts can be placed in an automated "penalty box" for a week, freezing their points until their suspension ends, while automated filters remain largely on top of spam and standard abuse.
```mermaid
flowchart TD
accTitle: Stack Overflow Community Moderation Loop
accDescr: The automated and community-driven loop for handling off-topic posts and problematic user behavior.
UserAction["User Submits Post / Activity"] --> FilterCheck{"Spam / Rule Check"}
FilterCheck -- Flagged --> PenaltyBox["Penalty Box<br/>Points frozen for 1 week"]
FilterCheck -- Clean --> PublicStream["Public Stream"]
PublicStream --> CommunityReview{"Community Action"}
CommunityReview -- Off-Topic / Bad Form --> AggressiveClose["Voted to Close"]
CommunityReview -- High Quality --> KarmaUpvotes["Upvotes & Karma Accrual"]
```
Turning to a submitted Dory question regarding what interface design element he is most proud of, Spolsky highlights the instant response cycle. While he previously avoided traditional forums because waiting half a day or a full day for answers made prolonged Googling more attractive, Stack Overflow delivers answers within three to four minutes. The submission flow doubles as search: typing a question simultaneously queries existing solutions, and if none exist, committing the post requires just one extra click with answers appearing before the user could even step away for lunch.
When asked by Devon Mullins about what he is *least* proud of, Spolsky admits he is frustrated by how harshly off-topic questions get shut down without providing the asker an alternative destination: “...personally it sort of bothers me that right now we are closing questions that are off topic without having a place to send people so if somebody ask the question that isn't really programming question but StackOverflow is a perfect technology to get an answer to this question but it's not a programming question the community will jump on it and close aggressively in a way that it's not necessarily newbie friendly and say go somewhere else I don't know where but go somewhere else...”
---
[35:20](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2120s) Enterprise Licensing, Monetization Principles, and the Mel Brooks Homage
Addressing whether Stack Overflow would license its software internally to large enterprises, Spolsky explains that while the concept makes long-term sense, their small team of four people simply lacks the bandwidth to support enterprise licensing at present. Regarding monetization, the operation runs leanly on just four team members and two servers. The only current advertisements come from sponsors who aggressively pursued the site to purchase inventory. Spolsky guarantees that core site access will remain unconditionally free: they will never use paywalls, interstitial ads, or animated/flashing display ads of any kind.
The segment concludes with a Dory question from Python creator Guido van Rossum, who asks whether Spolsky's famous blog post, *Things You Should Never Do, Part 1*, will ever receive a follow-up part 2. Spolsky laughs and reveals the title is a deliberate nod to Mel Brooks' film *History of the World, Part I*, meaning there was never intended to be a second part.
[38:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2294s) The Cardinal Sin of Software: Rewriting from Scratch
Joel Spolsky reflects on his classic essay, "Things You Should Never Do, Part One," reiterating the hard-learned software engineering principle that teams must avoid throwing away a large, working codebase. When an existing system is relied upon by many users and performs countless functions, discarding it discards years of hard-won knowledge, edge-case fixes, and grueling debugging work. While it may be acceptable to eventually rewrite every individual line of code over time through incremental refactoring, starting over from a blank slate is nearly always catastrophic.
Spolsky cites Netscape's complete rewrite of the Mozilla browser suite as the prime historical example of this mistake. That rewrite cost Netscape roughly three years of development velocity right at the moment Internet Explorer surged ahead, capturing roughly 90% of the browser market. Although Firefox eventually emerged and clawed back market share, Spolsky points out that Mozilla only got lucky because Microsoft had disbanded the Internet Explorer development team for five years. He also mentions Perl 6 as another victim of the rewrite trap; eight years after an email correspondent suggested looking at it, the total rewrite remained unshipped and had faded into near irrelevance. As Spolsky summarizes:
> “So, yeah, there is nothing that you can do is that bad to a software product and you just decides to start over--yes.”
[39:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2375s) Designing for Programmers vs. Everyday Consumers
Responding to an audience question about whether Stack Overflow's user interface would need to change for general consumer topics versus hardcore technical professionals, Spolsky explains that the site is deliberately tailored to professionals working at their desks. While it might conceivably work for professional landscape architects or commercial nursery workers, it would never work for casual home gardeners. Professional knowledge workers are willing to navigate a slightly more complex UI because mastering tools is part of their daily work.
Stack Overflow takes advantage of two major affordances that are natural to software developers but alien to mainstream consumer sites:
- **Intuitive Folksonomy Tagging:** Programmers immediately understand how to tag their content accurately without any onboarding, prompt screens, or tutorials. When a post lacks proper metadata, other programmers voluntarily edit and supply the correct tags.
- **Markdown Editing with Live Preview:** Because programming questions require sample code, snippets, and monospace blocks, the platform relies on Markdown syntax with a live preview pane. Spolsky admits Markdown is somewhat awkward and definitely not a true WYSIWYG editor, yet not a single developer has ever complained about it. For a gardening site, however, imposing Markdown would be completely inappropriate.
[41:23](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2483s) Question Volume Growth and the Long Tail of Content
Addressing a written question from user John Street regarding whether Stack Overflow should worry about a perceived slowdown in questions posted per month, Spolsky admits he has not performed deep statistical regression analysis. He relies on Google Analytics, which shows traffic doubling roughly every four months since the site's launch.
When asked by an audience member about the shelf life and utility of older content, Spolsky describes the natural stratification of questions across the platform:
1. **Single-use bug questions:** Highly specific debugging inquiries (e.g., diagnosing a unique crash stack) that, once answered, are useless to anyone else and quietly fade away.
2. **Canonical technical references:** Deeply informative solutions to common programming hurdles that become permanent search fixtures on the web.
3. **Hyper-popular community questions:** Soft-topic watercooler threads, such as "What is your favorite programmer's cartoon?" (with Spolsky noting his personal favorite is the *xkcd* "Little Bobby Tables" SQL injection comic). These accumulate hundreds of upvotes, hundreds of thousands of page views, and links from sites like Digg and Slashdot.
Spolsky highlights a major shift in how the developer community adopts Stack Overflow: whenever a new technology emerges, creators increasingly forgo building custom support forums. When Apple released the early iPhone SDK, developers were forced into an unpopular official forum behind an NDA; in response, they flooded Stack Overflow, instantly turning the site into the web's premier iPhone development hub. Emerging frameworks simply instruct their users to use a specific tag on Stack Overflow rather than spinning up dedicated discussion boards. Conversely, obsolete technologies like Visual Basic 6 remain anchored on older sites (such as Experts Exchange, "the website with a hyphen"), while legacy languages like COBOL have only a trivial footprint on Stack Overflow (around 44 questions at the time).
[45:25](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2725s) Community Feedback Loops and the Community Wiki Safeguard
An audience member asks how the Stack Overflow team introduces and tests new features without alienating its large, entrenched base of expert power users. Spolsky explains that major architectural shifts are avoided; the site is largely in a phase of iterative fine-tuning. Because meta-discussions about the site are strictly forbidden on Stack Overflow itself to keep the repository purely technical, product conversations are funneled through three external channels:
```mermaid
flowchart TD
accTitle: Feature Feedback Channels
accDescr: Three distinct avenues where the Stack Overflow team discusses product changes with the community outside the main site.
subgraph Channels["Feature Feedback & Discussion Channels"]
UV["UserVoice Forum<br/>(Feature requests & voting)"]
PC["The Stack Overflow Podcast<br/>(Jeff Atwood & Joel Spolsky discussions)"]
BL["The Stack Overflow Blog<br/>(Announcements & user comment threads)"]
end
subgraph Product["Platform Development"]
SO["Stack Overflow Engine<br/>(Iterative, non-disruptive tweaks)"]
end
UV --> SO
PC --> SO
BL --> SO
```
- **UserVoice:** Where community members suggest specific feature ideas and vote on proposals.
- **The Stack Overflow Podcast:** Co-hosted with Jeff Atwood, where caller questions, listener emails, and upcoming roadmap items are hashed out publicly.
- **The Stack Overflow Blog:** The primary venue where changes are formally unveiled and debated in the comment section.
Addressing concerns about crowd-editing and trust, an audience member asks how users can be sure a highly upvoted answer remains reliable after other users modify it. Spolsky notes that, like Wikipedia, complete revision histories allow anyone to inspect edits. Furthermore, the platform prevents gaming the reputation system through the **Community Wiki** mechanism:
- Normal questions and answers carry personal ownership, awarding reputation points (karma) directly to the author.
- Posts can be voluntarily designated as Community Wiki or automatically forced into wiki mode when an answer or question is edited past a certain threshold or attracts viral, off-topic attention.
- In wiki mode, author attribution is removed, and upvotes no longer grant personal reputation points. As Spolsky emphasizes: “Things will eventually get into community wiki mode because we don't want somebody earning a billion points of Karma just because they ask a really popular and slightly off topic question to get unto Digg.”
[48:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2894s) Big Tech Salaries and "Architecture Astronauts"
An anonymous questioner asks Joel Spolsky why he has previously claimed that young engineers at Google and Microsoft are working on hopeless and useless “architectural astronomy,” demanding to know why he framed that as a bad thing. Caught off guard, Spolsky admits he does not immediately recall the exact context of the quote and scrambles to search for it live on stage. The moderator, Marr, jokes that he is free to use any search engine he likes, prompting Spolsky to hunt for an available engine while stumbling through typos on the keyboard. After pulling up discussion threads referencing his past remarks, Microsoft's Live Mesh, and complaints about tech giants overpaying new graduates with minimal real-world experience, Spolsky laughs and playfully chides the Google audience about their compensation packages, remarking that their starting salaries straight out of college are undeniably inflated.
Shifting to defend the core critique behind his writings, Spolsky stands by the economic impact that tech giants have on the broader software ecosystem. He describes Google and Microsoft as acting like massive talent vacuums at premier engineering institutions like Stanford, UC Berkeley, and the University of Washington (UW). By aggressively hiring every smart graduate they can find regardless of specific project needs, these behemoths make it exceedingly difficult for smaller startups to recruit top-tier technical talent. Spolsky points out that many of these recruits end up assigned to speculative or marginal internal initiatives rather than impactful work, challenging the room by saying, “And honestly, I bet you have colleagues that are working on things that you think are probably not as important as some other start-ups you may know.”
- **Recruiting dominance:** Spolsky characterizes Google and Microsoft as behaving like “gigantic vacuum cleaners at Stanford and Berkeley and U-Dub,” scooping up entry-level engineers at compensation levels that small startups cannot match.
- **Hiring for capacity over necessity:** He notes that for years both companies operated in an aggressive mode of hiring as many people as physically possible under all circumstances, often stockpiling talent for speculative architectural projects.
---
[50:40](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=3040s) Running Executable Code Samples in Stack Overflow Answers
With time remaining for only one final question, Spolsky jokingly offers to tell the audience what Google's current starting salaries are for new grads before taking a question from an attendee about whether Stack Overflow plans to allow safe, executable code samples directly inside answers. Spolsky clarifies that Stack Overflow already supports formatted code embedding—relying on an open-source syntax highlighter provided by Google—and notes that they are constantly exploring better ways to present and format source code on the site.
However, when considering the prospect of actually executing code samples directly within the browser, Spolsky remains skeptical about its practicality and safety. Beyond the inherent security hurdles of executing arbitrary user-submitted code on a webpage, he explains that running code client-side would offer meaningful utility to only a narrow slice of the platform's queries, such as front-end JavaScript or CSS styling demonstrations. Because the vast majority of developer questions on Stack Overflow deal with backend runtimes, systems programming, databases, and diverse language ecosystems that cannot run inside a client browser session, building an executable code sandbox would not solve the problems faced by most users. With that, Spolsky brings the presentation to a close, thanking the audience for their time and attention.
- **Source code highlighting:** Stack Overflow relies on a client-side library from Google (Google Code Prettify) to format and syntax-highlight code snippets embedded within markdown posts.
- **Limits of browser execution:** Running live code directly on question pages would only benefit front-end web technologies (JavaScript, HTML, CSS), offering zero utility for the server-side, compiled, or systems-level questions that make up the bulk of developer inquiries.
## Notable quotes
> [23:44](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1424s) We designed our site with the assumption that our homepage is Google. — Joel Spolsky
> [03:19](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=199s) The environment that you create influences people and how they behave, and similarly the user interface you create for your applications will influence how people behave and you have to think about it as an anthropologist to be able to do a good job. — Joel Spolsky
> [08:20](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=500s) Search engines get you a lot of wrong answers when you search for highly technical questions and that's the biggest problem. — Joel Spolsky
## Mentioned
Joel Spolsky, Jeff Atwood, Michael Pryor, Chris, Allen, Jason Calacanis, Phil Greenspun, Guido van Rossum, Devon Mullins, John Street, Marr, Napoleon Bonaparte, Stack Overflow, Google, Google TechTalks, Fog Creek Software, FogBugz, Coding Horror, Yahoo Answers, Mahalo Answers, phpBB, Experts-Exchange, Amazon Askville, Google Answers, Server Fault, Microsoft, Microsoft SQL Server, Reddit, Wikipedia, UserVoice, The Stack Overflow Podcast, Netscape, Mozilla, Firefox, Internet Explorer, Live Mesh, Live.com, Digg, Slashdot, OpenID, Google Code Prettify, Spanish Steps, Things You Should Never Do, Part 1, History of the World, Part I, xkcd, Stanford University, UC Berkeley, University of Washington
## Video description
Google Tech Talk
April 24, 2009
ABSTRACT
Presented by Joel Spolsky
Until recently, searching for help on highly technical programming problems has been a mess. A lot of what the search engines found was old discussions in forums, where you have a lot of wrong answers and out-of-date answers that you have to sift through yourself. You also found a lot of answers at sites that were hidden behind a pay wall, which uncloaked themselves for Google and then demanded membership fees to see the answers.
StackOverflow.com is a programmer's Q&A site that launched last September to address these problems. It incorporates more modern ideas about community such as voting and public editing, and even a few ideas from game design, to create a much more successful way to get help with programming problems. In a few short months, it has grown to 14 million page views a month and reaches 3 million unique programmers every month. The lessons we've learned in creating a successful Q&A site has many implications for search which I'll share in this talk.
斯波尔斯基称 Stack Overflow 投票机制解决了技术搜索失效问题
传统搜索引擎和论坛在处理工程查询时表现不佳,因为它们索引了过时且未经核实的代码;而众包声誉与公开维基编辑机制则能在数分钟内提供权威的编程答案。
乔尔·斯波尔斯基解释了传统搜索引擎和按时间排序的论坛为何屡屡让软件开发者失望,因为它们呈现的往往是过时、错误或受付费墙阻拦的答案。为解决这一问题,Stack Overflow 结合了 Reddit 风格的赞成票、维基百科风格的协作编辑、OpenID 身份验证以及 Xbox 风格的声誉徽章,将晦涩的技术提问转化为权威的典范参考资料。他详细介绍了该网站流量的快速增长——主要由 Google 自然搜索查询驱动——并解释了为何仅依靠两台服务器在精简的微软技术栈上运行高性能业务。在最后生动的问答环节中,斯波尔斯基分享了关于避免彻底重写软件、消费级网站缺乏技术支持机制为何会失败,以及技术招聘更广泛经济学的见解。
上线后不到六个月,Stack Overflow 的月独立访客量便扩大到 300 万以上,页面浏览量达 1600 万,帖子数达 80 万,估计覆盖了全球 30% 的英语专业程序员。 (28:35)
Stack Overflow 并非依赖直接访问,其 86.6% 的入站流量直接来自 Google 搜索查询,这证实了一种将 Google 视为其真正主页的架构方法是行之有效的。 (23:44)
整个平台运行在精简的基础设施之上,仅包含两台由四人核心团队管理的微软生产服务器(一台 Web 服务器,一台 SQL Server 2008)。 (24:56)
在平台上提出的技术问题中,超过 90% 都能获得社区认可、获得正向点赞的回答,通常在发布后几分钟内即可得到解决。 (14:59)
Detailed notes — zh
## Background
该视频由 YouTube 频道 Google TechTalks 于 2009 年 4 月 29 日发布,记录了 Joel Spolsky 于同年 4 月 24 日在 Google 总部发表的技术演讲。根据页面介绍,演讲聚焦于技术编程搜索长期以来的混乱现状(如充斥错误过时论坛帖和付费墙),并分享了问答网站 Stack Overflow 自 2008 年 9 月上线以来,如何运用现代社区投票、公共编辑与游戏化机制迅速崛起,以及这些经验对搜索领域的深刻启示。
## TL;DR
Joel Spolsky 深入剖析了传统搜索引擎与论坛在面对高度细分、长尾的专业编程问题时的机制失效,指责付费墙与缺乏权威排序导致了劣质代码和安全隐患的泛滥。他详细阐述了 Stack Overflow 如何将人类学与社会工程学理念融入产品设计,依托社区投票、类似维基百科的持续编辑、拿破仑式的勋章激励与声望机制,构建起高质量的正向反馈闭环。此外,他还公开了平台凭借极简软硬件架构(仅靠两台跑着微软技术栈的物理服务器支撑千万级月浏览量)支撑爆发式增长的奇迹,并分享了冷启动运营、严守专业垂直边界、拒绝弹窗骚扰广告的商业化底线以及对代码从头重写风险的深刻反思。
## Atmosphere & style
整场 Tech Talk 气氛轻松风趣、笑声不断,充满了典型的极客幽默与犀利洞察。Joel Spolsky 在讲台上松弛而自信,开场便拿 Google 的会议室摄像头打趣,互动环节中甚至与 Python 之父 Guido van Rossum 隔空调侃,面对现场 Google 工程师抛出的关于薪资垄断和‘架构宇航员’的尖锐提问也毫无包袱、直言不讳。整场演讲将硬核的架构数据、深刻的人类学观察与对微观经济学谬误的辛辣批判熔于一炉,既有创业复盘的干货与激情,又散发着早期硅谷黄金时代特有的睿智与自由思辨气息。
## Bulletin
- [28:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1715s) Stack Overflow 上线仅 6 个月便达到每月 1600 万浏览量与超 300 万独立程序员访客,触达全球约 30% 的专业软件开发者。
- [24:56](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1496s) 平台依靠两台运行微软技术栈(C# 与 SQL Server 2008)的双路至强服务器承载千万级访问,硬件消耗仅为同类开源方案的十分之一。
- [23:44](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1424s) 全站外部流量有高达 86% 直接来自 Google 搜索,团队从底层架构上将 Google 框作为事实上的产品主页来深度适配。
- [22:33](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1353s) 社区通过“提问即预搜索”技术与全员 Wiki 式编辑打磨高质量规范答案,实现首日 91% 的问题获得社区投票认可的有效解决率。
## Key takeaways
- [02:16](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=136s) 传统搜索引擎在应对长尾、高度专业的编程技术问题时存在系统性失效,因缺乏反向链接和 PageRank 导致盲目推选过时甚至包含安全隐患的陈旧答案。
- [03:22](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=202s) 软件设计在 Web 2.0 时代本质是人类学与社会学课题,开发者所构建的虚拟交互环境直接塑造了用户的社群行为模式。
- [05:49](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=349s) 以 Experts-Exchange 为代表的欺诈性掩蔽(Cloaking)和付费墙机制阻碍了技术传播,促使 Stack Overflow 确立终身免费与透明开放的原则。
- [20:13](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1213s) 用微额金钱激励用户解答技术问题的“经济学 101”管理法注定失败,专业社区必须依托内在成就感与公开声望体系驱动知识贡献。
- [17:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1030s) 引入类维基百科的公共编辑与历史版本回溯机制,使技术问答能够被全社区持续打磨、修正漏洞,成为长期演进的技术权威文档。
- [22:33](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1353s) 在提问流程中内嵌标题关键词预搜索(Pre-search),在用户录入时即时拦截重复提问,致力于为单一技术难点沉淀唯一的规范问答。
- [23:44](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1424s) 采用干净的语义化 URL、规范 Sitemaps 等工程手段全面贴合搜索引擎爬虫习惯,直接将 Google 作为产品的真正入口门面。
- [26:31](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1591s) 借助 Joel Spolsky 与 Jeff Atwood 博客的声量与播客预热,成功破局冷启动的“空餐馆综合征”,首日即达成极高的优质解答转化率。
- [30:50](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1850s) 问答社区的有效运转高度依赖“专业职业诉求”,泛娱乐大众向问答往往沦为低质灌水,因此必须严格把控技术边界并向 Server Fault 等专业垂直领域分流。
- [38:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2294s) 对成熟的庞大软件系统而言,“从零推翻重写代码”是极具毁灭性的商业与工程决策,企业应始终坚持在现有代码上持续重构演进。
- [39:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2375s) 专业程序员具备自发维护标签和使用 Markdown 的意愿与能力,这种 UI 交互模式高度适配专业工作者,但很难生搬硬套到普通消费者场景。
- [46:39](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2799s) 社区维基(Community Wiki)模式有效分离了个人声望获取与公共话题沉淀,杜绝利用迎合大众口味的软性趣味帖无休止收割社区积分。
- [50:40](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=3040s) 在浏览器端直接内嵌可执行代码环境在安全性与实用性上存在局限,对大量以后端和底层系统为主的编程技术问答并无实际增益。
## Detailed walkthrough
### [00:22](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=22s) 开场介绍与谷歌现场的幽默互动
活动由谷歌开源团队负责人 Chris 主持开场。Chris 提到,在同事 Allen 辛苦协调好会议室并发出 Joel Spolsky 即将前来讲座的通知后,他的邮箱瞬间被各种内部邮件淹没。其中有一封写道:“哇,Joel 竟然亲自来到我们珀斯分部,太棒了!” Chris 觉得这封邮件既好笑又让人发毛,因为他当时正待在珀斯办公室;而另一封邮件则直接问:“我们能不能搞一份 Stack Overflow 的源代码供谷歌内部使用?” 对此 Chris 幽默地回应:“你可以等会儿在现场亲自问他。”为了方便全球 700 多个办公室通过视频会议接入的员工提问,现场特别设置了专用的在线提问页面(Dory),让害羞不想开口的人也能打字参与。
随后 Joel Spolsky 登台。他一走上讲台就拿现场的摄像头开玩笑,称自己得在台上小心走动,因为他觉得这些扫描镜头似乎正在扫描他的大脑切片,打算把他的意识上传到电脑里,用来让他在余生中替谷歌永无止境地计算“帕洛阿尔托哪家寿司店最好吃”。在笑声中,Joel 正式切入正题,介绍了自己和坐在台下的 Fog Creek Software 联合创始人 Michael Pryor,以及他们已有八年历史的公司和旗舰产品 FogBugz。此外,他还提到了与知名技术博主 Jeff Atwood(博客 Coding Horror 的作者)共同发起的新项目——问答网站 Stack Overflow。
### [02:16](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=136s) 搜索引擎在专业问答领域的失灵
Joel 指出,当前的搜索引擎在处理高度专业化的专家级技术问答时正在经历普遍的失败。对于一个复杂的编程难题,如果去向一位人类专家求教,对方往往能给出一个完全正确且精准的答案;然而搜索引擎由于机制所限,根本无法检索出这些高质量内容。各大搜索巨头虽然也试图建立自己的问答社区,但像 Yahoo Answers 这类平台最终几乎都沦为了青少年的荒谬提问聚集地,甚至诞生了著名的网络热梗“婴儿是怎么形成的”(How is babby formed?),上面充斥着大量关于生殖生理常识的幼稚提问。
```mermaid
flowchart TD
accTitle: 专业技术检索的困境与 Stack Overflow 破局
accDescr: 对比传统搜索引擎与问答模式在面对技术问题时的失败表现,以及 Stack Overflow 的解决方向
subgraph Problem["现有问答平台与搜索的问题"]
A["传统搜索引擎检索"] --> B["社区论坛内容杂乱 / 答案过时错误"]
A --> C["付费墙网站欺诈(如 Experts-Exchange 掩蔽 cloaking)"]
D["大众向问答(如 Yahoo Answers)"] --> E["低质灌水 / 荒谬问题多"]
end
subgraph Solution["Stack Overflow 的解决构想"]
F["专家技术问答定位"] --> G["透明开放 / 拒绝门槛与付费墙"]
H["社区投票与公共编辑"] --> I["自动浮现最新且安全的高质量正解"]
end
```
Joel 严肃地反思道:“我其实觉得搜索引擎在专家问答这一特定领域是有些失败的,在这些领域里,你本可以问一个专家,专家也能给你一个真实而正确的答案,但搜索引擎出于各种原因就是搜不出来。”(“And I actually feel like search engines are kind of failing in a particular realm of expert questions and answers where something you could ask an expert and the expert would be able to give you a true and correct answer.”)Joel 强调,本次演讲不仅关乎技术,更是一堂关于人类学与社会学的课:软件开发者创造出的虚拟环境,将以极其精妙的方式塑造身处其中的人们的行为模式。
### [03:22](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=202s) 空间设计与用户行为:从西班牙阶梯谈起
Joel 用罗马著名的西班牙阶梯(Spanish Steps)作为空间设计的经典隐喻。这座台阶最初的建造目的,仅仅是为了连接底部的西班牙与波旁使馆以及山顶的山上天主圣三教堂(Trinità dei Monti)。然而,由于台阶的高度设计得恰好让人坐着极其舒适,台阶横向跨度极宽、坐下也不会阻碍过往行人通行,再加上坐在上面能俯瞰底部广场的壮丽景色,它意外地演变成了全世界背包客游历罗马时的“露天起居室”。
Joel 借此阐明了软件界面对人类群体行为的深远影响。过去计算机领域长期关注的是“人机交互”(HCI),但在 Joel 看来,单纯的界面可用性(Usability)在今天已经基本变成了有解可循的已解决问题;如今进入互联网与 Web 2.0 时代后,软件开发者真正面对的是“人人交互”(Human to Human Interaction)。这意味着程序员和产品经理必须扮演文化人类学家和民族志学者的角色。 Joel 总结道:“人类学的一个明确真理是:你创造的环境会影响身处其中的人们及其行为方式;同样地,你为应用程序创建的用户界面也会影响人们的行为方式。”(“The environment in anthropology is very clear that the environment that you create influences people and how they behave. And similarly the user interface, you create for your applications will influence how people behave and you have to think about it as an anthropologist to be able to do a good job.”)
### [05:49](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=349s) 竞品界面的“人类学观察”与 Stack Overflow 的诞生
在开发 Stack Overflow 的早期,Joel 和团队仔细拆解了当时市场上的各类竞争产品,研究它们的产品界面如何倒逼出极其诡异的用户行为:
- **Yahoo Answers**:界面设计导致提问门槛过低且缺乏专家激励,充斥着“如果我踩死蚂蚁,谁会去吃被踩碎的蚂蚁?”这种无厘头内容。
- **Mahalo Answers**:创始人 Jason Calacanis 执迷于微支付(Micropayments)机制,整个网站充斥着做任务赚取“Mahalo 币”的花样,结果形成了一个充斥着赚 7 美元微型兼职或换取 Supercuts 剪发优惠券的欺诈式问答生态。
- **phpBB 式传统论坛**:刻板的话题分类与回帖列表,结构沉重僵化。
- **带连字符的“那个网站”(暗指 Experts-Exchange)**:这是促使 Joel 动手创建 Stack Overflow 的最强催化剂。这个网站在面对 Googlebot 爬虫抓取时展示完整答案,但当普通用户从搜索结果点进去时,却用层层付费墙遮蔽内容,威逼利诱用户掏出信用卡付费入会,宛如一家吃相难看的企业级软件销售商。
- **Amazon 问答平台(Askville)**:盲目效仿谷歌首页的极简搜索框,在页面最顶部放一个巨大的提问框,其结果是诱导了海量低质提问,却几乎没有人愿意留下来提供高质量答案。
针对这些顽疾,Stack Overflow 于 2008 年初立项,约一年前正式编写代码,经过 4 周测试后于 2008 年 9 月正式发布上线。上线仅 6 个月左右,月独立访问量已突破 600 万人次(月页面浏览量更达到 1400 万)。
- **关键上线节点**:2008 年初确定构想,2008 年 4 月前后启动编码,2008 年 9 月正式公开发布。
- **网站运营规模**:上线运行 6 个月后,每月访问量达 600 万人次,月 PV 达 1400 万,触达 300 万名独立程序员。
### [08:52](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=532s) 编程搜索的三大恶疾与低质答案的危害
Joel 逐条剖析了 Stack Overflow 试图一次性彻底解决的搜索痛点。首当其冲的就是“注册与付费骗局”,比如 Experts-Exchange 通过掩蔽(Cloaking)技术诱骗用户,以及像 SQLServerCentral 这类论坛设置的“想看答案必须先注册”的路障式拦截,这些门槛极大地挫伤了开发者的参与感和获取信息的效率。更致命的则是搜索引擎在索引编程内容时展现的无知,例如搜索引擎根本无法辨识出像 `<li>` 这样极其常见的 HTML 标签在编程语境下的真正含义。
最为严重的痛点,是技术搜索结果中充斥着海量的“错误答案”。Joel 将这些糟糕答案归纳为几个极具破坏力的典型类别,首当其冲的就是“制造安全漏洞的代码”。许多搜索排名极高的范例代码片段,给出的所谓“解决方案”居然是直接让开发者关掉防火墙,或者在数据库交互中埋下明显的 SQL 注入风险。这种糟糕的问答机制不仅没有解决问题,反而在全球的代码库中四处播撒安全隐患。
### [10:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=610s) 传统技术论坛的痛点:安全漏洞、错误答案与缺乏权威排序
```mermaid
flowchart TD
accTitle: Traditional forums vs programming queries
accDescr: Diagram showing how traditional forum structures fail to address long-tail programming queries due to lack of PageRank and uneditable archives.
subgraph Traditional["传统论坛问题"]
A["4年前旧讨论已固化"] --> B["存在 XSS / SQL 注入漏洞无法修正"]
C["充满无休止猜测:<br>'试过这个吗?'"] --> D["无 PageRank 机制区分答案好坏"]
end
subgraph Engine["搜索引擎在长尾技术领域的困境"]
E["极小众冷门问题仅百人浏览"] --> F["无人写博客或反向链接"]
F --> G["PageRank 机制失效"]
G --> H["退化为优先推选‘存在时间更久’的过时旧网页"]
end
```
在普通的论坛软件中,技术人员检索时经常会遭遇一个令人崩溃的场景:你搜到一个代码示例,一眼就看出其中包含 XSS(跨站脚本攻击)或 SQL 注入漏洞,但在典型的论坛架构下,这是四年前就已经冻结的讨论,“没有任何办法去更改它,没有任何办法去修正它”。另一种极端是那些公认的难题,例如著名的 Google 面试题“如何用 Rand(5) 实现 Rand(7)”。网上充斥着大量似是而非的错误答案。Joel 调侃道,这其实对面试大学毕业生特别有用,因为即使候选人提前上网搜过这道题,进门时也很可能会背出一个错误答案——想要在网上那堆互不相让、错误频出的回答中辨别出谁是对的,本身就需要极高的智力水平(当然,Stack Overflow 上有这道题的正确答案)。
在常规讨论区里,更普遍的现实是答案泛滥且未经排序:有人留言说“你试过这个吗?”,有人说“试试那个?”,还有人丢一个不知名文章的链接。技术人员别无选择,只能两眼一抹黑地挨个照着试,直到撞大运碰上一个能用的代码。之所以出现这种混乱,根本原因在于细分技术问答之间根本不存在 PageRank(网页排名权重)。
- **小众问题的链接荒漠**:针对某个冷门平台上的怪异概念报错,全世界可能总共就 100 个人会遇到,绝不会有人特意为此写一篇博客去链接那个最好的回答。
- **搜索引擎的权威盲区**:缺乏反向链接和引用,搜索引擎根本无法运用传统权重算法来识别谁才是正确答案。
### [12:01](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=721s) 搜索引擎在长尾技术领域的四大困境
传统的搜索引擎在应对长尾、高度专业化的技术查询时表现得非常挣扎,甚至会引发严重的系统性偏差。最典型的一个缺陷是对“过时结果”的不当优待。搜索引擎在没有其他信号可以区分两个页面的情况下,往往会倾向于优先推荐较老的页面,默认它在互联网上存在的时间更长,因而给予一定的权重加成。
Joel 指出,这种规则在日新月异的技术领域往往是致命的。例如在当时搜索“如何在 iPhone 上实现某某功能”,排在前面的旧网页会信誓旦旦地宣称:“绝无可能,除非你写一个网页并用 Safari 浏览器打开它,否则绝对无法给 iPhone 编写原生应用程序。”这个结论在初代 iPhone 问世的第一年完全属实,但随后 App Store 和 SDK 推出后便彻底过时,而大量高排名的网页依旧挂着这些废弃陈述。另一个荒谬的例子是搜索“室内摄影(interior photography)”,排在 Google 首页第一名的是 Phil Greenspun 在数码相机尚未普及前撰写的一篇关于胶片室内摄影的文章。
Joel 总结了搜索引擎在应对“我遇到了一个编程问题”这类查询时面临的核心瓶颈:
> “这里有四个核心原因导致搜索引擎难以应付这些高度专业的技术问题:一是极小众问题浏览量太低导致缺乏权威度背书;二是同一个问题有太多种表述方式,用户必须碰运气才能搜中作者使用的同义词,搜索空间被过度稀释;此外还有对旧链接的盲目偏好。”
> —— Joel Spolsky
### [13:29](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=809s) 机制一与机制二:社区投票机制与基于技能的智能标签系统
为了从根本上绕过这些问题,Stack Overflow 引入了九项由“社会工程学”构建的机制。Joel 坦承这些想法没有一个是他们凭空发明的,每一项都是从其他优秀模式中借鉴而来,但融合在一起就创造出了符合人类行为学(anthropologically correct)的互动闭环。
首先是**投票(Voting)机制**。好的回答被顶上去,差的被踩下去。这种群体智慧的收敛速度极其惊人,往往在问题提出短短一小时甚至几分钟内,优秀的回答就能积累数票并迅速排到顶部。为了兼顾提问者的实际体验,系统设计了一个特别的算法微调:无论社区给出的票数如何,原始提问者拥有特殊特权,可以将其中某一个回答钦定为“官方采纳答案”,并固定在最上方。
其次是**标签(Tags)系统**。Stack Overflow 彻底摒弃了 Usenet 式陈旧的目录层级分类法,转而采用开放的标签机制。提问者可以明确标记诸如 `VB.NET`、`C#` 等技术背景,避免不同技术栈之间的误导。不仅如此,系统还对标签进行了深度的个性化算法设计:
- **过滤与忽略**:例如 Python 程序员可以把网站打造成专属的 Python 资源库,同时将讨厌的 `.NET` 设为忽略标签,眼不见心不烦。
- **基于专业背景的主动推送**:系统不仅关注用户“声称”喜欢什么标签,更记录用户“实际回答并解决”了什么问题。
- **成功案例**:Joel 以自己早年在微软担任 Excel 宏语言策略负责人、主导开发 VBA(Visual Basic for Applications)的经历为例。由于他回答过几道 VBA 和 Excel 题目,系统便认定他是处理这些冷门过时技术的专家。一旦有人提问 Excel VBA,系统就会主动推送到他的视野中。得益于这种精细化的匹配能力,Stack Overflow 实现了超过 90% 的提问都能获得采纳答案。
### [17:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1030s) 机制三:维基式编辑机制与声望激励系统
```mermaid
flowchart LR
accTitle: Wiki-style editing loop on Stack Overflow
accDescr: Flowchart illustrating how low-quality answers get refined via edits triggered by reputation mechanics.
A["提问者发布极简粗糙答案<br>(抢速度 / 错别字)"] --> B["获取声望点数受限"]
B --> C["作者或社区重新编辑<br>(补充示例代码 / 纠错)"]
C --> D["形成长期维护的<br>Canonical(权威)参考资料"]
D --> E["收获高票与声望加分"]
```
第三项核心支柱是**全员编辑(Editing)机制**。传统的论坛讨论一旦发生便永久冻结,错误和过时内容将永远留在互联网上。Stack Overflow 将自己定位为“针对细分、极度长尾编程问题的维基百科(Wikipedia)”:
> “我们的期望是,Stack Overflow 上的大量问题最终能成为互联网上了解那些极其狭窄、极其具体的编程课题的权威根据地(canonical place)。”
> —— Joel Spolsky
在此机制下,任何人发现高票答案有疏漏、代码有 bug,都可以点击编辑按钮直接修订;若发现题干表述不清、范围过窄或缺少上下文,同样可以重写问题。
Joel 分享了一个具体的修订案例:一位名为 Martin 的用户为了能最快帮上提问者,第一时间贴出了一个只有两行简略建议的粗糙回答(甚至把“roll your own”拼错了)。两天后,Martin 发现这个敷衍的回答并没有帮他赚到足够的社区积分,而渴望获得积分(“虽然它们仅仅是点数而已”)促使他主动返回页面,点击编辑按钮,为回答补充了详尽的示例代码。随后他赢得了更多社区投票和积分,而他原先拼错的单词也被其他热心网友在后续编辑中顺手修正了。这种让所有人都能互相打磨、反复修订内容的协作模型,使得页面不再是随时间风化的陈旧碎片,而是持续演进的高质量技术文档。
### [19:10](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1150s) 勋章体系与拿破仑的“彩色丝带”激励哲学
为了引导用户在网站上自发做出社区期望的行为,Stack Overflow 引入了“勋章”(Badges)机制,其设计灵感很大程度上借鉴了 Xbox 360 的游戏成就系统。乔尔·斯波尔斯基(Joel Spolsky)解释说,这种机制深深植根于拿破仑的名言。正如乔尔所引述的:“一个士兵会为了一小截有颜色的缎带而奋勇拼杀良久”(“a soldier will fight long and hard for a little piece of colored ribbon.”)。因此,网站便为开发者们颁发这些“彩色缎带”般的勋章。
乔尔指着大屏幕上自己的个人主页展示道,他的名字旁清晰标示着 4,800 个声望点数、15 枚银质勋章以及 28 枚铜质勋章。这套外化系统不仅是一种个人荣誉,更构建了一种可信度机制:任何人在站内其他页面看到该用户名,都能立刻判断该用户的声誉深度与过往贡献。许多用户甚至将收集齐全所有勋章视作通关目标。乔尔幽默地补充道,台下的每一位听众现在去注册,也都有机会拿遍列表上的每一种勋章——唯独“Beta 测试者”勋章除外,因为测试期已经结束了。
- **游戏化设计**:参考 Xbox 360 的成就体系,将用户正面行为与虚拟徽章绑定。
- **信誉可视化**:声望分、金银铜勋章与用户名同屏显示,让社区一眼识别专业度。
- **绝版勋章**:“Beta tester”勋章仅向内测用户发放,内测结束后永久绝版。
---
### [20:13](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1213s) 声望机制与“经济学 101”管理谬误:为什么用钱买不来优质社区
乔尔尖锐地指出,问答社区绝不能靠花钱雇人来解答技术难题。他认为这也是 Google 曾经的问答产品 Google Answers 最终折戟沉沙的根本原因,并且他大胆断言 Jason Calacanis 创立的 Mahalo Answers 也必将因同样的商业逻辑走向失败。乔尔深入剖析了人类动机的微妙之处:许多事情人们完全愿意出于善意无偿奉献,或者为了极其高昂的报酬出马,却唯独极度排斥为了蝇头小利出卖劳动力。乔尔打趣说,如果有人想买他一整天的顾问咨询,那是开不出价格的天价;但他却很乐意在 Stack Overflow 上花掉整整一天,纯粹为了帮人解决难题而敲键盘。
```mermaid
flowchart TD
accTitle: 用户声望与权限晋级闭环
accDescr: 展示用户通过优质回答获得投票,积累声望并解锁系统权限的良性循环。
subgraph Contribution["社区贡献"]
A["提出问题 / 回答问题"] --> B["其他用户投赞成票 (+Karma)"]
C["整合前五名高票答案为终极答案"] --> B
end
subgraph Progression["权限解锁 (对抗垃圾信息)"]
B --> D["积累基础声望"]
D --> E["解锁评论功能 (类 Human Captcha)"]
D --> F["解锁直接编辑他人内容权限"]
end
Progression -->|"提升参与度与归属感"| Contribution
```
乔尔批评了那种粗暴运用微观经济学原理解释人性的做法:“如果你试图使用我所谓的‘经济学 101 管理法’去出清市场——比如极小额的报酬,像‘如果你帮我解决问题我就给你一美元’;好,没人接单,那就加到两美元——在这么低的水平线上市场根本无法出清,但人们却愿意为了给世界做贡献而免费做这些事。”(“If you try to clear a market using what I call the ECON 101 management method. A very, very small payments, like, I could give you a dollar if you can help me with my problem. Okay, nobody is answering it, let's try 2 dollars that the market is not clearing this little levels but people will do things for free in order to contribute to the world.”)
为此,Stack Overflow 设计了纯粹的积分——“声望”(Karma)。赚取声望最有效的方式就是贡献能被其他程序员投票认可的高质量问答。随着声望不断积累,用户会逐步解锁站内权限。在初始阶段,这种机制宛如一种“真人验证码”(Human CAPTCHA):新手如果不曾老老实实提问或答题,甚至没有权限在别人的问题下发表评论或编辑内容;当他们想发言却被系统拦截并提示需要少量声望时,就会被自然引导去提供更有价值的贡献。乔尔还明确倡导过一种极具维基百科风格的赚分技巧:哪怕一个用户编程技术不高,只要找出一个浏览量很大但答案散乱的问题,把排名前五的优秀回复提炼、剪切拼接为一份逻辑严密、配有实测示例代码的终极综合解答并发布出来,就能轻松赢取大量赞成票与声望。这正是平台极力鼓励的行为——打破狭隘的知识私有产权偏执,促使内容变得越来越好。
---
### [22:33](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1353s) 预搜索去重:打造唯一的“权威规范问答”
传统技术论坛最令人生厌的问题,就是同一个基础疑问被成千上万次无休止地重复提起,并伴随着老手粗暴地丢下一句“这问题以前早有人问过了”。为了终结这种低效形态,Stack Overflow 在提问表单中内嵌了“预搜索”(Pre-search)技术。当提问者在标题框中输入文字并按下 Tab 键切换到正文时,系统会瞬间提炼标题中的高频关键词,并在后台迅速检索已有的数据库记录,将高度吻合的历史问题即时陈列在表单下方。
这项功能的核心使命在于“去重”(Deduping)。乔尔强调,Stack Overflow 的终极野心不是成为一个充斥碎片讨论的闲聊版块,而是为每一个技术难关沉淀出一份绝无仅有的“权威规范问答”(Canonical Q&A)。尽管团队底层的搜索技术相当朴素(仅依靠 Microsoft SQL Server 的文本检索支持),但其效果却异常拔群。
乔尔动情地回忆起内测第二天的亲身体验,这让他彻底确信 Stack Overflow 必将大获成功:当天他遇到了一个棘手的真实编程问题,于是登录系统输入标题并按下 Tab 键;令人震惊的是,完全相同的问题赫然显示在下拉建议中——它由另一位开发者在仅仅 8 分钟前发布,底下不仅聚集了数条精彩回答,而且社区早已投票完毕,排在最顶端的高票回答完美解决了乔尔的燃眉之急。这种“刚遇到问题,完美答案就已被社区前置准备好”的奇迹,在平台上不断上演。
---
### [23:44](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1424s) “我们的主页是 Google”:摒弃传统 SEO 的产品架构
谈及流量获取战略,乔尔直言团队并没有采取那些狭隘幼稚的所谓 SEO 技巧,而是做出了一个根本性的架构预判:网站最前沿的门面根本不是 stackoverflow.com 的首页,而是 Google 的搜索框。绝大多数程序员遇到 Bug 时的本能行为,就是在 Google 中输入报错信息,因此 Stack Overflow 全网技术架构的底盘都是围绕这一下游假设而打造。
团队在技术细节上竭尽全力配合搜索引擎机器人的抓取习惯:
- 采用语义清晰的永久性干净链接(Clean URL),直接将问题标题拼入 URL 路径中;
- 严谨部署所有必要的 HTML 网页元标签(Meta Tags);
- 持续规范生成与维护全站 XML 网站地图(Sitemaps);
- 竭尽所能优化页面语义结构,使页面在搜索引擎看来无懈可击。
乔尔展示的网站流量监控图表验证了这一策略的成功:高达 86.6% 的全站外部访问流量精准来源于 Google 搜索结果。相比之下,直接输入网址访问的虽然是一批全天候泡在社区里的高粘性铁杆用户,但在规模上只是少数派;而其他搜索引擎的表现则令人啼笑皆非,例如微软自家的 Live.com 在引流来源榜上仅排在第 9 位,占总访客数微不足道的 0.2%,连乔尔自己都忍不住耸肩调侃道:“我完全不知道为什么它只占我们访客的 0.2%,这根本说不通,好吧,随它去吧。”
---
### [24:56](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1496s) 微软技术栈的高性能奇迹与被颠覆的服务器成本论
在硬件架构与后端性能方面,团队对“速度”抱有偏执的狂热,深知必须做到页面响应极致流畅、迅疾如飞(snippy, snappy and quick)。出乎台下很多 Google 工程师意料的是,整个 Stack Overflow 完全构建在微软的技术栈上——主力语言是 C#,数据库则采用 Microsoft SQL Server 2008。乔尔指出,尽管 Google 内部很少使用这套工具,但 C# 作为一门高性能编译型语言,其运行表现卓越得不可思议。
乔尔透露,当时平台每月支撑高达 1,600 万次页面浏览量(Page views),而整个集群居然仅仅运行在两台双路至强(Xeon)服务器上:一台作为 Web 服务器处理网络请求,另一台跑 SQL Server 2008 数据库。即便扛着千万级的流量,两台物理机的负载指标依然近乎空载,预留了惊人的富余性能空间。
对于业内长期诟病的使用商业软件带来的高昂授权费问题——例如 Windows Server 的系统授权,以及单台机器售价高达 5,000 美元的 SQL Server 授权——乔尔坦言他们曾为此深深焦虑,并思考过是否应该效仿同行,采用开源软件加大量廉价机器集群的策略。然而残酷的数据对比彻底打破了偏见:与跑在开源技术栈(如 LAMP)上的同类问答竞品相比,Stack Overflow 消耗的硬件资源仅为后者的十分之一左右。乔尔笑称,这或许是对手程序员水平欠佳,但事实证明,微软技术栈配合精细优化的数据库查询,所节约下来的庞大机架与硬件采购成本,已经完全抵消并赚回了这笔高昂的软件授权许可开销。
---
### [26:31](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1591s) 破局“空餐馆综合征”:播客预热与首日 91% 的回答解决率
对于一个双边问答网络而言,最大的生死关卡莫过于“首日临界规模”(Critical mass on day 1)。如果没有人提问,就不会有人驻留回答;如果没有人回答,提问者就会永远流失。乔尔形象地将这种死循环命名为“空餐馆综合征”:
> “这就像你漫步在帕洛阿尔托市中心的大学大道上挑选就餐去处,只要看到某家餐馆里空空如也,无论如何你都绝不会走进去。因此深谙经营之道的餐馆老板都明白,开业第一天必须拉来所有亲朋好友把靠窗的餐位坐得满满当当,让外面看起来店里客流如织。”(“You're walking you know up and down university, heading downtown Palo Alto trying to pick a restaurant to go into and one of them is empty, and you will not go in there in any circumstances so a restaurant turn knows that on day one they got to have their friends to at least fill up the window tables so that it looks like there's somebody in there...”)
无论是早期亚马逊的问答尝试,还是 Yahoo! Answers 或 Google Answers,无论其母体背后的营销火力多么威猛,因其涵盖全品类而无法在上线瞬间填满所有细分领域的“餐位”,普遍难逃冷启动泥潭。这也是乔尔邀请知名技术博主杰夫·阿特伍德(Jeff Atwood)联合创业的核心战略考量。当时乔尔的个人博客《Joel on Software》月独立访客约 100 万,杰夫的《Coding Horror》月访客约 30 万,两人合力构成了程序员领域最头部的声量来源。在产品还没写完前,他们便通过 IT Conversations 平台推出了每周一次的开发进展播客,把架构设计与幕后故事毫无保留地公开。到网站正式上线时,这档播客已经沉淀了 20,000 至 30,000 名极具参与热情的铁杆听众,构成了开业首日塞满“窗边雅座”的种子专家。
在演讲当天的这一节点(距离上线数月),乔尔向现场公开了运营成绩单:
- **累计提问总量**:136,579 个技术问题;
- **真实解决率**:高达 91%。
乔尔严谨地强调了他对“已解答”的苛刻定义:绝非系统里多了一条回复就算数,而是必须有第三方用户为这条回答投下赞成票(Upvote),确认其切实有效。对于剩下的 9% 未解决问题,绝大多数要么涉及极其冷门的极端晦涩领域,要么就是难度大到了行业天花板。
### [28:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1715s) 社区爆发式增长与用户画像:覆盖全球三分之一的程序员
Joel Spolsky 用一组翔实的数据回顾了 Stack Overflow 推出半年来的迅猛发展。此时网站的内容帖子量(提问与回答)正保持线性增长,总数已逼近 80 万条。而在账户系统方面,团队大胆地完全押注于 OpenID:“We don't have any log in mechanism other than OpenID but as you can see you can log on just by two clicks if you have say, Google account which is nice.”(除了 OpenID,我们没有任何其他登录机制;但如你所见,只要你有 Google 账号,点两下就能登录,体验非常棒。)目前注册用户约为 6 万人,构成了持续泡在网站上、频繁生产内容与回答的核心社群;与此同时,外部受众的体量则要庞大得多,每月独立访客已突破 300 万,月访问量超过 600 万,月页面浏览量(Page views)达到约 1600 万,并且还在稳定攀升。
为了评估这 300 万独立访客的分量,Joel Spolsky 引用了微软开发者关系部门测算的数据——全球专业程序员总数大约在 900 万人左右。这意味着,仅上线六个月,没有任何多语言分站、仅有英文版本的 Stack Overflow,就已经触达了全球近 30% 的专业程序员。现场互动也印证了这一点:当他在 Google 演讲现场询问有多少人使用过或在搜索结果中见过该网站时,约 40% 的与会者举起了手;而在拉斯维加斯举办的 MIX 大会上,举手比例也达到了 30% 左右。更引人注目的是流量来源结构:整整 86% 的流量直接来自 Google 搜索,剩下的直接访问(Direct traffic)流量则大多属于深度参与者,即那些为了刷声望(Karma)而驻守在站内、乐于随时解答技术难题的核心用户。
- **内容规模**:提问与回答总量接近 80 万条,呈线性持续增长。
- **用户体系**:OpenID 注册用户约 6 万人;月独立访客超 300 万人(按 Google Analytics 统计);月访问量超 600 万次;月浏览量约 1600 万次。
- **行业渗透**:依托全球约 900 万专业程序员的基础测算,已覆盖约 30% 的英语专业程序员群体。
- **流量构成**:高达 86% 来自 Google 搜索引擎检索,其余大部分为站内常驻高活跃答题者。
---
### [30:50](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1850s) 垂直领域的野心与专业化护城河:Server Fault 及未来演进
谈及产品未来的演进方向,Joel Spolsky 强调了 Stack Overflow 严苛的内容边界:该网站专为编程与代码问题而生。如果你抛出一个诸如“为什么我的电脑每天半夜都会蓝屏”这样不涉及代码的问题,提问很快就会被社区关闭并踢出主列表。为了满足系统管理领域的庞大技术需求,团队正在全力打造姊妹站点 Server Fault。这一站点的目标人群被精准限定为“专业的系统管理员”,旨在坚决剔除只想解决家庭网络或询问“如何把 iPod 直接插在打印机上”的普通家庭用户。
Joel Spolsky 结合以往网络社区(尤其是 Yahoo Answers)的失败教训,总结出问答社区能够良性运转的核心法则:“...what we found, almost from the Yahoo Answers experience is that this kind of site only works when it's people that are doing something professionally.”(从雅虎知识堂的经验中我们发现,这种网站只有在服务那些具备专业职业身份的人群时才能真正奏效。)专业从业人员极其在意答案的准确性,渴望借此拓展专业技能,具有极高的严肃性,这与在雅虎知识堂上讨论青春期性话题的青少年的心理机制截然不同。此外,针对更长远的规划,Joel Spolsky 梳理了三大演进路径:一是作为纯粹的软件产品进行商业化推进;二是向高度专业化的行业克隆垂直问答站点(例如面向美国注册税务师的财税法规版 Stack Overflow);三是依托庞大的开发者技能图谱,打造精准匹配程序员与企业的招聘市场(Recruiting marketplace)。
```mermaid
flowchart TD
accTitle: Stack Overflow Multi-vertical Expansion Model
accDescr: Diagram illustrating how Stack Overflow branches into Server Fault, vertical technical Q&A, and professional recruitment while maintaining strict domain purity.
subgraph CoreEngine["核心问答机制"]
A["专业用户群驱动\n(职业诉求与声望机制)"] --> B["严格主题边界过滤\n(关闭无关/非专业提问)"]
end
subgraph ExpansionPaths["业务拓展方向"]
B --> C["Server Fault\n(专职系统管理员社区)"]
B --> D["行业垂直站点\n(如税务会计法规版)"]
B --> E["技术招聘市场\n(基于技术掌握度的精准匹配)"]
end
```
---
### [32:41](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1961s) 现场问答:社区治理、产品哲学与技术内嵌
演讲随后进入问答环节,现场观众与线上提问工具 Dory 抛出了一连串硬核的技术与运营问题:
现场首先探讨了标签管理(Tagging)机制。Joel Spolsky 解释称,输入标签时配有自动补全功能,系统会自动引导用户复用已有标签,并配备了标签合并机制以及相关的官方管理流程。关于社区不良行为的治理与自动化惩罚,观众提问社区究竟是完全自治还是面临恶意行为。Joel Spolsky 表示确实存在不良行为,但团队坚持借鉴 Google 的工程思维,优先通过算法解决系统性问题,而非耗费人力逐一封禁个体。例如,平台设立了警告机制与惩戒黑名单(Penalty box)算法:如果用户违规且无视警告,将被关进为期一周的禁闭惩罚期,在此期间无法获得任何声誉点数。
当被 Dory 上的观众问及“最引以为傲的 UI/交互设计是什么”时,Joel Spolsky 避开了具体的界面元素,而是谈到了响应速度带来的颠覆性体验。他坦言自己过去做程序员时,极度缺乏在传统论坛发帖的耐心,因为提问往往需要半天甚至一整天才能得到回复,他宁愿不断在 Google 上疯狂搜索。而 Stack Overflow 的天才之处在于,提问界面本身就是一个搜索过程;当发现没有现成答案时,只需再点一下就能直接发布,答案通常在三到四分钟内就会源源不断地涌现:“...the act of asking a question is also the act of searching for an answer.”(提问的过程本身就是搜索答案的过程。)针对企业私有化部署和授权的提问,他表示由于目前全职团队仅有大约 4 个人,短期内完全没有资源与精力去落地,但长远来看企业内部知识库方向非常合理。
---
### [35:48](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2148s) 社区弊端反思、零骚扰变现原则与来自 Python 之父的彩蛋
随后,观众 Devon Mollins 通过 Dory 提出了一个尖锐的问题:在 Stack Overflow 最初的设计中,Joel Spolsky 最不满意或最感尴尬的是什么?Joel Spolsky 坦率反思了当前社区过于严苛的关闭机制对新手的伤害。他指出,许多用户提的问题虽然非常有价值,Stack Overflow 的技术架构也完全能够给出完美解答,但仅仅因为该问题不属于狭义的“编写代码”,就会立刻招致核心社区成员的群起围攻并强行关闭:“...say go somewhere else I don't know where but go somewhere else and we just don't have a place to send them right now...”社区目前缺乏妥善分流这批用户的出口,只是冷酷地把人赶走,这种对首页“纯编程问题”纯洁性的过度执念,暴露出平台缺乏对新手应有的包容度,这正是即将上线的 Server Fault 迫切需要解决的问题。
在商业化(Monetization)方面,Joel Spolsky 透露团队运营成本极低,仅靠 4 个人和 2 台服务器运转,目前的少量广告甚至是被客户硬塞钱才挂上去的。针对未来盈利,他做出了极其坚决的承诺:“...we are never ever, ever going to charge to go to the site, we're never going to have interstitials, we're never going to have advertising that has any kind of motion in it like flashing ever...”无论未来如何探索商业化,Stack Overflow 绝不会向查阅者收费,绝对不放插屏广告,绝对不允许任何包含闪烁或动态效果的广告(无论是 Flash 还是动图),网站的核心问答功能将对全球所有人永久免费。
在这一节的尾声,线上通道迎来了一位特殊的提问者——Python 之父 Guido van Rossum。Guido 幽默地发问,Joel Spolsky 曾经那篇著名的技术博客文章《绝对不该做的技术蠢事·第一部分》(Things You Should Never Do, Part 1)究竟会不会有第二部分。Joel Spolsky 笑着解密称,这个标题纯粹是在致敬梅尔·布鲁克斯(Mel Brooks)的经典讽刺喜剧电影《世界历史第一部》(History of the World, Part I),其笑点本身就在于“永远不会有第二部”,读者或许得等到世界末日才能看到续篇了。
### [38:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2294s) 从零重写代码的灾难:从 Netscape 到 Perl 6
Joel Spolsky 谈到了他在多年前写过的一篇著名博客文章(《Things You Should Never Do, Part One》)。他的核心论点是:如果一个系统拥有规模庞大、正常运行且有众多用户依赖的代码库,开发者绝不能轻易决定“从零重写”。代码在迭代中包含了无数辛苦换来的知识和修补细节,一旦全盘放弃从头再来,这些隐性经验都会付诸东流。最正确的做法是想方设法在现有代码基础上重构和演进,即使最终替换了每一行代码,也绝不能推翻重来。
他指出历史上最典型的受害者就是 Netscape。Netscape 当年决定彻底重写浏览器(即 Mozilla 的重写计划),在 Joel 看来,这让他们直接白白浪费了大约三年时间。而正是在这三年里,微软的 Internet Explorer 迅速占领市场,份额攀升至近 90%。尽管 Firefox 最终发布并逐渐收复失地,但 Joel 强调这纯粹是因为微软在赢得浏览器大战后解散了 IE 团队长达五年、毫无作为,Firefox 纯粹是“侥幸捡漏”。Joel 还回忆道,当年文章发表后曾有人发邮件质疑他:“你关注过 Perl 6 吗?”八年过去后,Perl 6 依然没有正式发布,并且几乎已经被技术界淡忘。
> “there is nothing that you can do is that bad to a software product and you just decides to start over” —— Joel Spolsky
---
### [39:35](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2375s) 专业开发者与普通大众的 UI 差异:标签体系与 Markdown 编辑器
现场观众提问:如果面对的是高精尖的普通消费者而不是硬核专业程序员,Stack Overflow 会做出怎样的 UI 改动?Joel 直言,Stack Overflow 的产品机制很难直接复制到像“园艺”这样的生活领域,它或许适合专业园艺从业者,但不适合普通爱好者。专业人士坐在办公桌前从事专业工作,具有学习略微复杂的 UI 的意愿与能力;而普通消费者则不会为了解决问题去克服这些操作门槛。
针对程序员群体的特点,Stack Overflow 采取了许多特殊的 UI 与产品设计,其中最显著的就是“标签体系(Tagging)”和“Markdown 编辑器”。在没有任何新手引导或详细说明的情况下,程序员能极其精准、自觉地为自己的问题打上合适的标签;即使偶尔有人打错,其他社区成员也会主动编辑修正。此外,由于编程问题几乎必然附带代码片段,网站提供了一个带有即时预览功能的大型 Markdown 输入框。虽然 Markdown 语法略显繁琐,对普通大众绝非易事,但平台上的程序员从未对此产生过任何抱怨或使用障碍。
```mermaid
flowchart TD
accTitle: Stack Overflow 面向专业程序员的 UI 与机制
accDescr: 展示专业用户特质与 Stack Overflow 产品设计之间的匹配逻辑
subgraph UserTrait ["用户画像特征"]
P1["坐办公桌前的专业技术人员"]
P2["具备学习复杂 UI 的意愿与能力"]
P3["对结构化分类有天然理解"]
end
subgraph ProductUI ["针对性 UI / 交互设计"]
T1["无需额外解释的标签系统 (Tagging)"]
T2["支持代码高亮与即时预览的 Markdown 编辑器"]
T3["开放社区编辑与修正权限"]
end
P1 --> P2
P2 --> T2
P3 --> T1
T1 --> T3
```
- 程序员群体具有自发归类和维护标签的直觉,免去了平台教育成本。
- Markdown 作为一种介于纯文本与 HTML 之间的语法,对专业程序员完全没有门槛,但无法直接推行给普通大众。
---
### [41:23](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2483s) 提问增长放缓的质疑与平台流量的成倍扩张
一位名叫 John Street 的观众转述了 2 月 27 日博客上的一个观点:数据显示 Stack Overflow 每月新增的提问与回答数量似乎并没有预期中那样爆发性增长,这是否令人担忧?还是说只要高价值问答知识库持续稳定沉淀就已经足够?
Joel 回应称,自己并没有深入钻研底层的统计学细节,无法确定增长曲线是线性、指数型,还是处于指数曲线的起步阶段。但他对此完全不担心,因为从 Google Analytics 的实际数据来看,网站的总体流量几乎保持着每四个月翻一番的速度迅猛增长。
> “It doesn't worry me at all as long as I see--I mean like literally every week I go and I look at Google Analytics and you know we're kind of doubling every four months.” —— Joel Spolsky
---
### [42:17](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2537s) 问答生命周期与新兴技术的聚集地效应
Joel 随后将现场提问机会留给后排观众,解答了关于老旧问题价值与内容沉淀的问题。他解释说,网站上的问题明显分化为两类:一类是无趣的碎片化提问,比如某人遇到了特定的崩溃代码,别人帮他指出了一个笔误,这种问题一旦解决便再无人问津;另一类则是探讨核心共性技术的经典问题,它们会成为全网公认的权威参考地。系统记录并展示了每个问题的浏览量,部分极其热门的趣味问题(例如“程序员最喜欢的漫画是什么?”)能获得数十万次浏览和数百个赞同票,被 Digg、Slashdot 等社区大量反向链接,从而拥有极高的 PageRank。
Joel 指出,Stack Overflow 正在成为所有“新兴编程技术”的首选问答社区。当年苹果推出初代 iPhone 时,为开发者提供了保密协议(NDA)和一个体验极差、几乎无法交流的官方论坛,导致 iPhone 开发者集体涌向刚刚上线的 Stack Overflow,使平台一跃成为 iPhone 编程领域的最大知识库。现在,每当出现新技术,技术创建者不再费时费力自建论坛,而是直接号召开发者在 Stack Overflow 上使用对应的技术标签进行交流。相比之下,像 Visual Basic 6 这种早已被微软淘汰的老旧技术,其主要知识沉淀仍停留在旧时代的带连字符网站(如 Experts-Exchange)上,Stack Overflow 上的积累很少;至于更加过时的 COBOL,全站当时也仅仅只有 44 个相关问题。
- 趣味讨论帖(如“最喜欢的程序员漫画”)浏览量达到 12 万次,赞同票超 500 票(Joel 调侃自己最喜欢的是 XKCD 中“Little Bobby Tables”那个 SQL 注入漫画)。
- 新兴技术的支持生态从“自建独立论坛”全面转向“Stack Overflow + 专属标签”。
- 历史遗留过时语言(如 VB6、COBOL)在平台上的问答数量极低。
---
### [45:25](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2725s) 庞大用户群下的功能迭代与外部沟通渠道
观众提问:在拥有了如此庞大的专家级核心用户群之后,想要添加新功能或改动产品会变得极其困难。Stack Overflow 是否面临这一阻力,又是如何试验新功能的?
Joel 表示,团队目前主要是在细节上进行微调,绝不会激进地把主页改成类似 Twitter 的形态而惊吓到用户。为了避免网站自身被“关于 Stack Overflow 的元讨论”所污染,团队严格规定 Stack Overflow 内部禁止发布与网站本身相关的非编程问题,而是开辟了三个外部渠道来收集反馈和讨论新功能:
1. **UserVoice 站点**:专门接收用户的功能需求建议(Feature Requests)并在其上展开讨论。
2. **Joel 与 Jeff Atwood 的播客**:每周与听众沟通,接听电话、回复邮件并探讨正在开发中的新功能。
3. **Stack Overflow 官方博客**:团队正式介绍和发布新功能的主要阵地,博客下方的评论区是功能讨论最密集的核心场所。
---
### [46:39](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2799s) 社区维基(Community Wiki)与防止刷分机制
有观众询问:当一个高赞回答被其他人后续编辑修改后,系统如何确保它的质量依然优秀?Joel 承认,系统本身无法百分之百保证,但它采用了类似维基百科的模式,任何人都可以查阅历史版本记录以进行监督。
Joel 借此详细剖析了 Stack Overflow 独特的混合架构:平台既像个人博客那样保留作者的署名权与声誉积分(Reputation/Karma),又引入了“社区维基(Community Wiki)”机制。当一个帖子进入社区维基状态后,它属于公共领域,不再属于任何个人,后续的赞同票也不会再为原作者增加声誉点数。一个帖子被转为社区维基通常有两种途径:作者自愿放弃个人归属权,或者触发了系统的强制转化规则(例如问题被过度编辑、编辑次数过多,或者属于吸引大量眼球的软性话题)。通过这套精密的规则,平台有效防止了用户利用类似“你最喜欢的漫画”这种极易在 Digg 上爆火的泛技术/偏题内容来无休止地收割声誉点数。
> “Things will eventually get into community wiki mode because we don't want somebody earning a billion points of Karma just because they ask a really popular and slightly off topic question to get unto dig.” —— Joel Spolsky
### [48:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2894s) 巨头对高校人才的“真空吸尘器”垄断与架构宇航员争议
现场提问环节中,主持人念出了一个匿名的尖锐问题,质问 Joel Spolsky 为何曾公开指责“Google 和微软的年轻人都在搞毫无希望且毫无用处的‘架构宇航员(Architecture Astronomy)’式架构”,而且说得好像这是一件极其糟糕的事情。Spolsky 一时想不起自己是在哪篇文章中写下这段原话的,现场打趣着试图打开搜索框搜索自己的过往博客。主持人 Marr 笑着调侃他可以随便用任何搜索引擎,现场还因为输入法和拼写问题引来一阵笑声。Spolsky 在浏览搜索结果中其他博主和讨论区的引用链接时,提到了诸如 Live Mesh 以及 Google 开出的高额薪资等话题。
在找回语境后,Spolsky 坦率地捍卫了自己的核心观点:大厂给刚毕业大学生的起薪确实定得过高了。他形象地指出,微软和 Google 就像是部署在斯坦福大学、加州大学伯克利分校(UC Berkeley)以及华盛顿大学(UW)校园里的“巨型真空吸尘器”,在任何情况下都以尽全力扫光所有顶尖人才的模式疯狂招聘。这种无节制的人才垄断直接导致小型创业公司极难招募到优秀工程师。Spolsky 直言,哪怕这些巨头内部某些项目本身有其设计价值,但在场的许多工程师心里很清楚,身边同事所研发的某些东西,其重要性恐怕远远比不上外界那些创业公司正在攻关的方向。
> “That’s actually true your starting salaries are too high guys, especially out of college.” —— Joel Spolsky
> “But Microsoft and Google are really like gigantic vacuum cleaners at Stanford and Berkeley and U-Dub.” —— Joel Spolsky
- 争议起源于 Spolsky 著名的“架构宇航员”论调,指责工程师沉溺于过度抽象、脱离现实落地场景的高级架构设计。
- 巨头的人才吸纳策略被指对科技创业生态产生挤出效应,由于两家公司此前长期奉行“不论何种情况都要尽可能多招人”的人才囤积战略,中小团队在顶尖应届生招聘上面临巨大的薪资与品牌劣势。
---
### [50:40](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=3040s) Stack Overflow 中嵌入可执行代码的局限性与尾声
在整场演讲的最后一个名额中,Spolsky 邀请现场观众提问,并开玩笑问是否有人想探听 Google 今年的应届生起薪究竟是多少。最后一名观众提问:Stack Overflow 是否考虑过在回答中安全地嵌入“可直接运行的代码示例(executable code samples)”?
Spolsky 回答称,Stack Overflow 当时已经通过语法高亮等方式很好地嵌入了只读源代码,并且他们实际上正在使用 Google 开发的一个开源小工具(即 Google Code Prettify)来优化代码展示体验。对于让代码直接在网页中运行的设想,Spolsky 指出,哪怕在安全性上能够做到绝对沙箱隔离,从产品实用性来看也并非一个通用的好主意。因为 Stack Overflow 上的绝大多数提问涵盖了各种后端语言、系统底层及复杂的运行环境,在浏览器内直接运行代码的能力充其量只能服务于 CSS 或 JavaScript 等前端问题,对站内绝大多数的技术问答场景并没有实质帮助。回答完毕后,Spolsky 向全体与会者致谢,圆满结束了本次 Tech Talk。
> “And when you think about the type of questions that people are asking here, seeing it then run the browser, I mean that would probably be applicable only to, you know, CSS questions or JavaScript questions but to the majority of the type of code that people are really asking about here.” —— Joel Spolsky
## Notable quotes
> [32:41](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=1961s) the act of asking a question is also the act of searching for an answer. — Joel Spolsky
> [02:16](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=136s) And I actually feel like search engines are kind of failing in a particular realm of expert questions and answers where something you could ask an expert and the expert would be able to give you a true and correct answer. — Joel Spolsky
> [48:14](https://www.youtube.com/watch?v=NWHfY_lvKIQ&t=2894s) Microsoft and Google are really like gigantic vacuum cleaners at Stanford and Berkeley and U-Dub. — Joel Spolsky
## Mentioned
Joel Spolsky, Jeff Atwood, Michael Pryor, Chris, Allen, Guido van Rossum, Jason Calacanis, Phil Greenspun, Mel Brooks, Stack Overflow, Google, Microsoft, Fog Creek Software, FogBugz, Coding Horror, Yahoo Answers, Experts-Exchange, Mahalo Answers, Askville, SQLServerCentral, Server Fault, UserVoice, IT Conversations, Digg, Slashdot, XKCD, Netscape, Mozilla, Firefox, Internet Explorer, Perl 6, Live Mesh, Google Code Prettify, Microsoft SQL Server 2008, Windows Server, C#, VBA, Excel, OpenID, Google Analytics, Xbox 360, Stanford University, UC Berkeley, University of Washington
## Video description
Google Tech Talk
April 24, 2009
ABSTRACT
Presented by Joel Spolsky
Until recently, searching for help on highly technical programming problems has been a mess. A lot of what the search engines found was old discussions in forums, where you have a lot of wrong answers and out-of-date answers that you have to sift through yourself. You also found a lot of answers at sites that were hidden behind a pay wall, which uncloaked themselves for Google and then demanded membership fees to see the answers.
StackOverflow.com is a programmer's Q&A site that launched last September to address these problems. It incorporates more modern ideas about community such as voting and public editing, and even a few ideas from game design, to create a much more successful way to get help with programming problems. In a few short months, it has grown to 14 million page views a month and reaches 3 million unique programmers every month. The lessons we've learned in creating a successful Q&A site has many implications for search which I'll share in this talk.
[Source](https://www.youtube.com/watch?v=NWHfY_lvKIQ)
Source quotes
[32:41] Joel Spolsky: the act of asking a question is also the act of searching for an answer.
[2:16] Joel Spolsky: And I actually feel like search engines are kind of failing in a particular realm of expert questions and answers where something you could ask an expert and the expert would be able to give you a true and correct answer.
[48:14] Joel Spolsky: Microsoft and Google are really like gigantic vacuum cleaners at Stanford and Berkeley and U-Dub.
Source quotes
[23:44] Joel Spolsky: We designed our site with the assumption that our homepage is Google.
[3:19] Joel Spolsky: The environment that you create influences people and how they behave, and similarly the user interface you create for your applications will influence how people behave and you have to think about it as an anthropologist to be able to do a good job.
[8:20] Joel Spolsky: Search engines get you a lot of wrong answers when you search for highly technical questions and that's the biggest problem.
Original transcript
[0:22] >> CHRIS: Hi, everyone.
[0:23] Welcome.
[0:24] I'm Chris, I run the open source group here
at Google.
[0:28] So, when I--when I send off--well, actually
when Allen did the hard work of setting up
[0:32] the room, and setting up the announcement
that Joel is coming.
[0:35] I got a lot of email, I got one was like,
"Wow, it is really fine that Joel's coming
[0:38] here on the middle of Perth."
[0:41] And I thought that was scary and funny at
the same time, because I was in the [INDISTINCT]
[0:47] when I got that.
[0:48] And then, the other one was, "Can we get a
copy of StackOverflow for our internal use?"
[0:50] And I was like, "Well, you can ask him at
the thing."
[0:54] Which brings up questions, we have a [INDISTINCT]
set up, if you'd like to use it, you don't
[0:58] feel like using your own voice and just typing,
that's fine and for our friends who are VeeSeeing
[1:03] from 700 offices worldwide.
[1:05] So, just search for Spolsky, I'm sure you'll
find the [INDISTINCT] page, you're smart people.
[1:12] So that's about it.
[1:14] With no further ado, Joel Spolsky.
[1:18] Thanks.
[1:19] >> SPOLSKY: Thanks.
[1:20] Thanks for coming.
[1:21] Everybody can--can people hear me?
[1:25] Is this is working?
[1:26] I'm trying to stand over here because I understand
that these scanners are trying to take an
[1:29] image of my brain, which are going to upload
it into a computer and run to do searches
[1:34] for the best sushi restaurant in Palo Alto
for the rest of my life.
[1:37] I'm going to talk today about StackOverflow.
[1:39] Let me introduce myself a little bit if you
don't know the whole story.
[1:43] I'm actually with Michael Pryor, who's sitting
here, the co-founder of Fog Creek software,
[1:47] which is a software company in--I'm going
to walk around a little bit because when I
[1:52] stand here the camera goes on me.
[1:53] It's a software company in New York City.
[1:56] We started about eight years ago.
[1:58] It makes fog bugs which is bug tracking and
project management software, used by development
[2:00] teams around the world, to make better software.
[2:04] The--another project that we launched recently
working with [INDISTINCT], who's a blogger
[2:10] at the website [INDISTINCT].com.
[2:12] It's called StackOverflow and that's would
I want to talk about.
[2:16] StackOverflow is a website where people ask
questions and get answers.
[2:23] You may not be able to see that, so I'll back
up just to make sure--yeah, that's [INDISTINCT]
[2:27] getting the whole screen here.
[2:29] There are a lot of questions and answer sites
and there's couple things I want to talk to
[2:32] you today, this is Google.
[2:35] That have to do with search, because I actually
feel like search engines are kind of failing
[2:39] in a particular realm of expert questions
and answers where something you could ask
[2:44] an expert and the expert would be able to
give you a true and correct answer.
[2:47] And the search engines for various reasons
which still going to are just not finding
[2:51] it.
[2:52] And a lot of the companies organized around
search have tried to make question and answer
[2:56] type of portals and Yahoo is famous for these,
"How is babby formed?"
[3:01] question.
[3:02] Mostly which you find on Yahoo answers appears
to be adolescents asking questions about reproductive
[3:08] sciences.
[3:10] And just to put it politely and most of which
you find--and for various other reasons, the
[3:16] stuff is just not working out that well on
the search engines.
[3:19] But, what I'm really going to do today is
tell you a little bit of a story, and it's
[3:22] a story about anthropology and sociology.
[3:25] And the story is about how, when you have
a group of people and you give them an environment,
[3:30] you don't even have to have a people, you
just create an environment.
[3:32] Those people will come into the environment
and behave according to what you built.
[3:39] In certain very, very subtle ways that you
probably didn't think about.
[3:42] So, these are the Spanish steps in Rome and
they're meant to go from the Spanish Embassy
[3:49] to Bourbon Embassy at the base of the steps
up to the Trinita dei Monti church top.
[3:55] And so they were built to be stairs but they
became sort of this living room for backpackers
[3:59] in the middle of Rome which many of you probably
went to in your gap year.
[4:03] And partially it has to do with the steps
being the perfect, comfortable height to sit
[4:08] on.
[4:09] The steps are very wide so you're not blocking
anyone if you're sitting there.
[4:12] And you have a fantastic view of the Piazza
down at the bottom.
[4:14] When you're sitting on these steps and so
they became sort of a living room because
[4:18] of the shape.
[4:19] And this was completely non-intentional some
things--some things are a little bit more
[4:23] intentional where you create an environment
with the goal maybe staring people or letting
[4:28] people wait on line or whatever that is that
you're doing.
[4:30] And some things are even more precisely designed
to create a certain type of behavior, whatever
[4:37] it maybe.
[4:39] And one of the things that we're learning
as we move in to the era--moving from the
[4:44] era of computing to moving into the era of
the internet is that we're no longer worrying
[4:48] about computer-human interaction.
[4:50] Because that's kind of solved problem usability,
I don't want to say solve but usability is
[4:54] something which is no longer a major impediment
and there are a lot of known solutions.
[4:59] What's not known so well is when you're using
a computer and there are other people involved
[5:04] because it's an email programmer, it's a social
programmer, social networking or its web 2.0
[5:09] now, I'm not allowed to say that.
[5:11] I take that back.
[5:15] You have to think about human to human interaction
that means you have to be anthropologist and
[5:18] you have think about how humans work?
[5:19] And you have to think about stuff that ethnographers
and culture anthropologists like to think
[5:24] about all the time.
[5:25] So, that's really what we thought about.
[5:28] The environment in anthropology is very clear
that the environment that you create influences
[5:33] people and how they behave.
[5:35] And similarly the user interface, you create
for your applications will influence how people
[5:40] behave and you have to think about it as an
anthropologist to be able to do a good job.
[5:44] I'm not talking about how we did that with
StackOverflow and why it works and so on.
[5:49] So when you have an app like Yahoo Answers,
let's just--I just want to poke around some
[5:52] of the other--this is what we did in the early
days as StackOverflow, we poked around some
[5:55] of the competition.
[5:56] The question and answer websites to try to
see like what the heck is going on here in
[6:00] terms of user interface and some of these
maybe accidental, ask, answer, discover.
[6:06] What is it about this website that means if
you really do get teenagers asking questions
[6:10] like, "What eats the ants if I squish?"
[6:13] At least it's not who eats the ants squish--Mahalo
answers, I don't know if you heard of this
[6:20] but this the website from [INDISTINCT] who
has an inornate belief in micro payments for
[6:24] some reason and so the website is all about
earning a dollar, a Mahalo dollar doing this,
[6:28] and spending a Mahalo dollar doing that.
[6:31] And that creates a certain environment and
it creates questions that are all kind of
[6:34] like scams where you can earn $7 or get a
coupon good for $5 off at Supercuts or whatever.
[6:40] There are much more serious forums, this is
the sort of standard, I'm going to call it
[6:45] the phpBB look almost all web forums are either
using software that looks exactly like this
[6:50] or they're actually using php itself which
look exactly like this.
[6:53] With this idea of topics and what applies
and who knows and it all looks very serious.
[6:57] This particular website which who's name I
will not mention but it's got a big hyphen
[7:04] in the middle of the URL and we'll call it
the hyphen website from now on.
[7:09] And it is--I don't want to officially say
the resondetra for StackOverflow, it certainly
[7:16] pushed me over the edge because this is a
website where you ask a question usually typing
[7:19] it into Google about a specific engineering
or [INDISTINCT] topic.
[7:23] And you go--the answer appears to exist there,
and when you go there you don't see the answer,
[7:28] you see a lot of pages saying, "Please sign
up, give us money and you will see the answer"
[7:31] and you say, "Wait a minute, that's not right
they must be showing a different page to Google,"
[7:33] and they're showing it to regular people and
there's a secret which I won't let you in
[7:39] on because I want them to burn in hell but
that particular site looks like--what it looks
[7:47] like because--I mean they create a site.
[7:48] What does this look like?
[7:49] This looks like one of those corporate enterprise
start-ups, right?
[7:52] Like we won't even tell you how much it costs,
just go to the bank and get all your money
[7:55] bring it to us, give it to us and then go
back to the bank so you can get a loan.
[8:01] Amazon sort of kept reading all the articles
and Newsweek magazine about how Google was
[8:05] just a big search box, so they made a big
search box where you can ask a question right
[8:08] at the top and I don't know if that really
make sense, but people ask a whole lot of
[8:12] questions in here and they don't answer.
[8:14] A heck of a lot of questions and that's just
the part of like the design decision to emphasize
[8:19] asking rather than answering.
[8:20] So we built StackOverflow and it looks kind
of bizarre and there's all kinds of little
[8:25] bits and pieces all over the place which makes
it [INDISTINCT] to programmers.
[8:28] But I want to go over, here's a little bit
of the story concept was about the beginning
[8:36] of 2008 we started coding with almost exactly
a year ago we shipped, we launched in September
[8:42] 2008 we had a like a four-week [INDISTINCT]
or something and we've been around for about
[8:46] six months and we're currently running six
million business a lot.
[8:49] And I'll go into more details on that.
[8:52] [INDISTINCT] there are certain reasons that
we thought search engines were failing with
[8:56] various queries, this is--this is not actually
particularly bad example of it but knowing
[9:05] that LI is HTML tag is something that search
engines don't necessarily know.
[9:14] I'll go more into it--this is my list of problems
with search that StackOverflow is trying to
[9:20] solve, and we're trying to solve all these
problems at the same time.
[9:24] Number one, the sign-up scams, so that's website
with hyphen where they're trying to--they
[9:29] tell you that you have to sign up and pay,
if you want to see the answer and actually
[9:33] if you don't.
[9:34] There's just these little road bumps like
register, this is from SQL Service Central
[9:37] but a lot of them have this, it's like, "Hey
we got the answer for you just one--wait--just
[9:40] please register."
[9:42] And that's just a little bit frustrating and
that actually reduces participation, I think
[9:46] dramatically.
[9:47] Now, in here--now we're going to get into
some serious things here, search engines get
[9:51] you a lot of wrong answers when you search
for highly technical questions and that's
[9:55] the biggest problem, so here are three popular
categories, it's the security hole a lot of
[9:59] times we find a piece of sample code and somebody
had said here's the answer to your problem
[10:03] and it's something like turn off your firewall
or more specifically, you know, just the typical
[10:10] like XSS vulnerabilities, SQL injection vulnerabilities
that you see in like so much sample code and
[10:16] when you see that result.
[10:17] You do a search, you see--you get a result
you say, "Whoa, there's an XSS vulnerability
[10:21] there, I got to tell this guy."
[10:22] There's no way to do it, there's no way to
change it, there's no way to fix it on a typical
[10:26] form software because you're looking at a
discussion that took place four years ago.
[10:29] And then there's the "Hard" problems, this
is a--I don't know how popular it is but a
[10:33] Google interview question implement Rand(7)
in terms of Rand(5) and I won't go into the
[10:38] details here but there's a lot of wrong answers
to this question which is awesome because
[10:43] I can use this as an interview question for
college students and even if they've researched
[10:48] this question they will come in with a wrong
answer because you have to have a certain
[10:52] level of smarts to be able to distinguish
between all those people asking their question
[10:56] and providing wrong answers and people providing
right answers incidentally StackOverflow has
[10:59] the right answer.
[11:00] Multiple answers is much more common where
you get to a discussion form and somebody
[11:04] says, "Have you tried this?"
[11:05] "Have you tried that?"
[11:06] "Yo, I think there's an article about that.
[11:07] Here's a [INDISTINCT] based article et cetera,
et cetera, et cetera.
[11:11] You have no choice but to try every answer
and see if it works usually in the dark until
[11:15] you accidentally kick upon something that
works so there's, there's, there's no page
[11:19] rank among answers to highly technical questions.
[11:23] A lot of times you get obsolete results because
there's no page rank.
[11:26] When you have a very, very narrow technical
question about some very, very obscure idea
[11:30] that's not working in some very obscure way
on some obscure platform that you're programming
[11:34] for, there's only a hundred people that are
going to ever going to look at that question
[11:37] and therefore nobody is ever going to link
to the question and certainly you can't use
[11:41] page rank to link to the appropriate answer.
[11:44] Nobody's going to write a blog post about
how the best answer to this obscure question
[11:48] in such and such.
[11:49] So the authority of all these sites and page
rank is [INDISTINCT] unless you know may be
[11:54] the site has some rank but it's just discussion
forum.
[11:56] So it's very, very hard for a search engine
to see what the right answers are.
[12:01] It doesn't have any way of using it's normal
methods and in particular you get certain
[12:04] common problems, obsolete results is a really,
really popular one is that Google for example
[12:10] knowing nothing else about two pages will
take the older one and give it a little there--well,
[12:15] it's been on the internet for longer and give
it a little bit of a push.
[12:18] And that's actually turns out to be fundamentally
wrong with a lot of technology so a very,
[12:23] very common problem we find is, how do I do
such and such on my iPhone and then you get
[12:28] to a lot of [INDISTINCT] no, it's just not
possible.
[12:30] There is absolutely no way to write an apple
application for the iPhone unless you make
[12:34] a webpage and access it by a Safari and that
was true for a year and it's not true anymore
[12:40] but there's a lot of pages that still say
that.
[12:42] Similarly if you search right now for interior
photography on Google, your number one result
[12:46] is on awesome article about interior photography
written by Phil Greenspun before anybody had
[12:51] digital cameras.
[12:54] So here's my four key reasons why search engines
are struggling with these highly technical,
[12:58] "I've got a programming question."
[13:00] Problems number one and two where they have
two few views so there's no authority--that's
[13:05] really number two.
[13:06] There are too many ways to phrase the same
problem, a lot of times you're struggling
[13:10] to find the right words that will happen to
coincide of the words that the person describing
[13:14] your problem happened to use.
[13:16] And that means that your search space basically
is kind of diffuses among all the different
[13:22] possible synonyms for particular--for a particular
problem and then there's a preference for
[13:27] old links.
[13:29] So here's nine things that we did in StackOverflow
to try to build the site that got around all
[13:33] these problems and these are really these
are the nine building blocks of the social
[13:37] engineering that we did to try to create a
site that was anthropologically correct and
[13:42] it would cause people to behave in a way that
it would work and it would basically solve
[13:46] all these problems.
[13:47] I'll go through them one at a time because
there's the key part voting.
[13:51] This is the easiest thing--I mean these things
are really, really easy.
[13:54] Every single one of these ideas are copied
from somewhere else.
[13:56] This one is copied from a red head by a [INDISTINCT].
[13:59] Voting is the idea that you vote up the answers
that are good and it's actually astonishing
[14:04] on StackOverflow how quickly the voting gets
you the right answer because other people
[14:08] come in and vote up the right answers and
this happened--this is a question that was
[14:12] asked an hour ago and within an hour that
number one question already had nine votes.
[14:18] So as you can see, it--within--usually within
a matter of minutes for common questions.
[14:24] You get a bunch in answer sort of flowing
into the best ones get voted up.
[14:29] There's one little tweak of the voting algorithm
which is the person who originally asked the
[14:33] question has the special power to bestow upon
one answer as the official answer on to the
[14:39] top no matter what the votes are.
[14:41] And right below that you'll see the number
community voted.
[14:43] So here's an example of a question where the
person asked the question decided that that
[14:47] answer over there marked number 26 was actually
better than what the community thought or
[14:52] solved his problem better than what the community
thought was the best answer which is number
[14:58] 78.
[14:59] Rather than picking a particular topic of
programming and attacking that first or creating
[15:03] a hierarchy like Usenet which is web 1.0 technology,
I guess which is an old fashion technology.
[15:10] We decided to use tags and if you look at
the questions on StackOverflow people are
[15:14] pretty good in putting tags in their questions.
[15:16] And there are usually two or three obvious
tags to put any question.
[15:19] So it allows you to say, I'm asking this question
from a BB.net perspective not a Csharp perspective
[15:26] or I'm asking this question, you know, I'm
using--like a lot of times you'll see these
[15:30] questions and you'll--or you'll be searching
for questioning and get to a result that doesn't
[15:34] even apply to the correct technology that
you're actually using, it's that same in a
[15:39] different domain.
[15:40] So we put the tags in but we did really, really
need stuff for the tags.
[15:43] So number one, we wanted you to be able to
create a view if you're a python programmer
[15:47] we wanted you to be able to make StackOverflowing
to a site that's great [INDISTINCT] resource.
[15:51] You can tell at what questions you're interested
in?
[15:53] What tags you're interested in?
[15:55] What technology you're interested in?
[15:57] We also wanted you not to have to see things
that you're sick and tired of hearing about.
[16:00] Like let's say you just really don't--never
want to hear about .net programming ever again.
[16:04] And so you can list ignore tags which you'll
never see but then actually StackOverflow
[16:10] is doing all kinds of really smart stuff of
these tags.
[16:12] So, for example my program [INDISTINCT] is
exceedingly obsolete.
[16:16] I worked on a little product called Excel
where I was in charge of the Micro language
[16:19] strategy indicated the thing called visual
basic for applications which is a way of programming
[16:24] the Excel which is very, very old but people
still use it.
[16:26] And so those the tags that I picked, you could
see up there, I picked BBA and Excel.
[16:31] And when I come to the site now, it's going
to look for questions that the things I can
[16:35] answer not because I said I was interested
in those tags but because I have successfully
[16:39] answered those tags in the past because I've--because
StackOverflow recognizes me as somebody who
[16:44] can answer these obsolete questions on Excel
BBA.
[16:49] Whenever there is a question on Excel BBA,
StackOverflow is going to try to show it to
[16:53] me because that's the best way they can get
it, answered in.
[16:56] As a result of this intelligence that's sort
of tagged base and our knowledge of the participants
[17:00] in the site and what their skills are we're
able to achieve more than 90% of questions
[17:07] getting answered with an accepted answer.
[17:10] We have editing and here's a little diff showing
a typical edit that occurred.
[17:13] The purpose of editing was originally so that
questions could get better and answers could
[17:18] get better and better and better rather than
freezing.
[17:21] Most form software that discussion thread
takes place in 2004 and four, five people
[17:26] participate and then it just remains as this
frozen artifact on the internet until the
[17:30] end of time and that's why questions get out
of date.
[17:32] And then also is why you can't remove errors
when you discover them and the questions never
[17:36] get better.
[17:37] So we kind of look at Wikipedia and said why
if we let everybody come in and added these
[17:41] entries.
[17:42] And make them better and better and better
and the model for StackOverflow, you know
[17:44] one of the early pitches was it is a Wikipedia
for--where every topic is in extremely specific,
[17:50] very, very long tail programming question.
[17:53] Where we'll have the best--the question--we'll
have the answer---the answers will be sorted.
[17:58] Anybody can come in and edit.
[17:59] So if you've discovered that the number one
answer has a flaw in it, you can hit the edit
[18:04] button and fix it.
[18:06] And if you discover that the question is poorly
written or the question was written too narrowly
[18:09] or the question was not explicit enough, you
can go in and edit the question to make it
[18:13] a better question.
[18:14] And our hope is that a large body of the questions
that are in StackOverflow will become the
[18:19] canonical place on the internet to learn about
very, very narrow specific questions about
[18:25] very, very narrow and specific programming
topics.
[18:27] So in this particular case, this guy Martin
very quickly answered the question and hopes
[18:32] that he would help the person as quickly as
possible.
[18:34] The person asking the question just get something
out there.
[18:36] So maybe that will help the guys solve his
problem right away.
[18:39] And then he came back two days later because
he was disappointed that he wasn't earning
[18:41] enough points for his question because his
question was kind of--or sorry his answer
[18:46] was just a couple of lines saying, "Go use
[INDISTINCT] don't role your own." which he
[18:50] spelled wrong.
[18:51] So somebody fix role later and it's not shown
here.
[18:55] And because he wasn't earning enough points
and he obviously wanted to earn some more
[18:58] points and they're just points.
[18:59] He went and edited his question and provided
a sample code.
[19:03] And he got better and earn more points because
he provided sample code but--but a lot times
[19:06] people will edit each others questions and
this things get edited a lot and sometimes
[19:10] they are edited worse which is a problem but
in general the answer to questions are getting
[19:13] better and better and better.
[19:17] In order to get people to the things that
we want them to do on the site.
[19:21] We have a concept of badges and this is sort
of like achievements on X box 360 that sort
[19:26] of model.
[19:27] For that and it's based on the Napoleonic
quote to quote from Napoleon saying that,
[19:31] I don't remember exactly a soldier will fight
long and hard for a little piece of colored
[19:36] ribbon.
[19:37] So we get people these little pieces of colored
ribbon and these badges.
[19:40] If you look at my name up on the top of the
screen, you can see next to that the 4,800,
[19:44] that's how may points I have.
[19:46] And then there a little 15 and that means
they have 15 silver badges and a little 28
[19:51] says that I have 28 bronze badges.
[19:53] So you're earning the whole bunch of badges
and anybody who sees my name anywhere appears
[19:56] on the site will know that I have a certain
amount of credibility and they can see what
[19:59] things I've done and people would actually
go and try to earn badges to complete the
[20:03] set.
[20:04] You too can get every single badge on this
list except for beta tester because the beta's
[20:11] over.
[20:13] Karma is based on the philosophy that you
can't just pay people to answer questions.
[20:18] And I believe that that is one of the reasons
why Google Answers never really worked because
[20:22] there is sort of something fundamental Mahalo
Answers I think is going to fail for the same
[20:26] reason.
[20:27] There's something fundamental going on here
that people are willing to do for free but
[20:32] they're not willing to do for small amounts
of money, they may be willing to do them for
[20:35] large amounts of money.
[20:36] If you ask me how much it would cost to provide
a day of my consulting, there is no price
[20:42] but I've spend at least a day answering peoples
questions on StackOverflow.
[20:47] So, we, you know, sort of fundamentally understood
that people are not going to want to--there
[20:54] is no--if you try to clear a market using
what I call the ECON 101 management method.
[20:59] A very, very small payments, like, I could
give you a dollar if you can help me with
[21:03] my problem.
[21:04] Okay, nobody is answering it, let's try 2
dollars that the market is not clearing this
[21:07] little levels but people will do things for
free in order to contribute to the world.
[21:12] So, we have Karma.
[21:13] And karma is just points.
[21:14] You earn points for all kinds of things but
mainly for getting you questions and answers
[21:19] voted up.
[21:20] And so the best thing you can do on the site
to earn Karma is to come and vote some things
[21:23] up.
[21:24] There's a few--as you earn more and more karma,
you get more and more privileges on the system
[21:28] that usually pretty nominal privileges but
they do encourage you to--it sort of like
[21:32] a human captcha until you've asked the question
and answered a question, you probably don't
[21:36] have enough points to comment on questions
or to edit questions.
[21:40] And so if you come in and you like I want
to comment on this, you'll hit comment and
[21:43] you'll discover that you can't because you
need a little bit of karma very much.
[21:46] And that will encourage you to go do something
to earn a little bit of karma.
[21:49] And there are all kinds of easy ways to do
it.
[21:50] And in fact, the Wikipedia model, one thing
that I've actually encouraged people to do,
[21:56] you know, very explicitly is if you want to
earn some quick karma and you don't know anything
[22:00] about programming, go find a question that
seems to be kind a popular, a lot of people
[22:04] looking at it.
[22:05] Look at the top 5 answers and merge them into
one big glorious answer that just created
[22:10] from those top 5 answers, you're allowed to
cut and paste.
[22:13] And put them all together, edit it really
well, write some sample code, test the sample
[22:16] code and submit that as your answer.
[22:19] And you will get voted up and you'll earn
a lot of points for that and that's exactly
[22:22] the behavior that we want to see.
[22:23] We want to see people improving the site making
questions better and better.
[22:26] And they're not obsessing over the ownership
of a particular question or answer.
[22:33] We put in pre-search, I don't know if there's
a technical term for this.
[22:36] But when you start typing the name of your
question which I've done here, when you hit
[22:40] tab, we'll look through the words that are
most likely to be key words and then we'll
[22:45] go quick search of already ask questions,
and we'll provide them for you there.
[22:49] And you can click on it and you see the answer
and that's meant as a deduping mechanism that's
[22:53] meant to prevent duplicate.
[22:54] This is not a form for answering the same
things again and again and again, and having
[22:58] people said that this has already been asked
here.
[23:00] This is--we're trying to create canonical
questions and answers and so we want it to
[23:05] be one.
[23:06] Or too really, really well which is sort of
surprising because we don't have a very good
[23:08] search technology, we just have SQL server
but it still works.
[23:12] And one of the things, I mean the way I knew
that, that StackOverflow is going to work
[23:16] is on the second day of the beta I logged
on with an actual programming question.
[23:20] I typed the programming question in, in the
title I hit tab and I saw the question already
[23:24] been asked.
[23:25] And I clicked on it and had been asked, you
know, 8 minutes ago and there were already
[23:28] a whole bunch of answers.
[23:30] And the answers had already been voted on.
[23:31] And the top most highly voted question and
answer was actually the solution to my problem.
[23:38] And that's a phenomenon that happens again
and again and again with StackOverflow.
[23:44] We designed this not with the idea of the,
of SEO which I think is a little bit too naīve.
[23:51] We designed our site with the assumption that
our homepage is Google.
[23:54] The front page of StackOverflow is you go
to Google and type a question.
[23:59] And that's how most people find StackOverflow
because they typed the question.
[24:02] And so we optimized, I don't only want to
say optimized, we built everything around
[24:06] this assumption.
[24:07] Our URL's have the name of the question in
the URL.
[24:10] And they're, you know, permanent and clean.
[24:11] We have whatever meditags we have to have.
[24:13] We got the site maps.
[24:14] We've got everything, we've done everything
to make our pages looks as reasonable as possible
[24:18] to a search engine because we knew that that's
were a traffic is going to come from.
[24:23] Indeed, as you can see here 86.6% of traffic
is coming in specifically from Google questions.
[24:29] There's a little bit of direct traffic and
that's the smaller group of users of the site,
[24:34] who hang out on the site all the time.
[24:36] And for some mysterious reasons the other
search engines are--there--while they're there,
[24:40] you can look number 9, is a live.com.
[24:43] I have no idea why it's only 0.2% of our visitors,
it doesn't really make sense, oh well.
[24:51] So, that was our design, that's the front
end.
[24:56] We were really obsessed about performance,
we know their getting fast answers and the
[24:59] site being snippy and snappy and quick and
stuff like that was important so here's a
[25:04] technology stack that we use--that is actually
built on a Microsoft stack.
[25:07] The performance I know you guys don't use
it that much here but the performance of Csharp
[25:13] which is a compiled language is just ridiculously
good.
[25:15] This entire site is serving six minutes--16
million pages a month and we're doing it off
[25:20] two servers which are almost completely unloaded
so we've got ton of head room on this two
[25:24] servers, one server is a web server, the other
server is running Microsoft SQL server 2008
[25:29] and they're both [INDISTINCT] zions but the--and
you know there were a lot of optimizations
[25:36] that went in there, but you know no matter
what people say this is a pretty good stack
[25:40] and one of the things that I've always been
concerned about is if you start building a
[25:43] technology like this, using a Microsoft stack
you are going to pay for a window server license.
[25:49] That's a lot of SQL server licenses which
are 5,000 bucks for every box that you put
[25:56] out and the idea that you could possibly use
a larger number of cheaper computers and use
[26:03] open source products which are free, it suddenly
occurred to us on the other hand, when I compare
[26:08] our performance to similar sites like that
are running on the open source stack we're
[26:12] using about one tenth of the hardware that
they are unfortunately and maybe that's because
[26:17] they are not good programmers but in terms
of just the tight queries that we're doing
[26:22] and stuff, the Microsoft stack is actually
appears to be paying for itself, in terms
[26:28] of reduced hard work.
[26:31] We thought that a really important part of
making StackOverflow happen, was get people
[26:36] getting questions answered on day one and
it was really important to me that we get
[26:40] a critical mass on there on day one so that
one people tried it out, there was actually
[26:44] somebody there and the questions actually
got answered.
[26:46] So, I think a lot of these other sites like
Amazon, Ask, Google answers, Yahoo Answers,
[26:50] et cetera.
[26:51] Whatever marking power they had behind them,
because those were sites about all possible
[26:55] questions and they didn't really have a way
to get all possible people involved in the
[27:00] site on day one, they suffered from what I
call the empty restaurant syndrome.
[27:04] You're walking you know up and down university,
heading downtown Palo Alto trying to pick
[27:08] a restaurant to go into and one of them is
empty, and you will not go in there in any
[27:12] circumstances so a restaurant turn knows that
on day one they got to have their friends
[27:15] to at least fill up the window tables so that
it looks like there's somebody in there and
[27:20] that was pretty important to us and so one
of the reasons why I asked Jeff Hatwood, to
[27:24] be a partner in this site because between
Joan software and Coding Horror those are
[27:30] the number one and number two most high traffic
technology blogs that are written by an individual
[27:36] who lives in either New York or California
and hey--just kidding.
[27:40] We have--we have, we actually have a lot of
traffic , I had it about a million visitors
[27:45] a month and he had probably about a third
of that but that was a lot of programmers
[27:48] and so we started doing this podcast which
you can listen to, it's a weekly podcast where
[27:53] we're actually basically designing a site
and he's giving me a status reports every
[27:56] week and that's podcast on IT Conversations
and it was just another way of making sure
[28:02] that when we launch there would be, you know,
maybe 20-30,000 people listening to this podcast.
[28:07] So here's the status report, here's what happened
with StackOverflow, here's how it worked out
[28:10] as of about a week ago we've had a 136,579
questions have been asked 91% have been answered.
[28:17] My definition of answer is not that's somebody
typed in an answer, but that somebody typed
[28:20] in an answer and somebody else uploaded the
answer so you got to have enough vote for
[28:25] it to count as answered.
[28:27] This to me is really good, if you look at
the questions that are unanswered there either
[28:31] on obscure topics or sometimes they're just
like way too hard.
[28:35] Number of posts has been growing linearly
more or less we're at about 800,000 our post
[28:41] is either question or an answer similarly,
the number of registered users this is the
[28:45] smaller community of people that just come
to the site all the time, they create and
[28:48] counsel themselves we actually use this is
awesome--we use to open ID just because we
[28:52] wanted to push it really, really strongly
and it was actually successful.
[28:56] We don't have any log in mechanism other than
open ID but as you can see you can logged
[29:03] on just by two clicks if you have say, Google
account which is nice.
[29:10] So the number of registered users have created
accounts on the system is around 60,000 right
[29:14] now and those are sort of the core group of
people and then we got sort of a larger group
[29:18] of people who just finish the site.
[29:22] The Uniques now is over three million a month,
over three million unique visitors a month
[29:25] and mostly probably unique just means we set
a cookie and if it's still there but if is
[29:30] often Google [INDISTINCT] so whatever Google
analytics means by Unique visitors.
[29:35] Our--the best information we sort of triangulated
from a number of sources, the people that
[29:40] work and develop relations in Microsoft have
a number that they use which is nine million
[29:44] professional programmers in the world there
are nine million professional programmers
[29:47] in the world.
[29:48] So I don't how to get three million is but
it looks like we're getting a bout 30% of
[29:52] them we're using StackOverflow in some way
[INDISTINCT] perform and not generally--actually
[29:55] this is a large crowd.
[29:56] How many of you ever used StackOverflow or
seen StackOverflow in search results?
[30:00] This is kind of a good group I'm guessing
that about 40%.
[30:03] So, when I asked the same question at the
MIX conference in Las Vegas and it was about
[30:08] 30% in that room.
[30:10] So, I have a feeling that in about first six
months, we've gotten into about 30% of the
[30:16] professional English speaking programmers.
[30:17] We don't have any language sites.
[30:19] The number of visits is over 6 million a month,
page views is about--running about 16 million
[30:24] and of course, growing pretty steadily there.
[30:28] Here's where the traffic comes from.
[30:30] The large--the larger part, the 86% is directly
from Google.
[30:36] And then, you know, this obviously refers
to certain number of people.
[30:41] But direct traffic are the people that I think
of as the participants in the site.
[30:45] These are the people I'd like to hang out
and answer questions in order in karma.
[30:50] So the last slide, what--where we're going
in the future, StackOverflow was designed
[30:54] to be specifically about programming questions
and if you try to ask a question that doesn't
[30:58] involve code, like why does my computer blue
screen every night at midnight?
[31:02] You can--you'll get kicked out and the question
will get closed.
[31:05] And so we're building a new site called Server
Fault, which is the system admin version of
[31:10] the site.
[31:11] It's for system administrator questions.
[31:12] Our goal is specifically for professional
system administrators.
[31:16] People whose--that were not--where we don't
want the user at home who's trying to figure
[31:21] out how to plug their iPod directly into the
printer.
[31:24] We're trying to get the actual people working
at their job because what we found, almost
[31:29] from the Yahoo Answers experience is it this
kind of site only works when it's people that
[31:33] are doing something professionally.
[31:34] In other words, they really care about getting
the right answers, they care about expanding
[31:38] their personal professional knowledge and
they're taking this seriously in a level that
[31:42] the teenagers asking sex questions on Yahoo
don't necessarily care about.
[31:47] That much--there are few other things in the
future, none of them are clearly determined,
[31:53] that's really just sort of a couple weeks
in the future.
[31:54] That thing's going to launch.
[31:56] In a long term, another part of the--this
sort of a different direction.
[32:00] This StackOverflow could go in one direction
is, you know, more towards the software product.
[32:06] Another direction is creating lots and lots
of vertical StackOverflows and all kinds of
[32:10] highly technical industries.
[32:11] For example, the StackOverflow for tax accountants
in the United States for example, who have
[32:18] questions about the tax law.
[32:20] And then the, you know, another possible direction
is--as a recruiting market place, which I
[32:26] won't go in too much detail but we're actually
accumulating quite about it--quite a lot of
[32:33] knowledge about who's good at what technology's
in a programming realm knowledge that could
[32:34] be very useful to programmers that want to
get hired or programmers that want to hire
[32:40] other programmers.
[32:41] So, that's really all I have.
[32:42] I'll turn it over to questions if there's
anybody wants to--how do I?
[32:48] Start in front row?
[32:50] >> [INDISTINCT]
>> SPOLSKY: Where the center tabs is, it's
[32:54] just like any other tabs that you type in
works.
[32:57] But there's an auto complete so it tends to,
you know, as you start typing, you'll find
[33:02] the existing tab and I think there's a mechanism
for merging existing tabs.
[33:08] I think we have some kind of official question
system.
[33:11] >> [INDISTINCT]
>> SPOLSKY: Got it.
[33:14] Yes?
[33:15] >> Were you seeing any bad [INDISTINCT] policing
so far?
[33:20] >> SPOLSKY: The questions was, are we seeing
any bad user behavior or as a community pretty
[33:24] self policing so far?
[33:26] We're definitely seeing some bad user behavior
and we're constantly adjusting algorithms
[33:31] just try to fix it and I would say, you know,
we're trying to have a Google-like approach
[33:38] of looking for algorithms that solve problems
or other than individually just plucking out
[33:42] individually users or problems.
[33:43] So we've got all kinds of methods.
[33:44] There's a place where you can like temp--like
if you behave badly and we warn you and you
[33:49] don't recover from that, then we put you in
a penalty box for a week while you don't get
[33:53] your points until the end of the week.
[33:54] And there's all kind of stuff going on, they're
mostly--it's obviously self policing because
[33:58] of this number of questions, it has to be
reasonably automatic.
[34:00] But we pretty much found, most them, we're
pretty much cured at this point.
[34:04] We're pretty much on top of the typical problems
like spam.
[34:07] Yes?
[34:08] >> So on dory, we have a question.
[34:10] >> SPOLSKY: Okay, sorry.
[34:11] >> [INDISTINCT] dory room.
[34:12] >> SPOLSKY: Okay, dory it is.
[34:14] >> What aspect of StackOverflow's user interface
designer are you most proud of?
[34:18] >> SPOLSKY: What aspects of stack overflow's
user interface...
[34:20] >> What makes you so great?
[34:22] >> SPOLSKY: ...am I most proud of.
[34:24] I'll just pick one thing.
[34:25] Well, you know, really it's just every time
I hear somebody saying, "StackOverflow is
[34:28] awesome, I asked a question, and got an answer.
[34:31] And when I asked questions, it just blows
me away that you'd see the--start seeing answers
[34:36] like in three or four minutes, coming in."
[34:38] So the fact that, you know what the truth
is, I used to as a programmer, I used to have
[34:42] not the patience to post a question through
discussion forum because I knew that it would
[34:45] take a half of a day to a day to get an answer.
[34:47] And I would really just sit there and Google
for a long, long time trying to find the appropriate
[34:52] answer, rather than asking it.
[34:54] But what's awesome about StackOverflow is
the act of asking a question is also the act
[34:58] of searching for an answer.
[34:59] And so for an answer is there you'll find
it and if it isn't, it's just one extra click
[35:03] to actually commit to asking that question
and then you will actually get an answer within
[35:07] the usual amount of time, I mean you don't
have to go to lunch, the answers will start
[35:18] coming in pretty quickly--yes?
[35:20] >> [INDISTINCT]
>> SPOLSKY: The question was, as we--have
[35:23] we considered licensing as to large corporations
for licensing for internal, as an internal
[35:28] technology.
[35:29] We don't really have the resources to do that
right now, we're sort of talking to various
[35:32] people that might be interested in providing
various resources its time to [INDISTINCT]
[35:37] I won't go into--in too much detail but that's
something we don't have the immediate time
[35:42] to do just because were about four people
working on this but in the long run it completely
[35:47] make sense.
[35:48] >> The next question from Devon Mollins, what
aspect of StackOverflows initial design that
[35:52] you're least proud of?
[35:53] What makes you say...
[35:54] >> SPOLSKY: That sounded like the first one,
what I am least proud of in the design.
[36:02] Boy.
[36:03] I'm stomped is just--let's see, there are--personally
it sort of bothers me that right now we are
[36:11] closing questions that are off topic without
having a place to send people so if somebody
[36:16] ask the question that isn't really programming
question but StackOverflow is a perfect technology
[36:19] to get an answer to this question but it's
not a programming question the community will
[36:23] jump on it and close aggressively in a way
that it's not necessarily newbie friendly
[36:27] and say go somewhere else I don't know where
but go somewhere else and we just don't have
[36:30] a place to send them right now so were hoping
that Server Fault will get all those system
[36:34] administrator questions we'll give them a
home but that's a sort of an aspect to the
[36:38] community that's a little bit too focused
in my opinion on the purity of the home page
[36:43] only being programming questions--questions
for the room--yes.
[36:49] >> [INDISTINCT]
>> SPOLSKY: What is our current or future
[36:54] plans for modernization?
[36:55] We are, not--we don't really talk about that
too much, I should say that we have a little
[36:59] bit of advertising on the site pretty much
only people that have aggressively banged
[37:02] down on our door and literally deposit the
money in our bank account without our permission
[37:06] and so they got little advertisements and
that is not enough to keep us start running,
[37:09] like I said it is four people and two servers,
doesn't take a lot to run this and you know
[37:14] our primary goal is getting answers to program
our questions.
[37:17] On the other hand, with the community of you
know basically a third of the world great
[37:22] programmers, we think there will another modernization
opportunities, we are never ever, ever going
[37:26] to charge to go to the site, we're never going
to have interstitials, we're never going to
[37:30] have advertising that has any kind of motion
in it like flashing ever, not just flash but
[37:35] like animated gist not on the either and the
basic core aspects of the site will always
[37:42] remain free for everybody permanently, we
got another dory onw.
[37:47] >> Yeah, yeah, from Guido Van Rossum, I'm
sure you'll referring people to your blog
[37:51] post quote things you should never do part
1 was ever part 2?
[37:54] >> SPOLSKY: Things you should never do part
1 is a--is a--is a--is a riff on the History
[37:59] of the World 1 on Mel Brooks movie, there
is no number two and that's the joke and you
[38:04] may have to wait until the end of time to
determine if there is some things that you
[38:09] should never do part 2 but I think--you know
what the two, probably the number one thing
[38:14] you should never do part one, the things you
should never do for those in the audience
[38:16] have done [INDISTINCT] I wrote a long, long
time ago saying, "If you have working code
[38:20] that is large, lot of people are depending
on does a lot of things," you don't just start
[38:25] from scratch, you got to try to somehow find
a way of moving the existing body code you
[38:31] have into new code and may be you rewrite
every line but you don't start from scratch
[38:34] because you lose too much knowledge that you
spent and you have to fight pretty hard for
[38:39] that working code you have and the time I
wrote that probably the number one victim
[38:43] of that was the Netscape, the major Netscape,
the Mozilla rewrite which in my mind lost
[38:48] them about three years in a time in which
Internet Explorer gained almost 9% market
[38:52] share and it is true that Firefox eventually
came out and kind of recovered and sort of
[38:56] caught up but the only reason Firefox caught
up is because the Internet Explorer team have
[38:59] been disbanded for five years and wasn't working,
so they kind of locked out but you don't--you
[39:05] don't stop, you don't--you don't rewrite things
from scratch and I think at the time I got
[39:08] an email from somebody saying, "Have you looked
into Pro6?"
[39:11] And so this was eight years ago that I wrote
this and if I--and then that was a complete
[39:15] rewrite of [INDISTINCT] that I believe is
not yet shipping, I'm not really a profile
[39:20] or [INDISTINCT] has been pretty much forgotten
so, yeah, there is nothing that you can do
[39:27] is that bad to a software product and you
just decides to start over--yes.
[39:35] >> [INDISTINCT] hardcore professional programmers?
[39:41] >> SPOLSKY: So the question is what kind of
UI changes we have made for--were focused
[39:46] on sophisticated consumers rather than hardcore
professionals.
[39:49] The first thing is I don't think this site
is going to work for gardening questions ever,
[39:53] it might work for gardener questions like
professionals but for gardening questions
[39:58] this is probably not the right kind of site,
it has to be professionals that are sitting
[40:02] in their desk doing something professional
and a professional in there desk doing something
[40:06] professional will probably learn a slightly
complicated UI [INDISTINCT] get there, stuffed
[40:10] on so they'll probably overcome this.
[40:12] That said, there's a bunch of programming
specific stuff that's in StackOverflow.
[40:15] For example, the programmer seemed to be really,
really good at tagging their questions and
[40:20] when they're not so good at tagging their
questions anybody can edit it and add tags.
[40:23] But surprisingly we didn't even have to explain
what tags were.
[40:25] We don't have to tell anybody, guide them
in somewhat tag should be.
[40:28] They get in there and they're tagging it and
they're tagging it correctly and they just
[40:32] sort of understand that.
[40:33] And I don't think that would apply in other
fields you have to come up with some other
[40:36] method other than tagging probably or something
a little simpler or I'm not sure maybe the
[40:41] Flicker experience that will be different.
[40:44] The other thing is that because we're focus
programmers we knew that a lot of this questions
[40:50] we have sample code in them.
[40:51] So we have this big old control that uses
sort of a Markdown syntax and shows you a
[40:55] preview of what you're going to get from your
Markdown.
[40:57] And so you're actually riding in a slightly
awkward language called Markdown, which is
[41:01] sort of beyond simplified HTML.
[41:04] But it's not an easy way get here by a stretch
of imagination.
[41:07] And we have not had a single programmer complain
about that or have any kind of problems about
[41:12] that in any way [INDISTINCT] performed.
[41:15] But I don't think that Markdown is necessarily
the right approach for gardeners.
[41:23] >> Juxtapose on February 27th, suggested that
the number of questions answered posted per
[41:27] month isn't increasing as you would expect.
[41:30] Does this worry you or it's a steady increase
in the data bank of pertinent questions answers
[41:34] are good enough that's from John Street.
[41:36] >> SPOLSKY: Yeah, I'm not really sure about
this because I haven't dug enough into the
[41:40] numbers and I don't know enough statistics.
[41:41] All I have is growth charts that I was showing
you a minute ago or I'm showing something
[41:44] that is--I don't know is that linear?
[41:45] Is that exponential?
[41:46] Is that the beginning of an exponential curve?
[41:48] I'm not really sure.
[41:51] It doesn't worry me at all as long as I see--I
mean like literally every week I go and I
[41:56] look at Google Analytics and you know we're
kind of doubling every four months.
[41:58] And it's been that way since well, fourth
month.
[42:02] Let me take a question from sort of far the
back because I've been just doing in the front
[42:09] rows here, really.
[42:10] Is anybody--anybody in the back?
[42:12] No, too quiet.
[42:13] Here's one over here.
[42:17] Yes?
[42:21] >> [INDISTINCT]
>> SPOLSKY: Yes.
[42:33] >> [INDISTINCT]
>> SPOLSKY: Right, so obviously there are
[42:45] old questions that are boring and nobody ever
goes to.
[42:47] There are old questions that have become the
canonical place on the internet to ask a particular
[42:52] very interesting question about a very common
programming problem that people hit.
[42:56] And a lot of the questions are like I'm seeing
this particular crash what could it be?
[43:00] Oh, you got this bug on your code.
[43:02] Okay, and that's never going to be interesting
to anybody ever again.
[43:04] So, there are sort of different classes of
questions.
[43:06] The only tracking that we really have for
that.
[43:08] It's when you see a question we track the
number of views and we'll show it to you right
[43:11] there.
[43:12] How many views that question ever gotten?
[43:13] And occasionally you'll see questions that
have tens of thousands of views and those
[43:17] are usually popular questions like what is
your favorite programmer's cartoon?
[43:20] So, let me bring that up.
[43:25] What is your favorite programmer's cartoons?
[43:31] So, that ones got a 585 votes.
[43:34] It's been viewed a 120,000 times.
[43:38] I'm surprised that these facts are the questions
come out.
[43:41] First, I kind of liked the--I kind of like
the little Bobby Tables one personally.
[43:47] So, yeah I mean they're certainly like questions
like this will get slashed audit and dig and
[43:56] all that kind of stuff and it's going to be
high and Page Ranked even because everybody's
[44:00] linking to it and so forth.
[44:01] So, there will be questions that are like
super, super popular questions that just die
[44:05] a innocuous death.
[44:06] One thing that we are seeing is that--we are
becoming the place of choice for new programming
[44:13] technology questions to be asked.
[44:15] So for example when the iPhone came out.
[44:17] Apple made the--iPhone developers [INDISTINCT]
and said that they won't talk to one another
[44:21] and provided them with a very, very crappy
forum that nobody liked for asking each other
[44:25] questions.
[44:26] And so they all came to StackOverflow because
basically they just launched and we're kind
[44:30] of a number one resource for iPhone programming.
[44:32] And what you see a lot of these days is when
a new programming technology comes out rather
[44:36] than trying to build their own forum or their
own place to get questions after their own
[44:41] community support users.
[44:42] They'll just guide their users by saying hey
use the tag whatever it may be.
[44:47] So, whatever the technology has called them.
[44:49] And so newer technologies tend to just sort
of organize around StackOverflow around the
[44:53] tag rather than trying to make their own forums.
[44:56] And we expect to see a lot more of that whereas
older technologies like Visual Basic 6.
[45:00] Which is now completely and utterly obsolete
and not even supported anymore.
[45:05] Still have a gigantic body of knowledge in
the website with a hyphen and not very much
[45:09] knowledge in StackOverflow and that'll probably
be that way forever.
[45:12] And I don't even know if we have any cobalt
questions.
[45:15] Just so there maybe intensely obsolete technologies,
yeah, when I get 44 cobalt questions.
[45:25] >> Once you have a large expert user base,
I think it's very hard to add new features
[45:30] or change new products.
[45:31] Are you guys facing this problem and if so,
how do you experiment with new features?
[45:35] >> SPOLSKY: Once you have a large user base--okay,
that was on the microphone, so, I don't have
[45:40] to repeat that.
[45:41] The what--I kind of feel like at this point
we're sort of tweaking.
[45:44] And we have a couple of places where the conversation
about new features takes place.
[45:49] Well, basically about three places.
[45:52] We don't want StackOverflow to have questions
about StackOverflow because that's not the
[45:56] topic, that's off topic by definition.
[45:57] It's not a programming question.
[45:59] So, there's a user voice site where future
requests come in and there's some conversation
[46:04] about this future request on user voice.
[46:05] There's the podcast, that Jeff and I do and
people will call in with questions and people
[46:10] will email us and we'll talk about new features
as they develop.
[46:12] And there's a StackOverflow blog where new
features are introduced and the comments at
[46:17] the StackOverflow blog are really where most
of the discussion about new features takes
[46:20] place.
[46:21] But at this point we're not--we haven't done
anything that I think would really shock people
[46:26] and--like not be able to use the site.
[46:29] We haven't made it a Twitter clone on the
homepage.
[46:33] So, anything else from the room?
[46:38] Yes.
[46:39] >> [INDISTINCT]
>> SPOLSKY: Yes.
[46:44] >> [INDISTINCT]
>> SPOLSKY: When somebody edits a responds
[46:50] it was highly marked.
[46:51] How do you know it's still good?
[46:52] Well, you can't.
[46:53] But it's like Wikipedia, so you can search
the history and sort of see.
[46:56] There is sort of this weird concept because
we're a combination between in some ways like
[47:00] a blog or a personal site were there is authorship
and sites are written by--questions are written
[47:05] by a particular question--by a particular
person.
[47:09] So, all these questions here, sort of have
an ownership to the questions and the answers
[47:13] will have an ownership.
[47:14] But we have this concept over here called
the community Wiki.
[47:16] At a community Wiki is a question or an answer
that has either been put in community ownership
[47:24] where nobody [INDISTINCT] the points and nobody
owns the answer.
[47:28] Or has been forced into community Wiki mode
for various reasons of question is getting--one
[47:33] thing that we don't want to happen is somebody
ask what's your favorite program as cartoon
[47:37] and then gets 585.
[47:38] Oh, this wasn't the number 1 answer, I'm sorry,
this is the question itself.
[47:43] This is the number 1 answer 812, and that
wasn't a recognized.
[47:46] That's a number 1 user answer.
[47:50] Things will eventually get into community
wiki mode because we don't want somebody earning
[47:53] a billion points of Karma just because they
ask a really popular and slightly off topic
[47:57] question to get unto dig.
[47:59] So, if a question gets edited to much or an
answer get edited too much and there [INDISTINCT]
[48:03] for all these things that are very complicated
and they are all documented somewhere, well
[48:07] we'll take away the personal ownership for
that one.
[48:12] Anything else?
[48:13] >> MARR: Yeah, Ivan Marr here.
[48:14] Why are you saying--this is an anonymous question,
why are you saying that kids at Google and
[48:20] Microsoft are working on hopeless and useless
architectural astronomy on quote.
[48:23] So, as if it were something bad.
[48:25] >> SPOLSKY: I don't understand, I have don't
have the search for that.
[48:29] >> MARR: You use any search engine you like.
[48:31] >> SPOLSKY: Yeah, I'm going to try to find
a search engine here, no, if there is one
[48:38] in it.
[48:40] Does anybody have a search engine [INDISTINCT].
[48:44] Why are kids on at Google architecture astronauts
what the heck, I can't spell.
[48:58] >> MARR: I'm sure the L suggests it.
[49:02] >> SPOLSKY: That's not it though.
[49:05] I wouldn't say that.
[49:13] I can't remember.
[49:15] I'm sorry.
[49:16] I'm not going to be able to answer that one
right now.
[49:19] Is that it?
[49:20] But this isn't me, this is my discussion [INDISTINCT].
[49:23] Why Google and Microsoft--let's see what this
guy says.
[49:27] His got a link, only this was it.
[49:31] On grove, okay, I'll click on grove.
[49:35] Live mash, got to get rid of them.
[49:42] Oh, yeah, Google being on [INDISTINCT] salaries
to the kids with ultimate [INDISTINCT] experience
[49:47] in python.
[49:48] That's actually true your starting salaries
are too high guys, especially out of college.
[49:56] Yeah, I don't know.
[50:00] This was mainly because this is over think
a bit.
[50:03] But Microsoft and Google are really like gigantic
vacuum cleaners at Stanford and Berkeley and
[50:09] U-Dub.
[50:10] And it really is and I'm going to stand by
this, it really is the case that no matter
[50:13] how useful the stuff is that you're working
on Microsoft design to a large extent it's
[50:18] much harder for small companies to get good
people because of the presence of Microsoft
[50:22] and Google.
[50:23] Which for a long time were in a mode of hiring
as many people as we could possibly get under
[50:28] all circumstances.
[50:29] And honestly, I bet you have colleagues that
are working on things that you think are probably
[50:32] not as important as some other start-ups you
may know.
[50:34] So, that's the best I can do to defend that
one.
[50:40] >> You probably got time to one more question.
[50:41] >> SPOLSKY: Sure, one more.
[50:42] >> There's one from the audience, then were
done.
[50:44] >> SPOLSKY: Any one who wants to raise question?
[50:46] Does any one want to know what's the starting
salary is it for Google for a new [INDISTINCT]
[50:51] this year?
[50:55] Yes.
[50:56] >> [INDISTINCT]
>> SPOLSKY: What we want to embedded executable
[51:03] codes sample safe in the answers.
[51:05] Right now, I think, I don't exactly know what
you're proposing but I think we're about to
[51:10] code in the source code and so we do have
a way to embed the source code.
[51:14] We definitely be interested in ways to make
the embedding in source codes better.
[51:17] We're using a little tool from Google actually.
[51:21] And having actual source code on the page,
it's sound like a pretty bad idea even if
[51:25] it's safe.
[51:26] No, not necessarily.
[51:27] And when you think about the type of questions
that people are asking here, seeing it then
[51:31] run the browser, I mean that would probably
be applicable only to, you know, CSS questions
[51:36] or JavaScript questions but to the majority
of the type of code that people are really
[51:44] asking about here.
[51:45] All right, well, thank you very much for coming.
[51:46] I appreciate the attention.