Bribing Bloggers

There’s an interesting debate going on about whether bloggers should accept gifts from vendors.

Lately Microsoft, working through their PR agency, Edelman, has been getting rather aggressive about trying to buy good coverage from bloggers. A few months ago they invited bloggers out to Seattle to meet Bill Gates, with all expenses paid (hotel, airfare, etc). Last week they send out a round of expensive laptops with Vista preinstalled. These are not loans, by the way: they’re completely free laptops (“yours to keep!”). Here’s the offer I received from a Microsoft employee:

I’m working on getting some hardware out to key community folks, and I’d like to offer you a review PC. I’d love to send you a loaded Ferrari 1000 courtesy of Windows Vista and AMD. Are you interested?

This would be a review machine, so I’d love to hear your opinion on the machine and OS. Full disclosure – while I hope you will blog about your experience with the pc, you don’t have to. Also, you are welcome to send the machine back to us after you are done playing with it, or you can give it away on your site, or you can keep it. My recommendation is that you give it away on your site, but it’s your call. Just let me know your opinion on Windows Vista and what you plan to do with it when the time comes.

Sounds nice, huh? What could be wrong with that?

Robert Scoble says “it’s an awesome idea.” He says that as long as the bloggers disclose that they got the laptops free, they’re acting ethically. And he says that Edelman is just “doing their job,” which is therefore by definition ethical:

On Edelman’s side? Is sending out laptops ethical? Of course! That’s their job.

Scoble is wrong.

Just because it’s someones job to do something, doesn’t make it ethical. Robert, your logic is faulty. Unless you want to assume that anything that Edelman does in the name of promoting Microsoft is automatically ethical, this logical argument you are making is simply false. For example, if Edelman paid a bribe to a government official to standardize on Windows, that would not be ethical, even though it’s their job.

So. Does disclosure work?

The theory here is that if a blogger admits to receiving a gift, the reader can make up their mind as to whether that blogger has any credibility on this topic. Imagine this innocuous series of events:

  1. Blogger gets free Vista PC
  2. Tries it out
  3. Feels obliged to blog about it
  4. Writes “I got a free Vista PC. It has a really sharp-looking on-screen clock!”
  5. Reader thinks, “hmm, no credibility, but that’s a nice looking clock there. Maybe I’ll get Vista.”

Effectively Microsoft has bought publicity and goodwill. And even though the blogger has fully disclosed what happened, their message is corrupting the medium.

I’ve been thinking long and hard about this, and the only conclusion I can come to is that this is ethically indistinguishable from bribery. Even if no quid-pro-quo is formally required, the gift creates a social obligation of reciprocity. This is best explained in Cialdini’s book Influence (a summary is here). The blogger will feel some obligation to return the favor to Microsoft.

These gifts reduce the public trust in blogs. Recently I wrote a nice article, for example, about Sonos. I bought the system with my own money, liked it, thought it had some great UI that programmers should pay attention to. Most people understood the article to be what it was: a positive review about a good product, influenced only by the fact that the product was good. But some people thought it was just a paid advertisement.

This is the most frustrating thing about the practice of giving bloggers free stuff: it pisses in the well, reducing the credibility of all blogs. I’m upset that people trust me less because of the behavior of other bloggers. Don’t even get me started about PayPerPost.

Anyway. I do not have clean hands. I accepted that stupid cell phone from Sprint fully intending to never write about it, and later decided it was so bad I should just write a negative review. For a couple of years, I accepted a donation of colocation space and facilities from Peer 1 Network, but only because they were the best colocation facility and backbone provider I could find, and only because Joel on Software is really a non-profit, advertising-free site and I was happy to accept the sponsorship. Google donated a Search Appliance to provide search for Joel on Software, also mostly as a community service on their part, which was very nice. They probably intended to get some free publicity out of it. They did.

Microsoft’s crazy offer, though, made me think a lot more about this whole thing, and I’ve decided that from this point forward I’m not accepting anything, full stop. Even if my moral logic is faulty, and there’s nothing wrong with accepting gifts, I personally feel that it’s not worth the reduced credibility. Who are the most trusted reviewers out there? Consumer Reports, probably. They don’t take anything from vendors. They even buy everything they review at retail, which is what I’m going to do.

Today, Fog Creek Software pays the Peer 1 bills. I declined the Microsoft offer and bought my own fully-loaded Dell laptop (a D620) to try out Vista. My conclusions:

  1. Do not, under any circumstances, consider upgrading an XP system to Vista… even if it’s fairly new and even if it’s Vista Supremo Premium Ultra-Capable.
  2. When you get a new computer, if it comes with Vista pre-installed, that’s when you’ll upgrade.
  3. Don’t buy a new computer now just to get Vista. If your current system meets your needs, stick with it until you really need a new system. Vista is not reason enough for a new PC.
  4. Need more details? Read Paul Thurrott’s review.

