Joel Spolsky founded Fog Creek Software with his friend Michael Pryor in 2000. They didn't have a specific product in mind, but were motivated to start the kind of software company where they would want to work—one where programmers were the stars.
Around the same time, Spolsky began writing Joel on Software—now one of the most widely read programming blogs—to share his thoughts about software development, management, business, and the Internet. Joel on Software was one of the first examples of a now common (though rarely achievable) strategy for software startups: create a popular blog to get attention.
With its popular software, including FogBugz and Fog Creek Copilot, Fog Creek Software has doubled its sales every year, even during the post-Bubble meltdown. The company never took any outside investment and continues to operate as a profitable privately held company.
--------------------------------------------------------------------
Livingston: How you did you come up with the idea? How did Fog Creek Software get started?
Spolsky: There was no idea, in the sense that the only thing I thought was, "There's a bunch of people out there doing certain types of things and they seem to be pretty incompetent, but they're getting huge valuations. Surely if I did those same things, knowing that I am less incompetent—merely semi-incompetent as opposed to extremely incompetent—I should be able to achieve at least their level of success."
There was a period in the late '90s when starting companies was just a slam-dunk, no-brainer kind of thing. The people that were going public with $100 million valuations were punk kids that just graduated from college and knew nothing about anything. There were some really bad implementations of very pedestrian ideas, and we thought we could do a lot better.
Probably the key inspiration—what actually made me take the leap into starting Fog Creek—was Philip Greenspun of ArsDigita, who had a particular business plan that seemed to be working at the time. In the long run, it didn't work, because they took venture capital for a consulting business and the consulting market disappeared. But we looked at ArsDigita and said, "Wow! They're doing all this great stuff. But there are a couple of things that I would do differently." They had this weird, religious fear of everything Microsoft, which I thought came from something of a position of ignorance. I don't want to say that Microsoft is great, but they said, "We are successful because we don't use Microsoft technology." I thought they were just kind of randomly being anti-Microsoft. So that was one small thing I was going to change.
A larger thing was that they were developing this product. They had this idea; they got the consulting and they got the product—which was the ArsDigita Community System that they were developing alongside it. The theory was that the product they created would support the consulting, and the consulting would support the product.
But they thought the product needed to be open source, and we thought, "That's nice, but consulting is a business where your revenue is just a multiple of the number of people you can hire. Software is a business where your revenue can grow much faster than the people you hire." If you can make licensing fees by selling software using the same model as ArsDigita in every way, but just charging for the ACS, we thought that you would have a steady growth of the consulting side of the business.
So the idea was that the consulting would grow linearly with the number of people as you hired more good people that you could rent out as consultants, and the software business would grow like the hockey curve because, at some point when it took off, you wouldn't actually have to hire new people. You could just make more copies of the software you were selling.
That was the theory. Realistically, it didn't work, but we were able to suspend disbelief for long enough to start the company.
Livingston: Who were the founders?
Spolsky: Michael Pryor and I (we were friends from Juno Online Services) cofounded it in 2000, which was a good move. Probably starting it by myself, I never would have really had people to bounce ideas off of. I don't know if it would have gotten off the ground, really.
So it didn't work for ArsDigita, and I think they probably think that it didn't work for them because the VCs came in and mismanaged it, but actually all the other businesses that looked like their business failed at the same time. Even with good management, it's likely that their consulting business would have collapsed as ours did at the time. Luckily, we hadn't grown very much and didn't have much consulting business to lose, so we could survive that.
We had, for all intents and purposes, three consulting clients when we started in September 2000. By February or March, we had none. Other firms that were building web stuff lost something like 90 percent of their business in the course of 1 or 2 months. There was a huge dropoff; the consulting market completely disappeared.
The consulting market is the derivative of every other market. When a company is growing, they will hire a few consultants to help them grow a little bit more rapidly. When they're shrinking, they'll instantly fire all consultants. If the market is even going down by 0.002 percent instead of growing—which it did, because there was a sort of dot-com nuclear winter—then the first people to go will be the consultants. So the consulting business completely collapsed, and every company in that space more or less collapsed. The ones that remained—Razorfish, Scient, Viant, whatever—all sort of conglomerated into one company with about 120 people, and that was it.
Livingston: Were you and your cofounder working out of your apartment at this point?
Spolsky: We never wanted to do that. We had certain philosophies. Working out of our apartment was never a possibility; we got office space from the first day. It was somebody else's apartment, but we weren't living there. It was an office.
Livingston: It was someone else's apartment? Did you sublet it?
Spolsky: Yeah, it's a long story. We wound up getting ripped off. We actually sublet it from another company which, in turn, went bankrupt in a sort of disrespectful way where they just disappeared and didn't even bother to go bankrupt or give us back various deposits we'd made. But we survived that one.
Livingston: You had three initial consulting clients. Were those people that you had known while you were at Juno?
Spolsky: No, I think all of them I found. I am pretty sure those were Joel on Software readers who emailed me and said, "Hey, we've got a project for you."
Livingston: You had been writing Joel on Software back then?
Spolsky: Yeah. I'd left Juno around the beginning of the summer. I spent the summer writing a bunch of articles on Joel on Software, just because I was taking that summer off, living in a beach house. By the end of the summer, when we started, it already had enough of an audience that it was pretty easy to find people who wanted to hire us as consultants to build some stuff. But like I said, that market went south really, really quickly.
Livingston: What did you do when you didn't have any clients?
Spolsky: The market disappeared in November of 2000. I'm using specific dates because it really disappeared in that month, but nobody knew that it had disappeared until April. All the businesses' perception was that the amount of time it takes to sign up a new client was going up by about 1 day per day.
They kept saying things like, "It used to take us about 2 months to sign a client. It looks like it's going to take a little longer. The sales cycle is up to 3 months." Then the next month they would say, "Looks like the sales cycle is up to about 4 months." Nobody was ever saying, "We're never going to hire you. Go away." But that was the reality.
So for most of the firms—ArsDigita, Razorfish, Scient, iXL, MarchFirst—they didn't even understand that the market was gone and it was not coming back, and therefore they continued to pay consultants their salaries while they had nothing to do. And that caused them to hemorrhage money until most of them closed.
We didn't have enough consultants at that time. We hired a couple. But since we always knew that we wanted to be a software company on the side, around October or November we wrapped up FogBugz, which was an internal bug-tracking application we had lying around, and started selling it. And lo and behold, people started buying it.
Livingston: This was your own internal product?
Spolsky: Yeah. Basically that's where all bug-tracking applications come from. Every bug-tracking application in the world is some internal developer's idea.
Livingston: Did you think, "Hey, we'll build this for us and see if we like it?"
Spolsky: Yeah. We actually had three product ideas in mind, and FogBugz was one of them. That was the easiest one and the one closest to being able to be sold. The other two product ideas—one of them was CityDesk, which was kind of a market failure, and the third one was something called Tintin, that we never even wrote, let alone shipped.
We had this idea of a family of three applications that would work together in various ways. FogBugz would provide workflow, Tintin was going to provide a content management server, and CityDesk was going to be this content management client. That was the long-term vision, and we started launching FogBugz because we had it.
I think we started making $5,000 to $10,000 a month selling that. It was enough to pay our expenses and live off of once we laid off the two consultants we had hired. (They both immediately found jobs, so it was not really an issue. One of them is now back as a full-time employee.) I guess we were kind of lucky that we started late enough in the business cycle that we didn't waste a lot of cash discovering that there was never going to be a consulting market again.
Livingston: You were nimble enough to change your plan because you were just getting started?
Spolsky: Yeah. We just lucked out. If we started a year earlier, we would have had 37 consultants whose salaries we somehow would have had to pay for 4 months while we realized there was not going to be any money for them. That would have been a dangerous situation.
Livingston: So people were buying FogBugz. Was there another turning point for you then? Because I know you never took any outside investment.
Spolsky: We never took any investments. I put in probably $50,000 of my own money—mainly to cover people's salaries, when we didn't have clients. There was a fairly long period of time where I went without salary because I had my own savings. (Michael had less savings, and he took out a little bit of salary.) And we had some expenses, because during this entire period we had an office. Although it was my grandmother's apartment, we were paying rent, and we were using it solely as an office. So we were paying, let's say, below-market rent for a below-market-quality office space.
Livingston: Was it in Manhattan?
Spolsky: Yeah, it was a brownstone in Manhattan. Two floors, with a garden out back. It was quite a pleasant place to go work. Nobody was living in there, but it had a kitchen.
So we shipped another product, CityDesk. There are all kinds of reasons why it was not a successful product. We misinterpreted some things, and that product was not a big hit. But FogBugz just kept growing and growing and growing. Every time we did a new release, we would double our sales. We just sort of sat there and watched this little geometric growth occur—which has been happening in the last 5 years to this day. This application is getting bigger and bigger and selling more and more copies every month.
We had to raise the price a couple of times. We didn't have to, but raising the price actually increased the number of units that we sold. I guess because it looked more legitimate with the more realistic price.
Livingston: If people have to pay more, they take the product more seriously?
Spolsky: Definitely. There was a five-user license that was like $199, and that just feels like shareware, practically. But today, when you say that a ten-user license is $999, it starts to feel like a more substantial product. In that market, it still is actually a good deal. But you really have to have a price point that conveys what you think the product positioning should be. Many people will judge where your product fits in the market based on its price.
So we increased the price a couple of times, and both times it increased the number of units we sold. We launched new versions, kept adding more and more features. It's become this gigantic monster. It's also a whole customer email management system. Your customers email bugs, it spam filters it automatically, it sorts them into areas, it assigns them to people, you can keep track of them, you can set due dates, you can automatically reply to a customer with a nice little message that gives them a link that they can click on to see the status of their message. We use it for handling all our incoming company email and make sure that it gets handled by the appropriate person.
Livingston: Would you consider when you released this product one of your major turning points?
Spolsky: Yeah, although it didn't feel like "Let's have a celebration." At the time, we thought, "Hey, we have this product. We don't know what else to do. Let's just ship it and see what happens." We had no idea. At the time, you could have told me that this thing was going to sell zero copies, and I would have believed you. You could have also told me it was going to sell $50,000 a month's worth of copies—an equally unrealistic number—and I would have believed that too.
Now I have enough experience to know that almost everything you launch is going to sell $2,000 to 3,000 in the first month, and that's the way the first month of any software product always is, if you do things perfectly. But at the time, I just had no idea what to expect.
Livingston: Was there a time during that first year when you thought, "We've lost our clients. Time to close up shop"?
Spolsky: We never thought we would close, because we had this theory that Fog Creek would continue as long as Michael and I could eat and pay whatever external obligations we had. There was no reason to completely and thoroughly give up. And that's pretty much what it got to. In the first year, I'd say revenues off of FogBugz averaged like $10,000 or 15,000, and that was enough to live on. It was growing at a reasonable rate—I remember literally every month it would grow—at least 100 percent a year. And that gave us the confidence that we could wait this out.
There was money coming in, and the amount of money coming in was going up every month. So there was no reason to give up and go home. The theory was that we would only give up when there wasn't enough income even to pay the minimum bills we had to pay. I think our monthly overhead was $5,000—mostly rent, but also office supplies and T1 and that kind of stuff.
Livingston: It seems like you have a really unique corporate culture—one that values hackers. Did you plan this from the start?
Spolsky: Absolutely. Remember, the original model was, "How can we become a big consulting company and then build a software company inside a consulting company?" The consulting company was a means to an end. It was to get cash flow, so that you could build a real software company. And when you were done, the theory was you'd still have these consultants, but software companies often need consulting arms.
The basic economic model for us and ArsDigita and those kinds of companies was that you could get a bright MIT grad or whatever and give them a salary of $75,000 to 125,000 a year, depending on experience. That comes out to, at most, $60 an hour, and the billing rate was $200 to 250 an hour for building database-backed websites.
Livingston: Wow.
Spolsky: Yeah. Obviously it was just an arbitrage condition that all these startup companies were trying to take advantage of.
The question is, how do you get the bright MIT grad to work for you and not somebody else? What was astonishing at the time was that none of these companies were making any effort whatsoever to make the work environment pleasant and to treat the people that they were hiring with enough respect that they would be able to attract people.
You would go into companies—there were a lot of them in New York: Scient, for example—and they would have millions of desks crammed into the most crowded room where they would pack people in like herrings and treat them as interchangeable cogs. It was not a fun work environment. There was not a lot of respect for the developers. There was not a lot of treating developers well and making them feel like they were the hotshots in the organization.
Things that to us are basic: Aeron chairs; private offices with doors that close for every programmer; letting programmers report to other programmers, so that your boss will understand you. We had 4 weeks of vacation and another week of holidays, which you can move I think. For the consulting business, we had a rule that you fly first class and that you never be away from home on a weekend.
We actually figured out the entire business model, and we figured that, if we spent 4 percent more or 8 percent more giving people a better work environment in these particular ways, everybody would want to come work for us and not go to the Scients and the Razorfishes of the world. And that was going to be our business model. Everybody is charging $250 an hour for these consultants and paying them $60 an hour. We would pay them the equivalent fully burdened of $64 an hour. That was our clever trick that we came up with, and that's what we thought our innovation was. It turned out not to have been what we did.
Livingston: What did you do?
Spolsky: We started a consulting business and we hired a couple really smart people. We had a few clients. We did the whole $60/$250 thing, which was great, and that business then disappeared very rapidly out from under us. So we became just a real software company.
Livingston: But you still kept a lot of your culture for the programmers.
Spolsky: Oh yeah. That was always sort of the goal, really, in creating Fog Creek. If you are in Boston, Austin, Raleigh-Durham, Silicon Valley, or Seattle, as a programmer you have a lot of choices of where to work. In New York, the choices are investment banks, some hospitals, advertising agencies—but not technology companies. There are very, very few technology companies in New York.
But New York still is the largest city in America, and there are an awful lot of programmers who are stuck in New York because their wife is going to medical school, or their family is there, or they just love the city, or they want to do improv theater and this is the best place to do it—millions of reasons why a programmer might find themselves in New York. Every programmer wants to work at a product company because it is so much better than working as a slave in an investment bank. And there were none in New York.
We would go to parties, and we'd find geeks, and they'd say, "Do you know of any software product companies in New York where I can work?" And we would say, "Gee, no. I can't really think of any." This is what programmers would talk to each other about: how can I get out of the investment bank in New York? So part of our model was, "Let's create a fun place for us to work, since we are stuck in New York City. Create a software company specifically in New York City."
With many programmers, you are sort of peripheral to the goal of the company and you are doing a peripheral path, so that you're never a part of the company and nobody cares about you.
Livingston: Why do big companies get it wrong?
Spolsky: I worked at Viacom, which is a culture of creating MTV and Comedy Central. It's not even about creating MTV and Comedy Central; it's about buying MTV and then buying Nickelodeon, and then merging MTV and Nickelodeon and creating a thing called MTV Networks and playing political games with that, and then maybe selling one of them off and buying CBS.
In order to succeed in that environment, those are the things you have to be good at. And if you need to make some interactive websites or MTV needs a web server or whatever the thing is, then you don't even hire programmers; you hire some people who know some people who might know something about the technology. Eventually, you get somebody who thinks, "Let's get some programmers in here," and they actually hire a programmer. And if they are lucky, they get a good programmer, but they will torture that programmer until that programmer wants to cry and leave.
A company that is not designed to create high-tech products is very unlikely to have the culture or the DNA that it takes to create high-tech products. So if you are a high-tech person in that company, then you're basically a glorified typist in some sense. It's very unlikely that the kind of people who would be successful in an entertainment company would even understand what programmers do that makes them more than typists.
Livingston: Looking back, is there anything you would have done differently?
Spolsky: The biggest mistake that we consistently made is that we kept getting all kinds of interesting marketing ideas. Well, the first problem we had is that we thought we didn't understand sales and marketing because, indeed, I am a programmer and Michael is a programmer. We thought that the whole business of sales and marketing, which we recognized as being utterly crucial to the success of a high-tech company, was completely mysterious to us.
When we read about it, we knew that we were bad at the particular skills that we needed to do sales and to market things. We didn't have any kind of budget for marketing. So we were just afraid of the so-called "go-to-market" strategy. I see a lot of startups in their first couple of years kind of flail around—exactly the same way we did—trying to figure out, "Oh shit, how are we going to get people to buy our stuff?"
We had this dream that we would find a company that would sell and market our products, and we would do development. There would be some kind of 50/50 split. But search as I may throughout the history of the annals of computer software, I could only find one example in which one company sold a product and the other company developed. It was Lotus Notes, which was developed by a Boston-area company called Iris Associates.
They had a deal that was a 50/50 split with Lotus, basically. Lotus Development did all the sales and marketing and bought copies of Notes from Iris for, I believe, 50 percent or something. It is probably 25 percent of the MSRP (manufacturer's suggested retail price) or something like that. That particular relationship, before Lotus completely acquired Iris, lasted long enough that I thought that maybe this model would work.
I later talked to people that were involved, and they said, "Oh my God, the tensions were unbelievable. It was a nightmare." Lotus had to acquire them.
So the next thing we looked at was selling Fog Creek to some other company that we thought could take us to market. We went through the whole song and dance and negotiations with the company that we thought would acquire us and had the cash to take us to market. It didn't work because we were prima donnas with inflated opinions of our own worth. In other words, they made an offer for about $4 million, and we thought we were worth about $12 million. We understood why they thought we were worth $4 million. That's what we would have said in their position, too. But, we really thought that we were going to go a lot further.
Lo and behold, the company that didn't acquire us did acquire another company of some friends of mine in the same scenario. They were developing software, and they were hoping that this acquiring company would be able to go to market with the software. And the acquiring company actually proved that they did not have the ability to go to market with the software products, so that was a flop. I think if we had gone that particular route, we would have disappeared, pretty much, and the products would have disappeared, and Fog Creek would have been no more.
So the mistake I made was in thinking that I had a sales and marketing problem, you know, because everybody said, "Where's your salesman? Where's your marketing department? How is anybody going to buy your software?"
In the early years, we thought, "Let's get people to link to us on their websites, and we'll pay them a little bit of money if they sell our software." When we had a consulting business; there was this little thing up on our web page saying, "Help us find some consulting clients and we'll give you $5,000"—which I thought would get people's attention. Everybody that had any kind of business experience said, "No. This looks like you're desperate and it's a bribe. Take it down from here." The only person who ever even bit at that slightly was someone who was going to hire us anyway, or thought that his firm should hire us, and was trying to get what would have amounted to an illegal kickback.
So it was just a completely goofy thing that we did. But then we took it further. We said, "Make hyperlinks to Fog Creek properties (or whatever) and if people follow the hyperlinks and buy our software, we'll give you a percentage—15 to 25 percent." It was an affiliate program, just like Amazon affiliates. That actually did get us some sales, but we put a lot of work into developing that, and the amount of sales it got us was negligible. The administration and development overhead were just not worth doing, and we eventually shut it down because I was sick of writing $19 checks every month. It was a complete waste of time; it absorbed a lot of time very early on, critically.
A third example of this was when we said, "Let's make some kind of coupon system"—because we had this idea that we would send people an automatic email when they visited our website that would tell them—and we had all these crazy ideas like, "Buy our software within the next 72 hours and get 25 percent off." (That thing was actually a bot that we wrote years ago, and it still runs. If you try CityDesk, which is our least popular product right now, you will get an automatic email with a 25 percentoff coupon that you have to use in the next 72 hours.) When we launched that, it did increase our sales a little bit. It gets people to evaluate the demo version right away—because they don't want to lose their 25 percent off coupon which is going to expire.
These were all marginally good marketing ideas. Unfortunately we spent a lot of time chasing them. The one thing we learned over 5 years is that nothing works better than just improving your product. Every minute, every developer hour we spent on any one of these crazy things—although they had some marginal return on the work that we put into them—was nothing compared to just making a better version of the product and releasing it. If we had taken all the effort we put into these crazy schemes and put it into moving our software development schedule ahead by the equivalent amount, it would have paid off much more.
That was probably the biggest mistake we made. And that's the advice I give everybody. All those little coupon schemes, this is what General Motors does. They figure out new rebate schemes because they forgot all about how to design cars people want to buy. But when you still remember how to make software people want, great, just improve it.
Talk to your customers. Find out what they need. Don't pay any attention to the competition. They're not relevant to you. Only talk to your customers and your potential customers and see what it is that caused them not to buy your product or would cause them to buy more copies of it. And do that, and then ship it. That was something we really, really should have focused on, but, you know, we didn't know any better.
Livingston: Do you consciously not take any investments?
Spolsky: Yeah, absolutely. We took no investments because there were so many horror stories about what VCs would do to you. ArsDigita was the most public one, obviously, of kicking out the founders and then mismanaging the company and bringing in the so-called professional management.
You can definitely see how, if you're an investor at a VC stage, when you look at your investments and you look at the kind of founders you have of companies, it's obvious that some of the founders are just hardcore geeks that are never going to develop into good managers of a large company. Some of them are founders precisely because they wouldn't be good managers of a large company. So in those kinds of companies, you probably do want to bring in better management, if you can find it. Although I don't necessarily believe that VCs really have the ability to do that or that it ever works trying to bring in "professional" CEOs. There is a justification for saying a lot of founders would not be good managers, but there are an awful lot of companies being run by founders that do a pretty good job of running them by themselves.
So we didn't want that to happen; we didn't want to be forced to do anything we didn't want to do. I find new reasons every day why I'm thankful that we never took any kind of outside investment. Let me give you a small example. The board of directors consists of (because we're private and we can do whatever we want) me, Michael, and my boyfriend, Jared. Jared had a friend that had an idea of some way that we could modify FogBugz to be really useful to the investment community as something—I don't remember what, but something that the investment community could really use that's 5 percent different than FogBugz. And I kept thinking, "This is a huge distraction, and there's not a big enough market. I just want to stick to our core competency, and I'm not interested in doing software for the financial markets." He kept saying, "No, no. You've got to talk to this guy. You could make a lot of money off this. It would be great."
I kept thinking, "You know what, if it was a real board of directors and the VCs were bringing you these great ideas, you wouldn't really have any choice but to say yes. And you'd keep getting distracted to do their pet projects that they dreamed up in the shower one night and they think might be a good idea, and you just don't think it's a good idea." You don't really have the ability to say no when you take those outside investments. It's hard to tell your investors, "Let me just go in my own direction."
There are things that we do, boy, that I'm so thankful that I don't have to answer to anybody. I don't think it's possible to have private offices for developers when you're VC-funded, because it looks extravagant. I think that it's worth paying for in terms of the productivity you get. We spend an outrageous amount of money on quality office space that other people don't. That makes it easier to recruit and makes us more productive, I believe. But I've heard from people that it would be considered completely unacceptable by the average VC to have private office space—because it's considered an extravagance of a successful company or something like that. And, you know, "Why aren't you all in the same room talking?"
I've had that argument whether it's better to have private offices for developers. I don't want to have that argument anymore. I don't want to have to try to convince people anymore. Certain features—flying first class, Aeron chairs, double monitors, the best computers that money can buy—these are things which might be considered extravagant, but it's nice just to be able to do things the way that we believe they should be done, without having to have a big argument educating other people as to why we know how to develop software and they don't.
Livingston: Is there any advice you would give a programmer who wanted to start a startup who wants to avoid having to take any outside investment?
Spolsky: It's totally possible. I would recommend that you create a weblog and have millions of readers every month from around the world that read it. That's not really necessarily followable. Step two is a little bit hard. I think it's Larry Wall who used to have this saying about Perl that, "Well, if you don't like it, just make your own language and then make it popular." That was his way of refuting any and all complaints about the Perl syntax or whatever.
So the reason I'm saying this, even though it's tongue-in-cheek, is that we definitely got a lot of publicity—what a traditional company would call PR—through Joel on Software. And that caused us to get an enormous number of initial customers. After that, our products spread by word of mouth. Existing companies buy more, and people leave those companies and go to other companies and buy it. They've never heard of Joel on Software, but they're still buying our stuff. We've actually seen that in the curve. Whereas, in the early days, we would ask people on our website, "How'd you hear about Fog Creek?" when they purchased things, and 100 percent of the people that filled out that field would write, "Joel on Software."
Now it's down to about 30 percent. It's dramatically reduced, but it's still there, so to some extent I don't believe this is a replicable model. Because I've seen a lot of people—that maybe can't write in as exciting a way, or maybe don't have things to say that other people happen to want to read—try to replicate that model and maybe succeed and maybe not. Unfortunately, startups have to find something that works for them.
In our case, our software didn't really have a strong viral nature to it, and so using Joel on Software got the word out there that we make software products. It worked very well for us, but it's not necessarily a model that anyone else could be successful following.
I remember one of the stupidest things I ever wrote on Joel on Software. I was giving advice on writing technical specifications, and I said, "Be funny." The reason that was stupid was that I later realized that most people, when they try to be funny, aren't that funny. They just look kind of sad. That's like, "Be born to rich parents." It's not that useful advice for most people.
Livingston: Did you have any competitors that you worried about?
Spolsky: Probably, but I never really worried about them. It's sort of funny, but, because Joel on Software has such a wide readership, a lot of people say, "Hey, if Joel can do this, I can do this too." And they'll copy the model all the way down to the actual product.
I believe there have now been seven clones of FogBugz. The most extreme example was somebody that reimplemented the whole thing, but copied our user interface word for word, so the help file was actually a copyright violation, which we had to tell him to change. But it was an exact clone of FogBugz in every single way. He later used all kinds of nasty search engine optimization techniques, got banned from Google, and that was the end of his business. That was the worst extreme.
On the other hand, there are people, who we generally respect a lot more, who kind of said, "Oh yeah, bug tracking. We could do that," or "We have one of those." So all told, I think there are probably seven competitors.
The interesting thing is what they copied. They didn't really copy the code; they copied the implementation of how FogBugz works. But they missed what made us successful. They didn't really copy Joel on Software. And I think what's happening to those seven people right now is they are getting an object lesson that merely copying the product that another company makes does not make you successful. We're not afraid of those people by any stretch of the imagination. Sometimes they can be aggravating, but we don't really care.
More than that though, we've long had a philosophy of pretty much ignoring our competitors. When I first went to work at Microsoft, there was a person on my team who decided it would be useful—it would get him some notoriety internally—if he wrote a weekly email summarizing Microsoft's competitors. We were the Excel team, so it was really the spreadsheet competitors, Lotus and Borland—what they were doing and what was new and what features they had. He sent out this email internally at Microsoft to a bunch of people for 6 weeks, until he lost interest. I remember thinking that, no matter what we knew that the competitors were doing, the information was completely useless to us. It never really changed what we were doing. If it's like, "The competitors are going to do feature x," well, if that's such a good feature to do, why aren't we hearing about it from our customers?
In other words, why listen to our customers indirectly through what our competitors do when we can just talk to our customers? So my mantra has always been, "Listen to your customers, not your competitors." I don't know who our competitors are. Sometimes I'm asked to list other bug-tracking products, and by now I know about Bugzilla. I think there's something called BUGtrack. I don't know what they have, what their products are, what their price point is. I could research all that, but I can't think of a single thing I would do with that information.
I do want to talk to people who evaluated our software and then decided to go with a different product instead. I want to know why they did. "Well, one of your competitors has a wiki built in." OK, maybe we'll have some kind of wiki integration. But, again, that's something I would hear from our customers and not from paying any attention to what our competitors are doing.
Livingston: Looking back on the earlier years, what was most surprising to you?
Spolsky: Most? It was all surprising. One thing that surprised me was that, when we released a new version of our software (we're on 5.0 with FogBugz already), there would be a big jump in the number of sales. We would say, "OK, all the upgraders are upgrading right now, so that's what accounts for the boost." And the surprise is that after that initial boost, the number never went down. We expected there would be a hump after a new version was released and that would make us want to keep releasing new versions. But instead there was a step. A big step up. We kept thinking it was a hump that was going to go down, then it never went down again.
Now I understand why that is. You made a better product. When you have a better product, you will win more of the evaluations. More people who evaluate your product will decide to purchase it. So you are now on a new permanently high plateau in sales caused by the fact that you have a better product. It overcomes more of the hurdles that your software is put through when users evaluate it to see if it meets their needs.
Livingston: Who did you learn things from?
Spolsky: Oh, everyone. I can't even begin to list the number of people who taught me things.
I was in the Israeli army, and I learned some strategy there by mistake, by osmosis. In order to avoid spending too much time in uniform, I did this kibbutz army program. It was two years on a kibbutz, which is a communal farm in Israel. They usually have industry, and the kibbutz I was on had a bakery, which was this gigantic factory that made bread. I spent almost 2 years making bread every night in this factory that made hundreds of thousands of loaves of bread. It was not artisan bread by any stretch of the imagination. It was a big, noisy bakery. There are so many things that I learned from that about how people work, how to think about working, how to manage, how an assembly line might be organized, how industrial machinery works.
But my first job at Microsoft is really where I learned the software industry. I got there in 1991. At the time, there were almost—I hesitate to say this, but—no software companies that really knew the basics of how to develop software in the way that Microsoft did. They accomplished what they did because they figured out a ton of things about how to make software, repeatedly and reliably, that people want to buy, that nobody else had figured out. And they were doing things like bug tracking—like having a bug-tracking database—that seem completely obvious, and, when you looked around, 80 percent of commercial software companies did not do bug tracking. Or 80 percent of commercial software companies did not write specifications. Or 99 percent of commercial software companies did not do usability testing.
If you were an alien and you came here in 1991 and you wanted to learn how to develop software, you would learn ten times as much at Microsoft as anywhere else, I think, because I watched these companies kind of flail making mistakes. There were things—really basic things, that companies did not know. Microsoft knew that loading a segment register on the 386 was a very time-consuming operation, and therefore on the 386 architecture you can't use far pointers unless you absolutely have to because it's extremely slow. Borland did not know that. Result: Microsoft Access loaded in 2 or 3 seconds; Borland Paradox for Windows took 90 seconds to get running. Because of something that Microsoft knew that Borland did not know. And that's one of a million examples.
Now Microsoft has forgotten all these things, and they've hired a lot of morons that don't know these things anymore. I think that now Microsoft is kind of a big tar pit where you can barely move forward because there's so much bureaucracy. But I learned a lot.
Livingston: There were only 5,000 people back then, right?
Spolsky: Right, 1,000 of whom were developers. 200 were program managers. I was a program manager. I was working on Excel, which was really at the heart of the company, other than Windows and DOS, so it was really cool.
Livingston: What do you think makes a good hacker?
Spolsky: I think what makes a good hack is the observation that you can do without something that everybody else thinks you need. To me, the most elegant hack is when somebody says, "These 2,000 lines of code end up doing the same thing as those 2 lines of code would do. I know it seems complicated, but arithmetically it's really the same." When someone cuts through a lot of crap and says, "You know, it doesn't really matter."
For example, Ruby on Rails is a framework that you can use with the Ruby programming language to access databases. It is the first framework that you can use from any programming language for accessing databases to realize that it's OK to require that the names of the columns in the database have a specific format. Everybody else thought, "You need to be allowed to use whatever name you want in the database and whatever name you want in the application." Therefore you have to create all this code to map between the name in the database and the name in the application. Ruby on Rails finally said, "It's no big deal if you're just forced to use the same name in both places. You know, it doesn't really matter." And suddenly it becomes much simpler and much cleaner. To me, that is an elegant hack—saying, "This particular distinction that we used to fret over, just throw it away."
I don't know if that's what makes a good hacker. I guess that would be answering a slightly different question to what's a brilliant hack. I guess a brilliant hacker is someone who comes up with a brilliant hack.
But it's also a programmer who gets into flow—sort of what Paul Graham describes as an animal. I see it specifically as a programmer who sits down to do something and they get into a mental state where they're just cramming away. They're just generating stuff and the time is passing and they're not aware of it. They're just typing, typing, typing, typing, and great things are happening because they're in that particular mental state.
I think probably there are a lot of workaday programmers working on upgrades to Enterprise Java (now I've insulted all the Java programmers) who never achieve flow. To them, it's just kind of engineering step by step; it's never the magic of creation.
Livingston: Is that what makes a good software company?
Spolsky: To me, building a software company—and this is kind of hand-wavy—is creating the factory that was going to be equipped for, when I have an idea or when somebody has an idea, we can throw it into the factory and get the working code at the back.
The first time we ever did this was last summer with Copilot, where we took four summer interns (three programming interns and one marketing intern), and we had this idea for a particular way of doing remote desktop assistance. It was a pretty obvious idea, and we looked out in the marketplace and there were not any compelling alternatives. We realized that, lo and behold, we could do this with four summer interns in one summer, because it was not that big of a programming problem. There was a neat hack where we could reuse somebody else's code. We could accomplish this with a small amount of effort and it was a business opportunity, so for the first time ever, Fog Creek was actually able to take an idea and, within a few months, churn out the solution to that idea on a fairly small scale.
My goal is to build a company where I can take much more significant ideas—where I can say, "Golly, backup software is really, really terrible. It's awful for all kinds of reasons. Let's make good backup software." That's a big project. I want to have the organization that I don't have yet where, when we get those ideas, we can produce the products. Because the capital is sort of endless. Capital is not a problem for us. Even if it was a problem for us, there's VC. The real problem is how to deploy that capital to create software, and that's something that we want to make the machine that is able to do.
Livingston: What advice would you give to a programmer who's thinking about starting a company?
Spolsky: I've got a lot: [laughs] Don't do it. It's going to suck. You're going to hate it.
Can I steal one from Paul? Don't start a company unless you can convince one other person to go along with you. If you don't have two people (or I would even say three) that you've convinced to devote their lives to doing this, it's just going to be a different thing. There are a lot of programmers that are very tentative about starting their own companies. There are a lot of working programmers doing something they hate, with some company that they hate, but they need money to pay the mortgage. So they figure, "I'll develop something in my spare time. I'll put in 1 hour every night and 2 hours on the weekends and I'll start selling it by downloads." And you say to them, "Who's your cofounder?" And they say, "My significant other—husband or wife. My cat."
But because they never really take the leap and quit their job, they can give up their dream at any time. And 99.9 percent of them will actually give up their dream. If they take the leap, quit their job, go do it full-time—no matter how much it sucks—and convince one other person to do the same thing with them, they're going to have a much, much higher chance of actually getting somewhere. Because they either have to succeed or get a job. Sometimes "succeed" seems like the easier path than actually getting a job, which is depressing.
So quit your day job. Have one other founder, at least. I'd say that's the minimum bar to getting anywhere.