Back in the year 2000, the founders of Fog Creek, Joel Spolsky and Michael Pryor, were having trouble finding a place to work where programmers had decent working conditions and got an opportunity to do great work, without bumbling, non-technical managers getting in the way. Every high tech company claimed they wanted great programmers, but they wouldn’t put their money where their mouth was.
It started with the physical environment (with dozens of cubicles jammed into a noisy, dark room, where the salespeople shouting on the phone make it impossible for developers to concentrate). But it went much deeper than that. Managers, terrified of change, treated any new idea as a bizarre virus to be quarantined. Napoleon-complex junior managers insisted that things be done exactly their way or you’re fired. Corporate Furniture Police writhed in agony when anyone taped up a movie poster in their cubicle. Disorganization was so rampant that even if the ideas were good, it would have been impossible to make a product out of them. Inexperienced managers practiced hit-and-run management, issuing stern orders on exactly how to do things without sticking around to see the farcical results of their fiats.
And worst of all, the MBA-types in charge thought that coding was a support function, basically a fancy form of typing.
Who wants to spend their days there? It’s no wonder they couldn’t get any good developers. And it’s no wonder they went out of business when the dotcom market imploded.
We had a different idea. What if the programmers were treated like rock stars? What if management’s number one responsibility was recruiting extremely talented software people, treating them well, and then getting the heck out of the way while they did great work?
At Fog Creek Software, management, not coding, is the support function. Management’s first responsibility is to create an abstraction layer for developers: to create the infrastructure so that programmers really just have to program:
“A programmer is most productive with a quiet private office, a great computer, unlimited beverages, an ambient temperature between 68 and 72 degrees (F), no glare on the screen, a chair that’s so comfortable you don’t feel it, an administrator that brings them their mail and orders manuals and books, a system administrator who makes the Internet as available as oxygen, a tester to find the bugs they just can’t see, a graphic designer to make their screens beautiful, a team of marketing people to make the masses want their products, a team of sales people to make sure the masses can get these products, some patient tech support saints who help customers get the product working and help the programmers understand what problems are generating the tech support calls, and about a dozen other support and administrative functions...”
To recruit the best programmers, we’ve invested in the nicest work environment we can get. In 2003, we moved into a new office that was custom-designed by a top architect to be the ideal programming workspace, with private offices, windows everywhere, a lounge with a big plasma TV, and every feature a programmer could ever want. We even have twenty power outlets at each desk, at desk height, four with UPS power. That’s how fanatical we are about catering to programmers. Oh, and really comfortable chairs. We never hesitate to buy the tools we need to get our work done (standard issue: two large LCD monitors, one 30”, the other 21”).
But it’s not enough to spoil programmers. If you create a great place to work but you can’t stay in business, you haven’t accomplished much. So we don’t buy things we can’t pay for out of revenues. We don’t accept outside investments, because we don’t need a bunch of oh-so-clever VCs insisting that we follow the other lemming companies in their portfolios right out of business. We started out doing consulting work to help pay the bills, until we got to the point where our software revenues were high enough to support the operation. We’re still a small company, but our products are extremely well-liked and our sales are growing rapidly.
Smart people like to work with other smart people, so we are fanatics about hiring the absolute best people we can get: people who excelled at everything they did in the past, and astonished us with how easily they handled a day of difficult interviews.
We are focused on continual learning, mentoring, and education. We’re not writing the same old code again and again; we’re not using the same technologies for year after year, and we have plenty of time and opportunity to learn new things.
One thing is constant, though; we’re devoted to being the best coders we can. We don’t get into holy wars over operating systems or programming languages; we are pragmatic and scientific and smart enough to see the pros and cons of both sides. It’s hard enough to produce consistent results in software, so we use the methods described in Joel's book Joel on Software as a minimum standard for our work: source control, schedules, specs, all the good stuff that you associate with top gun software teams.
It’s working. We’ve been continuously profitable since inception, without any outside investments. We get hundreds of applications for every opening and people love working here.
Joel Spolsky is a globally-recognized expert on the software development process. His website Joel on Software is popular with software developers around the world and has been translated into over thirty languages. He created FogBugz, a popular project management system for software teams. Joel has worked at Microsoft, where he designed VBA as a member of the Excel team, and at Juno Online Services, developing an Internet client used by millions. He has written three books: User Interface Design for Programmers (Apress, 2001), Joel on Software (Apress, 2004), and recently, Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent (Apress, 2007), and writes a monthly column for Inc. Magazine, where he is a contributing editor. Joel holds a BS in Computer Science from Yale University. Before college he served in the Israeli Defense Forces as a paratrooper, and he was one of the founders of Kibbutz Hanaton.
Michael Pryor founded Fog Creek Software with Joel in September 2000. He has served as the company’s president since the beginning, and has also been the CFO since 2006. Michael graduated from Dartmouth College with an Honors B.A. in Computer Science (Phi Beta Kappa, magna cum laude). After graduation, he joined Juno Online Services, as a Windows client developer. He writes a column for Make Magazine called Puzzle This and runs the popular interview website TechInterview.org.