Archive for June 2007

Smart and Gets Things Done 05 Jun

I wrote a book!

The title is Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent.

It is, as promised, concise. Even though it's hardback, it's about the size of a paperback romance novel, with wider margins, and about 180 pages, including some blank ones.

To pad it out, Apress hired my favorite illustrator, Terry Colon, to illustrate it. He did a fantastic job (the cover illustration at right will give you a feel for his style). His goofy, frantic, manically hilarious illustrations are reason enough to buy the book.

Here's what you get:

  • Introduction
  • Chapter 1: "Hitting the High Notes"
  • Chapter 2: "Finding Great Developers"
  • Chapter 3: "A Field Guide to Developers"
  • Chapter 4: "Sorting Resumes"
  • Chapter 5: "The Phone Screen"
  • Chapter 6: "The Guerrilla Guide to Interviewing"
  • Chapter 7: "Fixing Suboptimal Teams"
  • Appendix: "The Joel Test"

As you know, I write first and foremost for the web, so most of this material originated as Joel on Software articles. As usual, I did a bunch of reorganizing, reformatting, and rewriting to make it into a book-quality thing that you can read from beginning to end, and, since it's such a short book, you should be able to do that during the commercials of a typical half-hour sitcom.

It's cheap, about $13 on Amazon right now, so get your copy now before they run out.

A game of inches 07 Jun

"Did someone leave the radio on in the bathroom?" I asked Jared. There was a faint sound of classical music.

"No. It's coming from outside. It started while you were away and happens every night."

We live in an apartment building in New York. There are neighbors on all sides. We're used to hearing TV shows from below, and the little kid in the apartment directly above us has a favorite game: throwing a bunch of marbles on the floor and then throwing himself around the room violently. I'm not sure how you keep score. As I write this, he's running rapidly from room to room crashing into things. I can't wait until he's old enough for paintball.

Anyway. This classical-music-late-at-night thing had never happened before.

Worse, it was some kind of sturm-und-drang romantic crap that was making me angry right when I wanted to fall asleep.

Eventually, the music stopped, and I was able to drift off to sleep. But the next night, when the music resumed at midnight, I was really worn out, and it was more self-important Wagner rubbish, with pompous crescendos that consistently woke me up every time I finally drifted off to sleep, and I had no choice but to go sit in the living room and look at pictures of lolcats until it stopped, which it finally did, around 1 am.

The next night I had had enough. When the music started at about midnight, I got dressed and started exploring the apartment building. I crept around the halls, listening at every door, trying to figure out where the music came from. I poked my head out windows and found an unlocked door leading to an airshaft where the music was amazingly loud. I climbed up and down the stairs, and listened closely from the window on each and every landing, until I was pretty convinced that the problem was from dear old Mrs. C's apartment, #2B, directly below us.

I didn't think Mrs. C, who is probably in her 60s, was even awake that late, let alone listening to music loudly, but I briefly entertained the possibility that the local classical music station was doing the Ring Cycle or something and she was staying up late to hear it.

Not bloody likely.

One thing I had noticed was that the music seemed to go on at midnight every night, and off at 1:00 am. Somehow, that made me think it was a clock radio, which probably had the alarm factory set to 12:00.

I couldn't bring myself to wake up an old lady downstairs on the mere suspicion that music was coming from her apartment. Frustrated, I went back to my apartment and caught up on xkcd. I was depressed and angry, because I hadn't solved the problem. I festered and scowled all the next day.

The next evening, I knocked on Mrs. C's door. The super had told me she was going away for the entire summer the next day so if the problem was coming from her apartment I better find out pronto.

"Sorry to bother you," I said. "I've noticed that every night around midnight there's loud classical music coming from the airshaft behind our apartments and it's keeping me awake."

"Oh no, it's not me!" she insisted, as I suspected she would. Of course not: she probably goes to sleep at a completely normal hour and certainly never plays loud music that bothers the neighbors!

I thought she was a little hard of hearing and probably never noticed the thing blaring away from her spare room in the middle of the night. Or maybe she was a good sleeper.

It took a few minutes, but I finally convinced her to check if there was any kind of clock radio in the room below my window.

Turns out there was. Right in an open window beneath my own bedroom window. When I saw that it was tuned to 96.3, WQXR, I knew I had found the culprit.

"Oh, that thing? I have no idea how to use that thing. I never use it," she said. "I'll disconnect it completely."

"Not necessary," I said, and turned off the alarm, set the volume to zero, and, in my late-onset OCD, set the clock to the exact time.