It’s impossible to be completely pure here. I’m not an isolated test lab in the middle of nowhere doing nothing other than testing products. The ways in which I am influenced are many. Disclosure is not always possible. I may forget things. Things can get blurry. I might have gone to a bookstore, looked at the Apress section (my publisher) to see if they have anything new and interesting, seen a good book, bought it, given it to one of my summer interns, and then it shows up in a critical scene in the Aardvark’d movie. And Gary Cornell, the publisher of Apress, is a close personal friend. OK, was that unethical? I’d have to live in a monastery to completely avoid those kinds of conflicts of interest. I’d have to bore everyone to tears to disclose them, and I might forget stuff, so disclosure is not even a practical answer.

I’ll keep trying, though, to earn your trust.

This message was brought to you in part by Fog Creek Software, a company I started, which pays my salary and which allows me to work on Joel on Software during working hours using their equipment, and which also hosts the website Joel on Software, bought the rack of servers it’s running on, and pays all the bandwidth bills. Fog Creek and I hope that you will feel goodwill towards us as a result and hopes you will consider evaluating our software products, and, if you find they meet your needs, we hope you will buy them so that we can afford to not only pay our programmers, staff, landlord, and bandwidth bills, but perhaps have a little bit of money left over to give the owners a dividend which, in my case, will probably go towards a new hot tub. By reading this article you are contributing, at least indirectly, to the Joel Gets a Hot Tub fund.

Explaining Steve Gillmor

Nobody I know can understand a thing Steve Gillmor is talking about, mainly because he makes so many obscure references without explaining them. I thought as a public service I would provide a detailed exposition of his latest blog post, Bad Sinatra. My goal here was to explain just about everything, and I hope it’s not too tedious. It works like the Talmud. First I’ve got a paragraph quoted directly from Steve. I’ve taken the liberty of adding hyperlinks, which are not in the original article, and correcting an accidental edit which renders one of the paragraphs nonsensical.

Then I went ahead and bolded all the terms that needed definition, including names that were relevant. Those are defined in the “Rashi” section below each paragraph.

Finally, I added my own commentary in the “Tosefot” section. The idea is that the Rashi stuff helps you understood what Gillmor literally meant, while the Tosefot section contains more in-depth commentary addressing the actual points he’s trying to make.

It took me over three hours to research and explain all this, and, as you’ll see if you follow closely, Gillmor’s entire argument fell apart under scrutiny, so I don’t think I’m going to be doing in-depth explanation like this again.

So without further ado, here’s Bad Sinatra, with Rashi and Tosefot.

Bad Sinatra, by Steve Gillmor.

Jonathan Schwartz has a problem. Me. I read his blog today, starting with the most recent post and eventually landing on one a few days ago about the resurgence of the thick client. Let me weigh in thusly : what a load of shit this is. When Sun leadership starts moving away from the Google sweet spot and toward god knows what users-love-client-code idiocy, it’s big trouble for the Sun boys. Dave Winer is swimming in muddy waters too with his anti-Lucovsky Google-is-deprecating-SOAP of all things in favor of the Ajax RESTian Web-only API that Mark is evangelizing on Scoble’s show.”


Jonathan Schwartz: CEO and President of Sun Microsystems and blogger. Thick client: A software architecture in which custom applications are run on the desktop talking to a server. Compare to thin client, in which only a web browser is run on the desktop. Sun leadership: Schwartz. The Google sweet spot: Ajax, that is, web-based applications like Gmail which are neither too thin (plain HTML) nor too thick (heavyweight Java applets that need to be downloaded or custom applications) and with just the right compromise between functionality and simplicity. Users-love-client-code idiocy: Theory that desktop applications provide a better user experience. Dave Winer: Blogger and pundit. Lucovsky: (Mark), Google developer formerly of Microsoft. SOAP: Complex protocol for remote procedure calls, implemented by sending XML over HTTP (usually). RESTian: Using REST, a much simpler alternative to SOAP, implemented by sending a URL to a web server and getting back XML (usually). Mark: Lucovsky. Evangelizing: promoting. Scoble: (Robert), blogger and video interviewer.

“First, Jonathan. I went to a Sun press party tonight that was remarkable in its failure to deliver any promised executives. Dan Farber found a few lurking in the rear of the room, but no Jonathan, no Papadopoulos, no Fowler. I found myself longing for the good old McNealy days, when Scott’s Microsoft jabs and hockey jive kept the room moving. A Google party a few weeks ago was in full swing before Sergey and Larry showed up, and their presence almost came as an afterthought. Marc Benioff threw a luncheon to announce the latest iterations of the Salesforce build-out, and instead of playing to the middle of the pack, excelled in a detail-rich deep dive into his company’s mining of its customer base as the evolution of Microsoft’s developer strategy. That’s entertainment, folks.”


