Sometime around 2003/04 my technology team turned me on to “Spolsky on Software” a periodic newsletter served up blog style from Joel Spolsky of FogCreek Software, a maker of bug-tracking software.
So it was a thrill for me last month to be able to have dinner with Joel and shoot the breeze. I asked him if he’d be willing to allow me to interview him for This Week in VC and we filmed it in the offices of Stack Overflow – his new company. I loved every moment of our discussion other than the video angle, which I think I’ll be more particular about in the future 😉
You can watch the video here or …
As always we have notes: graciously provided by Daniel Wolchonok, the founder of RentMaps whose request of me for typing up the notes was to come and speak at Yale where he’ll be getting his MBA starting this fall so I’ve agreed to it. But if you like the notes check him out on Twitter or his website. Thanks.
Joel Spolsky studied Computer Science at Yale University (class of 1991). Upon graduating, he went to work at Microsoft. It wasn’t like joining Facebook today – other students had never heard of it, and asked questions like “is that like a Macintosh?”.
Joel moved to Seattle, and worked at Microsoft for three years as a program manager on Excel 4.0 and 5.0. He then went on to work at Viacom and Juno in NYC. After leaving Juno, he founded his own software company, Fog Creek Software. In 2008, he founded StackOverflow, and it has become the foundation for a question and answer platform called StackExchange.
His Tenure at Microsoft
At Microsoft, Joel was responsible for defining the specification for a programming language for Microsoft Excel. This ended up developing into Visual Basic for Applications, the strategy for programmability in Microsoft Office.
Defensibility in Software
How did Microsoft de-throne Lotus?
Microsoft Office ended up beating its competitors because it was able to read and write to file formats other than its own. For example, Excel was able to read files from Lotus, and was able to save the file without losing any information. The important lesson in order to gain market share was that in order for new users to try Microsoft Excel, they had to be able to work with the files their coworkers were creating.
Lesson: You don’t want your customers to feel locked into using your software. It helps with sales cycles because customers know that they can switch away if they so choose. While customers will be willing to try your product, they think two steps ahead. They want to ensure they can easily migrate to a new system.
What do you think of Facebook’s privacy model?
“I guess people don’t care about that stuff”. Joel believes that consumers don’t believe that the data that is stored in Facebook is very important. If they have uploaded photos to Facebook, they know that it’s stored somewhere else on their computer so they’re not concerned about getting them out. In terms of privacy, users are more concerned about shredding their credit card bills rather than the intricacies of their privacy settings on Facebook. Joel is more concerned about the fact that it’s a closed garden, and being a vendor is very difficult because there is such a limited ability to control the experience.
Working at Juno
What did Juno do?
Juno provided a free email service. Free email providers (like gmail or hotmail) didn’t exist, and you had to pay a separate fee to dial up companies like AOL to access the internet. Juno used your modem to to download and send email, and it was paid for by placing ads in the email client.
Eventually, Juno provided free access to browse the internet in addition to sending email. The experience was paid for by placing ads at the bottom of your internet browser.
Juno IPO’d while Joel was there, and it was the first “broken” IPO of the dot-com era. It debuted in the morning at $13, ended the day at $11. It was the first internet company to lose money on its first day on the public markets.
What did you learn at Juno?
Joel met his co-founder for Fog Creek software and learned a valuable management lesson. While it was not a widespread problem, there was an element of micro-management at the wrong levels. Smart, capable managers would not hesitate to make decisions instead of allowing their employees to make them. Because the managers couldn’t make every decision, they would make random decisions and then move to another area. This left very smart employees feeling very frustrated because their managers would interfere intermittently and at random moments. It took Joel awhile to realize that “If you’re hiring very bright people, let them do their damn job”.
The role of Product Managers at Technology Companies
Do you see product managers as a hindrance to software development?
Companies historically have structured their development teams in different ways. Microsoft and Apple have a role of product manager as different from a program manager. A product manager is responsible for:
- Talking to customers
- Pricing information
- Marketing materials
- Going to trade shows
A program manager would traditionally be responsible for:
- Writing the detailed specification for how the software should work
- Communicating with the developers who write code
- Working with writers to create documentation
- Interface with program managers about features and product roadmap
A program manager was expected to be be able to convince programmers in the prioritization of features and how to implement the software, and to be the central person who drives the roadmap of the product. The program manager was the key person at the center of the product, yet wouldn’t have anyone reporting to him/her. Instead of using seniority, the program manager would have to convince others based on the merit of their ideas.
What about a world without program or product managers?
It depends on how customer feedback is incorporated into the product. If developers get the feedback and can integrate it into the product, it will ultimately be successful. For example, stackoverflow developers use the product every day, and they can’t help but interract with their uers. Joel doesn’t think he could design software for something in which he doesn’t have expertise.
Mark: Google had trouble dealing with customers and contracts because they historically were so engineering driven. The technologists would say “tell the customer we won’t ship on time”. While that happens sometimes, it was a challenge for Google because it frequently had trouble adapting from an engineering driven culture. The role of a CEO is to find the happy medium so that:
- Salespeople do not blame engineering and marketing for a lack of features
- Engineers don’t blame salespeople for making them work weekends to help them hit their quota
Lesson: As CEO, it is your responsibility to educate everyone and mediate the difficult tensions that can arise by removing excuses. One way to do this is to make everyone the “CEO of their job”.
As an example, Joel says that there is a chief revenue officer who is solely responsible for bringing in revenue to StackExchange. He is responsible for bringing in revenue from advertising and their careers offering. Jeff Atwood is the person responsible for product and user experience across all of their sites.
What is the best reporting structure for an engineering team
There is no perfect structure. Engineers often want to be able to move around and work on different projects, rather than be pigeon-holed into working a particular team or feature set. Within a small startup with 3 engineers, everyone will work on all aspects of the site. As you grow, each group may have its own engineers. As an example, there is a team devoted to the careers section of StackExchange, and another team dedicated to the core engine. They both have their own responsibilities, but at the end of the day they’re all working to drive revenue either through a great user experience or through empowering employers to search for prospective employees.
Leaving Juno and Blogging
How did you leave Juno? What happened to the company? When did you start blogging?
Joel ended up leaving when Juno ended up switching from providing free e-mail to free internet access. He felt that the decision process was very broken, and he wasn’t able to impact it from the bottom of the organization. After Joel left, Juno merged with NetZero.
When did you start blogging?
Joel started Joel On Software shortly after he left and before founding Fog Creek. At that point, only four bloggers were really doing it. It was called a “weblog” at that point. The first CMS to allow publishing on a blog was called EditThisPage.com, which had been built by Dave Winer. Dave Winer would read the posts as they were written on the site and drive traffic to posts he liked. Joel benefited from this, and in a relatively short amount of time Joel was able to gain a fair amount of traffic.
What posts are you most proud of?
“How MIcrosoft lost the API war“. Joel feels that it was a gigantic and enormous loss for MIcrosoft and the repercussions can still be felt today. A lot of it does seem like conventional wisdom today, but back then it wasn’t.
How did MSFT lose the API war?
Microsoft became obsessed with COM, OLE and felt that it was the future of software development. They didn’t focus on building for the web and they lost a great opportunity to win the transition to browser based applications.
Building on top of platforms
What does Joel think about building applications on the Twitter platform?
It is extremely rare to build a platform that third parties can build on top of and be very successful. Excel at the time Joel was there was a big business, but today is a billion dollar business. Even though it has been wildly successful, the number of businesses built on Excel never exploded the way that building applications for Windows did. There’s a big business in Finance working with Excel, but that’s an outlier.
There are very few examples of large, successful companies emerging on top of a platform. Twitter had a fundamentally flawed strategy from the beginning. They took care of the stream, and let others build the client applications. They didn’t think about monetization from the start, which has hurt them because they’ve had to pull the rug out from under the companies working on twitter clients. Joel doesn’t empathize with the twitter clients, he feels that they didn’t make a smart business decision.
Lesson: The only way business building on top of twitter can survive is by combining multiple streams into one. You couldn’t build a twitter client long term. It’s only obvious to the world now.
Joel is skeptical about building on the iOS platform long term. He feels that it’s not a great platform for vendors because they have no control over whether Apple allows your application in their marketplace.
Mark: Apple is like China, they have introduced an incredibly amount of innovation to the market. They’ve forced the entire industry to innovate and change. They have been successful simply for pushing the telecom companies, Microsoft, and Google to innovate. They’re well within their right, but it’s short sighted. Steve Jobs shouldn’t have the veto power over the marketplace. Make it open, make it free and incentivize people to make money doing it. Then you can buy, and compete in the marketplace.
Joel: Microsoft had an entire department for other companies to write for Windows. Everybody joked how Excel got special treatment (special APIs, etc which were never proven), but there were a bunch of people at Microsoft whose job was to help Lotus work on Windows.
Joel on the battle between MySpace and Facebook
Joel felt that MySpace completely missed the opportunity to build a platform, and were clueless about the decision they made.
Mark: MySpace understood the desire of users to put videos on their site as well as images, but didn’t want to tie into services such as YouTube. News Corp (MySpace’s owner) felt that Youtube had made a fortune off of their content, and made a strategic decision focus on internal innovation and become more closed at the same moment that Facebook decided to become open. It was a concious business decision from the top. This was the moment where Zuckerberg (20 something entrepreneur) schooled Rupert Murdoch.
The creation of StackExchange
Where did the idea for StackOverflow come from?
Stackoverflow was created in 2008. Joel wanted to combine multiple things: reddit, digg, xbox 360, Q&A sites, Wikipedia, and forums. There were 9 best practices across all of these items and Joel wanted to combine all of them into one site to help programmers get answers to their questions. Programmers were having trouble getting answers to their technical questions (the market leader was a site called experts-exchange). The site put answers behind a paywall, and programmes loathed the site for its tactics. He asked himself: programmers know how to make web sites, why couldn’t programmers create their own site and answer their own questions?
Joel was too busy with FogBugz to work on it, but ended up working with Jeff Atwood. Jeff had recently quit his job to be a full time blogger, and they decided to form a partnership to work on it together. Jeff built the first version of StackOverflow with a bunch of old colleagues, and it launched in August of 2008.
What was the original model for StackOverflow?
Joel and the team started out by building three independent sites: one for programming questions, another for PC buffs, and a third for server administration. That was called the “trilogy”. After that, they created a white label version of the software called Stackexchange 1.0. Joel saw the opportunity to create another software business (because that’s what he knew). The idea was to sell it to companies to leverage internal and external knowledge, but it was flawed because he saw it as a software business.
Joel found out it was a bad idea. The software is not difficult to build and the hosting element has become a commodity; the hard part is building a community. That’s the unique element, the people who you can convince to come to your site each and every day.
Lesson: Joel had been building a community of readers since 2001. Jeff Atwood had a community of people built up from his blog. The community they had developed was extremely valuable and is what differentiated StackOverflow from the free, open source alternatives that were created in response to StackExchange.
Spolsky: The era of software was a narrow period of time. Before 1980, customers purchased hardware and software was bundled for free with the hardware. Microsoft was brilliant because they realized they could sell software and make a hefty profit from it. Today, we’re in a post-software phase. The software isn’t the valuable asset – it’s the ability to tap into a community that is truly valuable.
Lesson: Whatever you choose to do in your career (another plastics moment), think about how you’re going to capture a community. Stop blogging to your friends. Start blogging to your customers and your intended audience.
Spolsky: It’s more than the community, it’s a behavior. People have a behavior that when they have a question, they come to StackOverflow to get an answer. Some people go to our site to help others and answer questions. Instilling a behavior in a lot of people is a very difficult task. Facebook is a great example in that they have created a habit in everyone so that they login almost every single day.
Spolsky: You could make the argument that SO wouldn’t have worked unless I had spent 10 years building a community of programmers. At the end of Joel on software, a post would get 100,000 views, a popular post would get 1 million views. On StackOverflow, we get that in a day. In order to take the original community and build into the success of today, it’s all about natural progression and growth. Below is a graph of the wordwide usage growth of StackOverflow. It was a constant, constant growth rate that started with their original communities and continued to expand and grow over time.
How do you keep an audience as a blogger and on the network of StackExchange?
It’s important not to have content drift. If you talk about your core mission and then blog about your vacation, you might lose your audience. People have two or three interests, and if you stray from that consistently it drives people nuts.
Lesson: if you’re passionate about two different htings, have two differnet blogs. Don’t try to put it all in the same stream. The reason we build distinct communities is that if you don’t have 200 active people contributing to a site, it won’t take off. We know that because we’ve done research into what it takes to launch a new community. If you can’t find 200 people, you don’t have enough of a community, you won’t get answers to your questions.
The original business model for StackOverflow was to help employers find good programmers. If we could build a community for the best programmers, we could build a good marketplace for employers to understand the capabilities of job applicants. Right now, the only thing they’re monetizing is the technical sites. For example, the StackExchange site for auto mechanics is free and they are not trying to monetize the site.
Pageviews are so cheap to deliver, that if you can monetize a small fraction of them, then you can run a very nice business.
How do you find developers through StackOverflow?
It’s really simple: jobs.stackoverflow.com
It’s really spread out. If you check out the StackOverflow users page, it shows the top 36 users. It shows where they’re located, and it’s really interesting to see where the top users are located. None are in Silicon Valley, one is in New York City, they’re spread out across the world (France, Estonia, St. Louis)
How do you get to the top of the rankings?
You have to answer a lot of questions. To get reputation, you answer questions and they’re peer reviewed. It’s a great way to recruit because this person is able to impress their peers and has gained their respect through a very democratic process.
Is StackOverflow subject to gaming?
Not really. When you have a lot of page views, it’s hard to game the system. We’ve modified the system over time to punish bad behavior. Users can push down spam, so every single user is able to police the site and ensure that the best content wins.
Why do people answer questions?
There are a bunch of incentives:
- Desire to help people by sharing knowledge (Yelp)
- Social currency
- Desire to be an expert (Wikipedia)
- Trying to get discovered for a job someday
- WoW and social gaming addiction.
However, we have built in controls so you don’t get too addicted. You can only gain a certain amount of reputation in a day.
Fog Creek was bootstrapped. Raising money in the ash of the dot-com fallout was not a possibility. Joel had an audience of Joel on Software, and they iterated slowly over time. Fog Creek now has 35 people.
With StackOverflow, Joel raised money through venture capital. They looked around and felt that the engine that powers StackOverflow was much better than anything else out there (forum software). They thought it would become obvious to everyone, and they had an opportunity to take advantage of the “land grab” situation. If they could raise money and go from 3 to 30 people, they could accelerate their ability to create communities. After 2 years, they realized they were onto something, had great growth curve, revenue, customers, and raising money was very very simple. Union Square Ventures is an investor. They have raised two rounds of funding: a series A and a series B.