Mrs. C was terribly apologetic, but it really wasn't her fault. It took me—me!—quite a while to figure out how to operate the damn clock radio, and let me tell you, sonny boy, I know a thing or two about clock radios.  The UI was terrible. Your average little old lady didn't stand a chance.

Is it the clock radio's fault? Sort of. It was too hard to use. It had an alarm that continued to go off daily even if nobody touched it the day before, which is not the greatest idea. And there's no reason to reset the alarm time to midnight after a power outage. 7:00 am would be a completely civilized default.

Somehow, over the last few weeks, I've become hypercritical. I'm always looking for flaws in things, and when I find them, I become single-minded about fixing them. It's a particular frame of mind, actually, that software developers get into when they're in the final debugging phase of a new product.

Over the last few weeks, I've been writing all the documentation for the next big version of FogBugz. As I write things, I try them out, either to make sure they work the way I think they should, or to get screenshots. And every hour or so, bells go off. "Wait a minute! What just happened? That's not supposed to work like that!"

And since it's software, I can always fix it. HA HA! Just kidding! I can't make head or tail out of the code any more. I enter a bug and someone with a clue fixes it.

Dave Winer says, "To create a usable piece of software, you have to fight for every fix, every feature, every little accommodation that will get one more person up the curve. There are no shortcuts. Luck is involved, but you don't win by being lucky, it happens because you fought for every inch."

Commercial software—the kind you sell to other people—is a game of inches.

Every day you make a tiny bit of progress. You make one thing just a smidgen better. You make the alarm clock default to 7:00am instead of 12:00 midnight. A tiny improvement that will barely benefit anyone. One inch.

There are thousands and tens of thousands of these tiny things.

It takes a mindset of constant criticism to find them. You have to reshape your mind until you're finding fault with everything. Your significant others go nuts. Your family wants to kill you. When you're walking to work and you see a driver do something stupid, it takes all your willpower to resist going up to the driver and explaining to him why he nearly killed that poor child in the wheelchair.

And as you fix more and more of these little details, as you polish and shape and shine and craft the little corners of your product, something magical happens. The inches add up to feet, the feet add up to yards, and the yards add up to miles. And you ship a truly great product. The kind of product that feels great, that works intuitively, that blows people away. The kind of product where that one-in-a-million user doing that one-in-a-million unusual thing finds that not only does it work, but it's beautiful: even the janitor's closets of your software have marble floors and solid core oak doors and polished mahogany wainscoting.

And that's when you know it's great software.

Congratulations to the FogBugz 6.0 team, outlandishly good players of the game of inches, who shipped their first beta today, on track for final release at the end of the summer. This is the best product they've ever produced. It will blow you away.

Paying for recruiting trips? 08 Jun

bronek asks:

I'm from central Europe, looking for programming work in UK. After doing the phone interviews and more or less silly tests, it's time for some face-to-face interviews...

Now, I'm not quite comfortable of paying the expenses of flying and accommodation if they just want to chit-chat with one more candidate, and it's kind of hard to tell over the phone if this is the case.

What is your opinion about getting (or trying to) the recruiting agency (or the hiring company) to pay for the flight?

Well, bronek, if you're really committed to getting a job in the UK, you're probably applying for more than one job.

It's probably worth it to you to pay for the trip if you're going to go to a bunch of interviews. Maybe plan a trip for a week, stay with friends, fly the low cost airlines, and do five interviews in a week.

Then you could politely tell any interested employers who don't want to pay for the trip, "I'd be happy to interview in person. I'm planning a trip to the UK for all the interviews in two months. See you then."

Worst case scenario, you don't spend very much money on the trip, you almost certainly get a job, and you probably even have your choice of employers.

But there's a good chance the mere mention of other potential employers will make these guys realize you're actually in heavy demand. When they think that other employers are competing for your services, you'll seem like a more desirable candidate. This is the principle of social proof. They'll also start to worry that someone else will snatch you up. This is the principle of scarcity. "Opportunities seem more valuable to us when their availability is limited," says Cialdini.

The combination will drive up your market value, and probably even motivate the hiring company to pay for the flight.

Apple Safari for Windows: The world's slowest web browser 11 Jun

Apple is advertising Safari for Windows as “the world’s fastest and easiest-to-use web browser.” Fast, maybe, in page rendering speed, but ridiculously slow to launch... on my brand new, 2.33 GHz Core-2 Duo laptop, it takes an insane amount of time to launch: 57 seconds, during which you don't even get an hourglass, so you don't even know it's launching.