Deliver: be attended by. Dan Farber: editor of ZDNet and CNET. Papadopoulos: (Greg), CTO and VP of R&D, Sun Microsystems. Fowler: (John), EVP Systems, Sun Microsystems. McNealy: (Scott), ex-CEO Sun, preceded Jonathan Schwartz, characterized by almost perpetual denigration of Microsoft in public. Hockey: McNealy liked ice-hockey. Sergey: Brin, co-founder of Google. Larry: Page, co-founder of Google. Marc Benioff: CEO, Salesforce: Web sales-force management software. Playing to the middle of the pack: Avoiding technical detail so as to remain comprehensible to mainstream journalists.


Mining Gillmor is president of and was a co-founder of AttentionTrust, a non-profit organization tightly connected to the for-profit startup RootMarkets, so it’s safe to assume that he agrees with their belief that users on the Internet should own their attention data. For example, if a user goes to Amazon and visits certain product pages, Amazon obtains data about what that user is paying attention to. Under current practice, Amazon “owns” that data. Briefly, the AttentionTrust/RootMarkets idea is that the user should have a right to control that data, delete it from Amazon’s servers if they choose, sell it to the highest bidder, etc. The “sell it to the highest bidder” part is where they hope to make their money, creating an exchange, Root Exchange where user’s “intentions” can be traded. In practice this means trading leads: contact information for customers who have expressed a desire to purchase some commodity. For example a user might go to a website and say they’re buying a house and want a mortgage; this lead would be traded on an exchange just like a stock or bond and lenders who wanted to write mortgage loans would bid on it. Participants in this exchange would be (presumably) required to abide by strict privacy rules and the principle that users own their attention data (i.e. they have the right to control the information that they are interested in a mortgage right now), which makes this an attempt to create a legitimate and ethical version of what has traditionally been a shady, boiler-room operation characterized by illicit markets for names and phone numbers of the elderly and the feeble-minded who are likely to fall for scams (c.f. Glengarry Glen Ross). Whether it works or not remains to be seen. In any case it is fair to assume that Gillmor strongly objects to Benioff’s mining his customer database, which, according to the AttentionTrust philosophy, amounts to theft.

Microsoft’s developer strategy Benioff and have a history of overstating the importance of their own work. Even though their product is primarily a sales force automation product, advertising historically focused only on the way it was delivered, as a hosted web application, as if this was a more important aspect than the functionality of the web service itself. I was at a presentation that started out with a quick five minute summary of the evolution of programming (Eniac, mainframes, minicomputers, microcomputers, and web-based applications) and then presented Salesforce’s latest feature as if this was the next big step in the evolution of programming, on a par, say, with the shift from PCs to the web. The latest feature? Custom Fields. The highly savvy audience literally laughed at the pretense. Now, Microsoft’s “developer strategy” probably refers to their massively successful strategy of creating platforms, especially Windows, and doing everything imaginable to make it easy and profitable for developers to create software for that platform, thus strengthening the value of the platform and creating massive network effects. Presumably what happened at the luncheon was that Benioff described his company’s efforts to mine its customer data as if this were an accomplishment on a par with Microsoft’s greatly successful strategy of courting third-party developers. Gillmor mocks the hubris of this comparison. On the other hand, it seems more likely that Gillmor might just have been conflating two things Benioff was talking about: their own customer data mining and’s new platform strategy which encourages developers to write their own enterprise applications to run on

“I thought I would miss the end of the Gang more than I have. Mike Arrington’s flareup with Sethi and his revolving news desk door would have made for a lively session or two, but Mike’s week-later wrap of the Sethi situation blew away the bullshit and out-ValleyWagged Denton to boot. I’ve been pitching in with Jason to tighten up his Cast for the Kids, letting me troll the blogosphere for news bites without having to work too hard or miss the roundtable so much. I spent a great three days or so with Doc, Phil Windley, Kaliya, Dick Hardt, and Kim Cameron among others in the Identity Workshop, talked with Mike Vizard and Dana Gardner intermittently, and watched Robert Anderson and Cori Schlegel cross the line and merge GestureBank with the AttentionTrust only a few weeks behind schedule. And Gabe Rivera chimed in a few days ago in email asking what it would look like if I resurfaced. An eight-foot invisible rabbit.”


Gang: The Gillmor Gang, Gillmor’s group podcast, which recently ceased production. Mike Arrington: Editor and creator of TechCrunch and a sometime-member of The Gillmor Gang. Sethi: (Sam), former editor of the UK version of TechCrunch, fired by Arrington for reasons which this margin is too narrow to contain. Valleywag: Snarky, for-profit Silicon Valley gossip site. Denton: (Nick), creator of Valleywag. Jason: Calacanis, occasional member of The Gillmor Gang. Cast: Calacanis’s new podcast. Troll the blogosphere: Read weblogs. Roundtable: The Gillmor Gang. Line: Finish line (he doesn’t mean crossing an ethical line). GestureBank: Gillmor had left AttentionTrust for a period of time to set up GestureBank, which, with his return to AttentionTrust in September, was merged in.


