Interview: Joel Spolsky, Co-Founder, Fog Creek Software
Interview: Joel Spolsky, Co-Founder, Fog Creek Software
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.

<< Home