By comparison, Firefox takes about 3 seconds and Internet Explorer takes about 2.

UPDATE: OK, I'm wrong. As far as I can tell, Safari is slow the first (few?) times you run it, while it does something, I don't know what, but once that thing is done, it launches as fast as other browers. Sorry!

Apple is and always has been severely dishonest in all their advertising when it comes to performance. This is the company that spent years telling us that the PowerPC was faster than Intel, only, suddenly, to change their claims midsentence without an explanation when reality caught up with them, in a scene almost exactly like the scene in 1984: “Merely it became known, with extreme suddenness and everywhere at once, that Eastasia and not Eurasia was the enemy.”

This is the company that's about to release the iPhone on a slow, last-generation data network but is running TV ads that have edited out all downloads and waiting time that network entails.

These products may be cool, but I don't understand why Apple should be allowed to lie so blatently in their advertising about performance and get away with it. I'm sorry, but a web browser that takes a minute to launch is not going to win any converts on Windows.

PS I know; the Apple press release about how "fast" Safari is refers to "page rendering speed." Frankly, that is almost completely irrelevant given that the bottleneck in displaying pages is mostly download speed and network throughput. Another case where the big print giveth and the fine print taketh away, it adds up to one thing: a lie.

PPS Yes, I know it's a beta. Eventually, the Safari programmers will figure out the preloading tricks that IE and Firefox use to get quick startup time (at the cost of slow Windows startup; Raymond Chen explains it here). In the meantime, when Apple's marketing team goes around making untrue claims about performance, they make the company look like liars, not innovators.

PPPS Safari even managed to bring the inferior font rendering of the OS X platform to Windows, no easy trick.

PPPPS Safari for Windows means we don't have to buy as many Macs for compatibility testing.

PPPPPS 20 minutes later: The more I run Safari on Vista, the faster it launches. Am I hallucinating? Is there a cosmic force that means just when I complain about Safari taking 57 seconds to launch, as soon as that complaint is made public, it launches much more quickly? Am I going insane? Or is someone playing a clever prank on me? It's this kind of epistemological, reality-shifting shit that makes me not want to blog any more. We are at war with Eastasia. We were always at war with Eastasia. 2+2=5, and I love Steve Jobs.

Font smoothing, anti-aliasing, and sub-pixel rendering 12 Jun

Apple and Microsoft have always disagreed in how to display fonts on computer displays. Today, both companies are using sub-pixel rendering to coax sharper-looking fonts out of typical low resolution screens. Where they differ is in philosophy.

  • Apple generally believes that the goal of the algorithm should be to preserve the design of the typeface as much as possible, even at the cost of a little bit of blurriness.
  • Microsoft generally believes that the shape of each letter should be hammered into pixel boundaries to prevent blur and improve readability, even at the cost of not being true to the typeface.

Now that Safari for Windows is available, which goes to great trouble to use Apple's rendering algorithms, you can actually compare the philosophies side-by-side on the very same monitor and see what I mean. I think you'll notice the difference. Apple's fonts are indeed fuzzy, with blurry edges, but at small font sizes, there seems to be much more variation between different font families, because their rendering is truer to what the font would look like if it were printed at high resolution.