Lively session or two: The Gillmor Gang often devoted a substantial amount of time to discussing fights and rows; most of the final two episodes were devoted to Jason Calacanis’s departure from AOL.

Rabbit: Most of this paragraph appears to be here primarily to bring us up to date on Gillmor’s latest doings, it is not related to the entry’s main points about Jonathan Schwartz’s comments on the thin client or Dave Winer’s comments on web protocols.

“The thick client: why is Jonathan floating this lead balloon? To get some blogoversy? Probably. His slick sales pitches don’t register, and one of the best guys on his feet in the business seems hamstrung by his day job. He should take a look at what Jon Udell is doing. The new show business is actionable information on demand, spiced with a healthy disrespect for marketing bullshit and strategic kindergarten. Take Edelman’s alliance with Newsgator to provide pre-gamed conversations. Nice: avoid the messy run-up to PayPerPost stench, and go right for the stupid notion that people won’t immediately look not at the approved conversation but at the telltale odor of the missing links. Attention: the “customers” are listening now. Think of the stream as meditation.”


Blogoversy: Weblog controversy. Slick sales pitches: Most of Schwartz’s weblog posts are earnest and unsubtle sales pitches for Sun’s products. Don’t register: As a result Schwartz’s weblog has very little influence and is rarely linked to by other bloggers. It has only 2342 incoming links as reported by Technorati compared to, say, Scoble, who has 16,090. Hamstrung: Unable to write what he really thinks on his weblog. John Udell: Former InfoWorld columnist who recently joined Microsoft as a professional blogger. Actionable information: News You Can Use. Strategic kindergarden: Childish strategies attempting to get publicity through weblogs. Edelman: Large, old, established public relations firm. PR firms attempt to gain publicity for their clients by creating news stories, as opposed to advertising firms which simply purchase paid ads. Newsgator: RSS software company. PayPerPost: Loathsome, despicable company which proposes to pay bloggers to mention products, pissing in the well and destroying what little trust we had earned. Stream: list of URLs which the web user visits in the order they visited them.


The thick client. After a brief sojourn in his social calendar, Gillmor threatens to return to the topic at hand, the critique of the blog post by Schwartz.

New show business. Jonathan Schwartz’s slick marketing weblog is ineffective because readers are on the lookout for marketing BS and attempts to create bogus product placements on weblogs.

Stupid notion. PR agencies have traditionally done very well by building up relationships with journalists and news outlets so that when one of their clients has a product to push, they can get news stories about that product into the media. This is far more effective than advertising, because readers consider editorial content to be more credible than the advertising, which has almost no credibility at all. As more and more attention shifts from mainstream media (MSM) to the web and especially weblogs, PR firms are naturally concerned about how to do PR in this new environment. Their initial attempts consist almost entirely of treating popular bloggers as if they were traditional media outlets, so, for example, I get at least half a dozen “press releases” every day from PR firms, written in the style of a newspaper article, as if Joel on Software were some kind of newfangled newspaper. These releases are sent by completely clueless PR professionals who have absolutely no idea what’s going on; not only are they clueless, but they actually think they’re clever by adding a few bloggers to their spam directories. What they’re really doing is training bloggers’ bayesian spam filters to ignore the company they’re supposedly promoting, and generating ill-will towards their clients by spamming on their behalf. Steve Rubel of Edelman has been blogging for quite a while and certainly knows more than most PR professionals how blogging works, however, the Edelman/Newsgator plan, besides being almost impossible to understand, won’t work, because readers will immediately see it for what it is: paid advertising. Gillmor argues that users will recognize it as paid advertising because it lacks hyperlinks which are characteristic of genuine blog posts.

Microsoft’s market standards into a commodity. Spare me the garbage that we need real code running on the client. If you want to know what a vendor is afraid of, figure out what competitor they’re more afraid of. Is it Adobe with Apollo, eroding Java’s device penetration lead? It’s certainly not Microsoft? If you want to see why I’m so relaxed, go look at CrittendenIV’s post about this five tags bullshit. He mentioned me at the end so it bubbled up in my vanity feed, but there’s no way I can match or even come close to this guy. A star is born. By contrast, Jonathan’s bizarre thesis that the browser is a Winerian locked trunk is a) probably true, and b) so the fuck what. Mozilla forever put the lie to that theory when Firefox jujitsued Microsoft’s market standards into a commodity. Papadopoulos levels about Sun’s difficulty in driving sales in the Web 2 value chain no matter how right they are in their technology bets. Jonathan changes the subject to clients. Why?”


Apollo: Project by Adobe to allow Flash applications to run on the desktop on any operating system. CrittendenIV: Oregon blogger. Five tags: Blog game in which a blogger writes five things that their readers did not know about them, and then tags five other bloggers who are expected to then do the same thing. Vanity feed: Tracking mentions of oneself on the Internet. Winerian locked trunk: Metaphor by Dave Winer in which a large company creates a platform that allows small companies to participate in a market, but only as second class participants and at the whim of the large company. Papadopoulos: (Greg), CTO of Sun.


Microsoft’s market There appears to have been an inadvertent edit between the time the text was written and the way it appears on the web. I have redacted the text to the way that I believe Gillmor originally wrote it.

Firefox jujitsued The success of the web browser and the fact that it is a commodity, available for free on every platform, and the fact that developers now develop most new code to run over the web in the browser, has removed a lot of Microsoft’s market standards power. When all your applications run on a browser, Windows is just another commodity platform for running web browsers, no better than Macintoshes or Linux machines.

Levels Not sure where this “leveling” is taking place. Lately Papadopoulos has been talking about how the world only needs 5 computers, by which he means megacomputer clusters like Google,, Yahoo!, etc. None of those clusters is running very much Sun hardware, so somewhere Gillmor might have read Papadopoulos admitting this.

Why? It appears that Gillmor is interpreting Schwartz’s claim in favor of “rich clients” as meaning that people will write Java applications to run on the desktop, as opposed to Ajax web applications. This is why he brings up Apollo, which, if successful, would directly compete with Java as a platform for building desktop clients. Gillmor makes several errors here. First, “Spare me the garbage that we need real code running on the client…” Gillmor himself considers Ajax applications in web browsers the “sweet spot”, and those involve an awful lot of real code running on the client. Second, in evaluating competitors, it is almost absurd to consider Apollo, which is still in beta and has virtually no penetration, as a serious competitor. It might become one, but that would be years away. The CEO of Sun doesn’t spend his days worrying about every project under development when he has real, current competitors to think about. (One of the frequent failings of pundits is a strong tendency to extrapolate wildly about trends which haven’t even begun yet, and assume that they will take over the world. There was a maddening dialog on one of the last episodes of The Gillmor Gang about whether Microsoft Office would move to the web, like Google Documents, in which Steve Gillmor and Jason Calacanis repeatedly talked about “flipping the switch,” as if porting hundreds of megabytes of Windows code to the web was a simple matter of “flipping the switch.” There was no recognition that web-based word processors and spreadsheets, while amusing, have merely a sliver of the capabilities of Windows-based apps.) The third mistake is even more drastic; Schwartz’s argument in favor of rich clients, if you read it, is actually an argument in favor of Ajax clients. Schwartz simply redefines those as “rich” clients. He writes: “In my book, it’s inaccurate to say Google or YouTube are ‘thin clients’ – they’re services that leverage someone else’s thick client. A browser…. Innovation on clients is back – we see it in a flurry of Web 2.0 companies investing in creative desktop interaction and the resurgence of JavaScript…” So actually, Gillmor’s entire “argument” with Schwartz is one based on a misinterpretation of what Schwartz is saying, and in fact they both seem to agree that the “Google sweet spot” is where the world is moving.

“Similarly, Dave is changing the subject from god knows what to JSON and Ajax API and for what reason? Dave is one of the most efficient if not the supreme political pragmatist, so why is he bringing up these subjects? Who am I supposed to be scared of? Google? Nope, if the Ajax API and the terms of service around including unaltered adsense are so counter to user interest, that will precipitate a decline in usage and therefore less adoption of Google properties. Seems self-correcting to me: user votes, user wins. Why do we need saving here?”


JSON: JavaScript Object Notation, the most efficient and concise way to transmit data from a web server to JavaScript code running on a browser. Unaltered adsense: Google’s requirement that if you use their API to perform search queries, you must show the sponsored links that come back with those results, unaltered.


Why is he bringing up these subjects? Dave recently misinterpreted the goal of JSON, thinking that it was an interop technology — reinventing the wheel that he himself invented in the form of XML/RPC and its successor SOAP. His readers corrected him, and he accepted the correction and moved on gracefully.

“Who, then, is Dave’s competitor? Is he caught, like Microsoft, competing against his own success? RSS won, and Dave did it. I’ll wait while nobody argues with this. Good. Now we live in an RSS world. What to do next? I say it’s gestures, but I don’t care what you think about that. Let’s say I’m right, that the world will move from inference to direct testimony, from links to gesture feeds, from push to accept, from pressure to permission. In that world, do we need protection? Or does Dave need to reinvent himself in this brave new world he launched?”


Nobody argues with this: Winer’s frequent insistence on getting credit for RSS leads many people to tease him by denying or downplaying his role, which makes him angry. Gestures: An esoteric astronaut architecture.

“It’s tough to teach an old dog new tricks, the saying goes. But Dave is not your average bear. He’s tough, cunning, honest, and vulnerable. There’s an opening to ignore what I’m saying as personal, but honestly all politics are local, and deeply personal. I’m not counting Dave, or Jonathan, out. But they need to face the music. They’ve outgrown the jobs they invented for themselves, and it’s time to grow again.”