(Note: To see the following illustration correctly, you need to have an LCD monitor with pixels arranged in R,G,B order, like mine. Otherwise it's going to look different and wrong.)

The difference originates from Apple's legacy in desktop publishing and graphic design. The nice thing about the Apple algorithm is that you can lay out a page of text for print, and on screen, you get a nice approximation of the finished product. This is especially significant when you consider how dark a block of text looks. Microsoft's mechanism of hammering fonts into pixels means that they don't really mind using thinner lines to eliminate blurry edges, even though this makes the entire paragraph lighter than it would be in print.

The advantage of Microsoft's method is that it works better for on-screen reading. Microsoft pragmatically decided that the design of the typeface is not so holy, and that sharp on-screen text that's comfortable to read is more important than the typeface designer's idea of how light or dark an entire block of text should feel. Indeed Microsoft actually designed font faces for on-screen reading, like Georgia and Verdana, around the pixel boundaries; these are beautiful on screen but don't have much character in print.

Typically, Apple chose the stylish route, putting art above practicality, because Steve Jobs has taste, while Microsoft chose the comfortable route, the measurably pragmatic way of doing things that completely lacks in panache. To put it another way, if Apple was Target, Microsoft would be Wal-Mart.

Now, on to the question of what people prefer. Jeff Atwood's post from yesterday comparing the two font technologies side-by-side generated rather predictable heat: Apple users liked Apple's system, while Windows users liked Microsoft's system. This is not just standard fanboyism; it reflects the fact that when you ask people to choose a style or design that they prefer, unless they are trained, they will generally choose the one that looks most familiar. In most matters of taste, when you do preference surveys, you'll find that most people don't really know what to choose, and will opt for the one that seems most familiar. This goes for anything from silverware (people pick out the patterns that match the silverware they had growing up) to typefaces to graphic design: unless people are trained to know what to look for, they're going to pick the one that is most familiar.

Which is why Apple engineers probably feel like they're doing a huge service to the Windows community, bringing their "superior" font rendering technology to the heathens, and it explains why Windows users are generally going to think that Safari's font rendering is blurry and strange and they don't know why, they just don't like it. Actually they're thinking... "Whoa! That's different. I don't like different. Why don't I like these fonts? Oh, when I look closer, they look blurry. That must be why."

 

fogcreek.de 20 Jun

Fogcreek.de is now completely live, offering full-service sales and support of FogBugz in German from Munich. FogBugz itself works in English or German, based on the user's choice.

This is our first real international distributor, and a major milestone for Fog Creek Software. If you're using FogBugz in Germany, Austria, or Switzerland, give Branimir a call to introduce yourself.

Web designer wanted 21 Jun

I'm looking for a freelance web designer located here in New York to redo our sites: fogcreek.com, copilot.com, etc. We need someone with strong xhtml/css skills, a history of making great looking, modern web sites, and some print experience. Know anyone?

FogBugz World Tour 21 Jun

In another month or two, FogBugz 6.0 (now in beta) will be shipping. It's cool. It's very cool. It has a kiwi.

Because I was born without the part of the brain that allows normal people to learn, over time, that Travel is Hell, I thought it would be fun to travel to a few cities around the world and demo it myself, in front of a live audience.

The demo will probably take about 30 - 45 minutes, and I'll leave lots of time for questions -- not just questions about FogBugz, but anything about the software development process, really. It'll be completely free.

Anyway, I'm not sure where to do these. Silicon Valley? Yes. Boston, Seattle, London... almost certainly. But beyond that, I'm not sure. So I set up a little survey. If you're interested in attending, please fill out the survey and tell me where you're located. I'll collate the responses and figure out some good places to stop on the FogBugz World Tour of 2007.

Management books 29 Jun

I'm reading two very good management books right now.

The first is a classic: Up the Organization, by Robert Townsend. Apparently this book first came out in 1970, was widely admired, and slowly fell off everyone's radar, until Wiley republished it last month. Townsend ran Avis back in the day, and when you start to read a management book written in the 1960s, you expect to find secretaries, two-martini lunches, executive golf club memberships, etc. What you find instead is rather refreshing even by today's standards. On Mergers:

If you have a good company don't sell out to a conglomerate.... Conglomerates will promise anything for your people... but once in the fold your company goes through the homogenizer along with all their other acquisitions of the week, and all the zeal and most of the good people leave.

PS for Y Combinator kids: Don't be smug because you think that conglomerates went the way of the dodo. "Conglomerate" is just an old word for what you call "Yahoo, Microsoft, and Google." Oh and Condé-Nast.

Anyway. Townsend on management consultants:

[They] waste time, cost money, demoralize and distract your best people, and don't solve problems. They are people who borrow your watch to tell you what time it is and then walk off with it.

It sounds like a cliché, right? Townsend probably invented that cliché, boychik. And it's still true, and the jibe at Booz Allen later on in the book is still 100% on the money.

Even better is his disdain for marketing departments:

Marketing... is the name of the game. So it had better be handled by the boss and his line, not by staff hecklers. Once or twice a year for three or four days the boss takes ten, twenty or thirty of his key people... away to some secluded spot. On average they spend twelve hours a day asking unaskable questions, rethinking the business (What are we selling? To whom? At what prices? How do we get it to him? In what form?), four hours a day relaxing and exercising, and eight hours a day sleeping. It's hard work. But more good marketing changes will come out of such meetings than out of any year-round staff department of "experts" with "marketing" signs on the door.

Boy, I sure wish I had learned that one a few months ago. Two years ago, Seth Godin wrote essentially the same thing.

Anyway, that's just a few of the M's. The whole book is full of great advice like that, albeit focused on larger corporations.

If you're looking for something a little more, er, contemporary, Michael Lopp and his alter-ego Rands have just published Managing Humans: Biting and Humorous Tales of a Software Engineering Manager, which originated with some essays on his excellent blog Rands in Repose. (You can do that?)

Lopp has worked at Netscape, Borland, and Apple. He's the quintessential Silicon Valley middle manager. I hope he doesn't find that term insulting: he's probably the best Silicon Valley middle manager there is. He's brilliant, charismatic, and a poet-philosopher, and I could imagine no better boss.

You'll find that an awful lot of his book is about managing managers, big company politics, and the human side of getting technical teams to work together. And he has a style quite his own. You can get a taste of it from his classic Incrementalists & Completionists:

What was intriguing about my email repartee with the co-worker was that we weren't disagreeing about whether or not we should do something about the problem. We're arguing about how much we should do. The disagreement reminded me there are two distinct personalities when it comes to devising solutions to problems: Incrementalists and Completionists.

Incrementalists are realists. They have a pretty good idea of what is achievable given a problem to solve, a product to ship. They're intimately aware of how many resources are available, where the political landscape is at any given moment, and they know who knows what. They tend to know all the secrets and they like to be recognized for that fact.

Completionists are dreamers. They have a very good idea of how to solve a given problem and that answer is SOLVE IT RIGHT. Their mantra is, "If you're going to spend the time to solve a problem, solve it in a manner that you aren't going to be solving it AGAIN in three months." I used to think that architects were the only real Completionists in an organization, but I was wrong. Architects are the only RECOGNIZED Completionists in the company, but the personality is hiding all over the place.

Finally. One more book.

The same publicist who sent me Up the Organization also included a copy of Ben Casnocha's new book My Start-Up Life. Ben is a charismatic, energetic, brilliant 19 year-old who founded a successful software company, Comcate, at age 14. It's all very adorable. He's the Doogie Howser, MD of software startups, except for the fact that he probably has no idea who Doogie Howser is, given that the show went off the air when he was 4 years old, and, frankly, at age 4 he was probably too busy working on his second IPO to watch much television.

Ben is a seriously cool 19 year old. He's very smart. He's quite a good writer.

But.

But but but.

His book, unfortunately, tells you almost nothing about starting a company. It's really, really thin on stories of what the actual company did and how things worked. Worse, the book is padded with really, really embarrassing sidebars in which Ben gives you jejune Great Thoughts about business management.

Great entrepreneurs show up, take small risks (and sometimes, large risks), raise their hand when they're confused, and try to figure out what's going on and how a situation could be made better.

When you show up and raise your hand, you've already outperformed 90 percent of the crowd.

And:

The person on the receiving end of the mentoring relationship should work hard to insure it's not totally a one-way street.

Ben Ben Ben.

Yes, you're smart and good looking. Yes, you know more about starting a software company than practically any other 19 year old. And sure, I'll be happy to invest in your next startup, or hire you, or adopt you, whatever.

But. Mark my words. You're going to reach the ripe old age of 23, and you're going to look back on this book you wrote, and you're going to say, "how on earth did anyone let me publish such self-important crap," and you're practically going to die of embarrassment. Trust me: I'm in my 40s, and I'm still morbidly embarrassed by the pompous, arrogant, self-important crap I write on this site here, up to and including this very sentence.

Feel free to skip this book.

Current News >>

Historical Archive

1112 posts over 14 years. Everything I’ve ever published is right here.

1999           Dec
2000  MarAprMayJunJulAugSepOctNovDec
2001JanFebMarAprMayJunJulAugSepOctNovDec
2002JanFebMarAprMayJunJulAugSepOctNovDec
2003JanFebMarAprMayJunJulAugSepOctNovDec
2004JanFebMarAprMayJunJulAugSepOctNovDec
2005JanFebMarAprMayJunJulAugSepOctNovDec
2006JanFebMarAprMayJunJulAugSepOctNovDec
2007JanFebMarAprMayJunJulAugSepOctNovDec
2008JanFebMarAprMayJunJulAugSepOctNovDec
2009JanFebMarAprMayJunJulAugSepOctNovDec
2010JanFebMarAprMayJunJulAugSepOct Dec
2011JanFebMarAprMayJun  Sep   
2012JanFebMarApr  Jul     
2013  MarApr  Jul     
2014      Jul     

Now that you’ve read all that —

There’s a software company in New York City dedicated to doing things the right way and proving that it can be done profitably and successfully.

Fog Creek Software