Bear: Affectionate term for a husky, large man with a lot of body hair.


Outgrown the jobs: There are, it seems, two main points in Gillmor’s post. First, Jonathan Schwartz is wrong about rich clients. It appears that Schwartz was just being clever and using the term rich client to mean Web Browser + JavaScript plus a few other cutesy toys, nothing to be alarmed about, and Gillmor and Schwartz don’t seem to disagree at all. So that point evaporates. The other point is about why Dave Winer is changing the subject (what, are we only allowed to have one subject on the entire internet?), and it turns out that was just a simple misunderstanding, which is common on blogs: bloggers will frequently post something before fully researching a subject. Gillmor’s entire thesis about old dogs and new tricks thus completely collapses in a puff of smoke. And it only took me 3 hours to figure it out. Luckily there’s one more unrelated paragraph:

“Oh, and Microsoft, you guys better step up right now and cut this RSS patent cancer out before we do it without anesthesia.”


Before we do it: Microsoft recently applied for a patent on RSS, a disgraceful attempt to patent things that other people invented long before Microsoft was paying any attention. Gillmor’s saber rattling is endearing but completely impotent.

New year’s resolution: get a better job!

Here are three ideas for getting a better job next year.

1. Apply for the Fog Creek Software Management Training Program in New York. We have one opening right now. In addition to paying your salary, Fog Creek pays your tuition and reimburses all educational expenses for a Masters degree in technology management. Here’s what Sumana Harihareswara (’08) says:

“Before I came to Fog Creek, I couldn’t tell where my odd collection of aptitudes fit in. I’m extroverted and geeky, but I didn’t code and didn’t know any of That Business Stuff. My work experience showed that I’d dabbled in tech writing, customer service, QA, marketing, and I don’t know what-all. Then I visited New York City for the first time, and while I was away, that blogger Joel Spolsky posted about the new Fog Creek Software Management Training Program. I woke up in the middle of the night the day after I read about it, knowing I had to apply. I couldn’t believe that I got called back, then interviewed, then hired — and it all happened in just a few weeks!

“I’ve been here almost a year now. It can be tough, working and learning all day and going to class at night, but I get out of it what I put into it. The program’s like a mirror, showing me my strengths and my weaknesses both. No matter what I do here — learning FogBugz to do sales, learning SQL Server to do customer support, or even reconciling the credit card bill — I feel empowered in a way I’ve never felt at another workplace. Once I’m done with my Fog Creek training and my degree from Columbia, I’ll be a superlatively hireable package.”

2. Apply for one of the great jobs listed on the Jobs Board. Work on robots that perform minimally invasive surgery, get the BBC to work on mobile phones, make virtual worlds for The Electric Sheep Company, get teachers the resources they need at, or any number of things that are probably a lot more interesting than what you’re doing right now.

3. If you have a great job at a cool, high-Joel Test-scoring company, consider hiring some of the 568,000 job seekers looking for a new gig on the jobs board. I’ll make it easy for you: use the coupon code BETTERJOBS-0-070 and get 200 dollars off a job listing, good this year only [Update: this coupon is no longer valid]. If you know of companies that you think would be good fits for Joel on Software readers, please pass this coupon on to them. If you know of companies that are noisy, fluorescent, cubicle farms working 90 hour weeks, where the CTO refuses to use source code control because he’s afraid people will blame him for the horrible code he writes, please don’t tell them about this offer.

Half a million bugs!

Last night, at some point, we passed case number 500,000 in the Fog Creek in-house FogBugz database.

Yikes. OK, it’s nowhere near a half million bugs. All our faxes go in there, all our customer email goes in there, developers use it for to-do lists, job applications, phone messages, sysadmin notifications, automatic crash reports, etc. More significantly, incoming spam gets assigned a case number, even though it usually lands in a spam folder and gets deleted after seven days, so most of those cases are spam. We actually have 66,443 real cases and 489,022 historical events. We have replied to 33,692 customer emails using FogBugz, fixed 7,303 bugs, and implemented 909 features.

815 bugs could not be reproduced.

New Stuff!

If you’re using FogBugz and Microsoft Visual Studio 2005, you’ll want to check out the brand-spanking-new FogBugz for Visual Studio add-in.

It’s an easy way to access FogBugz from a tool window inside the Visual Studio IDE.

In the long run, I think, FogBugz for Visual Studio will be available as a premium feature available for a small extra charge, but for the time being, since it’s brand new, you can download it for free.

To make the FogBugz for Visual Studio add-in possible, we implemented a new FogBugz API, now in version 1.0. Because FogBugz has been shipping for a while without an API, we provide a couple of files you have to install on your FogBugz server to make the API work. As soon as FogBugz 6.0 comes out, the API will be built-in, and it will support a lot of additional functionality. This 1.0 version basically just gives you a way to get a list of open cases. If you’re interested in developing add-ins for FogBugz or other tools that use the FogBugz API, please email Fog Creek customer service and let them know what kind of features you’d like to see.

Eclipse users: check out EclipseBugz. EclipseBugz was written before the API came out, so it uses RSS to track bugs.


Alain de Botton, writing in The Architecture of Happiness (Pantheon Books, 2006) has a section on elegance that any software designer will find familiar.

He compares the Salginatobel Bridge, in Switzerland…


…to the Clifton Suspension Bridge, in England:

… in one of the most amazing books about architecture I’ve ever read:

“Both Robert Maillart’s Salginatobel and Isambard Brunel’s Clifton Suspension bridges are structures of strength; both attract our veneration for carrying us safely across a fatal drop—and yet Maillart’s bridge is the more beautiful of the pair for the exceptionally nimble, apparently effortless way in which it carries out its duty. With its ponderous masonry and heavy steel chains, Brunel’s construction has something to it of a stocky middle-aged man who hoists his trousers and loudly solicits the attention of others before making a jump between two points, whereas Maillart’s bridge resembles a lithe athlete who leaps without ceremony and bows demurely to his audience before leaving the stage. Both bridges accomplish daring feats, but Maillart’s possesses the added virtue of making its achievement look effortless—and because we sense it isn’t, we wonder at it and admire it all the more. The bridge is endowed with a subcategory of beauty we can refer to as elegance, a quality present whenever a work of architecture succeeds in carrying out an act of resistance—holding, spanning, sheltering—with grace and economy as well as strength; when it has the modesty not to draw attention to the difficulties it has surmounted.”

In that context, I’d like revisit my recent themes of choices and simplicity and add a third concept, elegance.

People, for the most part, are not playing with their software because they want to. They’re using the software as a tool to accomplish something else that they would like to do. Maybe they are using a chat program to try and seem witty, in hopes that the person they are chatting with will want to spend time with them, so that, ultimately, they have a better chance of getting laid, so that, ultimately, their selfish DNA will get to replicate itself. Maybe they are using a spreadsheet to try and figure out if they can afford a bigger apartment, so that, ultimately, dates will be more impressed when they come over, increasing their chance of getting laid, again, benefitting the DNA. Maybe they’re working on a PowerPoint for the boss so that they will get a promotion so that they’ll have more money which they can use to rent a larger apartment that would attract mates, thus increasing their chance of getting laid, (getting the idea yet?) so the selfish DNA can replicate. Maybe they are looking for a recipe for goat cheese ravioli on the Internet, etc., etc., … DNA.

Unless they’re software reviewers for a living, they don’t really care about the software itself, and the more they notice it, the more annoyed they’re going to be.

Choices, therefore, can be good or bad. They’re good when they support the task the user is trying to accomplish fairly directly. I want to be able to choose who to chat with (duh.) They’re bad when they represent an intrusion into the user’s actual DNA-replication goals. Every few days some crappy software I can’t even remember installing pops up noisy bulletins asking me if I want to upgrade something or other. I could not care LESS. I’m doing something. Leave me alone! I’m sure that the team at Sun Microsystems who just released this fabulous new version of the Java virtual machine have been thinking about the incremental release night and day for months and months, but the other 5,000,000,000 of us here on the planet really don’t give a flying monkey. You just cannot imagine how little I want to spend even three seconds of my life thinking about whether or not to install that new JVM. Somebody out there is already firing up Gmail to tell me that the JVM mustn’t just upgrade itself “because that might break something.” Yeah, if the entire collective wisdom of the Java development team doesn’t know if it’s going to break something, how am I supposed to know? Sheeesh.

If you’re using the term simplicity to mean “grace and economy” or “elegance,” that’s terrific. A great example of this is the difference between the way you search for music on Rhapsody and the way you search for music on iTunes. Rhapsody makes you decide if you want to search for albums, tracks, or artists. iTunes doesn’t give you any choice: it just searches all fields, which works just as well and is easier. Economy means power, in this case, and it’s a feature.

On the other hand, if you’re using simplicity to mean a lack of power, a lack of features, that’s fine, if you want to be in the paper clip business, good luck with that, but the chances that your product will solve my exact problems starts to shrink and your potential market share does, too.


Donald Norman concludes that simplicity is overrated: “But when it came time for the journalists to review the simple products they had gathered together, they complained that they lacked what they considered to be ‘critical’ features. So, what do people mean when they ask for simplicity? One-button operation, of course, but with all of their favorite features.”

A long time ago, I wrote: “A lot of software developers are seduced by the old ‘80/20’ rule. It seems to make a lot of sense: 80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies.

“Unfortunately, it’s never the same 20%. Everybody uses a different set of features. In the last 10 years I have probably heard of dozens of companies who, determined not to learn from each other, tried to release ‘lite’ word processors that only implement 20% of the features. This story is as old as the PC. Most of the time, what happens is that they give their program to a journalist to review, and the journalist reviews it by writing their review using the new word processor, and then the journalist tries to find the ‘word count’ feature which they need because most journalists have precise word count requirements, and it’s not there, because it’s in the ‘80% that nobody uses,’ and the journalist ends up writing a story that attempts to claim simultaneously that lite programs are good, bloat is bad, and I can’t use this damn thing ‘cause it won’t count my words.”

Making simple, 20% products is an excellent bootstrapping strategy because you can create them with limited resources and build an audience. It’s a Judo strategy, using your weakness as a strength, like the way the Blair Witch Project, filmed by kids with no money at all, used the only camera they could afford, a handheld video camera, but they invented a plot in which that was actually a virtue. So you sell “simple” as if it were this wonderful thing, when, coincidentally, it’s the only thing you have the resources to produce. Happy coincidence, that’s all, but it really is wonderful!

What works for bootstrapping, I believe, will not work as a good long term strategy, because there’s very little to prevent the next two-person startup from cloning your simple app, and because eventually you can’t fight human nature: “The people want the features,” says Norman. Just because handheld video was perfect for Blair Witch, doesn’t mean every Hollywood blockbuster will use it.

Devotees of simplicity will bring up 37signals and the Apple iPod as anecdotal proof that Simple Sells. I would argue that in both these cases, success is a result of a combination of things: building an audience, evangelism, clean and spare design, emotional appeal, aesthetics, fast response time, direct and instant user feedback, program models which correspond to the user model resulting in high usability, and putting the user in control, all of which are features of one sort, in the sense that they are benefits that customers like and pay for, but none of which can really be described as “simplicity.” For example, the iPod has the feature of being beautiful, which the Creative Zen Ultra Nomad Jukebox doesn’t have, so I’ll take an iPod, please. In the case of the iPod, the way beauty is provided happens to be through a clean and simple design, but it doesn’t have to be. The Hummer is aesthetically appealing precisely because it’s ugly and complicated.

I think it is a misattribution to say, for example, that the iPod is successful because it lacks features. If you start to believe that, you’ll believe, among other things, that you should take out features to increase your product’s success. With six years of experience running my own software company I can tell you that nothing we have ever done at Fog Creek has increased our revenue more than releasing a new version with more features. Nothing. The flow to our bottom line from new versions with new features is absolutely undeniable. It’s like gravity. When we tried Google ads, when we implemented various affiliate schemes, or when an article about FogBugz appears in the press, we could barely see the effect on the bottom line. When a new version comes out with new features, we see a sudden, undeniable, substantial, and permanent increase in revenue.

If you’re using the term “simplicity” to refer to a product in which the user model corresponds closely to the program model, so the product is easy to use, fine, more power to ya. If you’re using the term “simplicity” to refer to a product with a spare, clean visual appearance, so the term is nothing more than an aesthetic description much in the same way you might describe Ralph Lauren clothes as “Southampton WASP,” fine, more power to ya. Minimalist aesthetics are quite hip these days. But if you think simplicity means “not very many features” or “does one thing and does it well,” then I applaud your integrity but you can’t go that far with a product that deliberately leaves features out. Even the iPod has gratuitous Solitaire game. Even Ta-da List supports RSS.

Anyway, I gotta go … it’s time to go upgrade my cellphone to one that includes high speed internet access, email, a podcast catcher, and an MP3 player.

Lego Programming

Frequently, the mainstream media, reporting on computer programming tools, gets the story horribly wrong.

What happens is that some kind of vendor of programming technologies has come up with some product they are claiming makes programming easier. The journalists don’t really understand. What they hear is “programming is going to be easier.” Usually there’s some kind of Lego allusion.

Om Malik (November, 2006): “… these startups are building development environments that let the user cobble together software packages as easily as snapping together Lego bricks.”

He admits: “… the transition to this type of platform is going to be slow; I believe it could take about three years to realize its potential.”

Three years?

BusinessWeek ran a cover-story about object oriented programming way back in September, 1991, accompanied by a picture of a baby in diapers programming a computer. They also used the Lego metaphor: “Indeed, at the software startup they now head, Objective Technologies Inc., programming seems downright juvenile: Instead of mucking around in tangles of C code—writing arcane statements such as printf (“%s/n”, curr str)—they mainly connect boxes on the screens of their NeXT Computer Inc. workstations and fill in blanks. In minutes, they have industrial-strength programs that run right the first time and that can be modified without brain surgery. Says Bergerson, 27: ‘I showed my mother, and she said, “You’re still playing with Lego blocks, like when you were a kid!”’”

“Eventually, a whole new way of selling software may emerge. In a market of interchangeable, plug-and-play objects, you might shop for pieces separately and compile your own custom software.”

None of them believed Frederick P. Brooks, in 1987: “Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will be any—no inventions that will do for software productivity, reliability, and simplicity what electronics, transistors, and large-scale integration did for computer hardware…. I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation…. If this is true, building software will always be hard. There is inherently no silver bullet.”