Archive for December 2004

News 02 Dec

Interesting seminar. We had about 700 people in the audience. From my P.O.V., it was way too short -- I could have talked about this social interface design for hours. And the Electric Cloud stuff was interesting enough but admittedly unrelated to my own topic which made the whole seminar kind of out of whack.

News 03 Dec

See that little picture of the books on the left hand side? It used to be 42,241 bytes long. 34,885 of those bytes were in a useless "application block" that some photo editing program put there. Thanks to Dennis Forbes, who posted an explanation and a free utility to remove the unneeded bloat, it's now only 7354 bytes.

News 04 Dec

I just ordered a copy of The Great Eskimo Vocabulary Hoax, which, among other things, debunks the stories about how Eskimos have lots of words for snow.

Now for the bit that only Hebrew speakers are going to understand.

No matter how debunked Whorf is, I'm still convinced that Israelis are more likely to do things דווקא, simply because they have a word for it. And I have been forced to write entire essays simply because I cannot find any other way to convey to English speakers the difference between ראש גדול and ראש קטן. All I wanted to say was that methodologies encourage ראש קטן and I need everyone on my team to be ראש גדול.

To someone who has never learned Hebrew it takes me two or three books to explain that. MSF is a fraud–an attempt to consolidate all the ראש גדול things Microsoft programmers do in a set of rules which are supposed to work if you force ראש קטן bizonim to implement them. And it’s never going to work.

I have been trying to translate this simple concept to English for years and am just about ready to give up. The Joel on Software award for excellence in technical translation will go to the person who can best express the preceding two paragraphs in English!

News 06 Dec

Tamir Nitzan tries to explain.

First, the word he mentions (pronounced "davka") has a couple of different meanings, depending on context. But the slang meaning he refers to can loosely be translated to "in spite". For example - "why won't you let your little sister have the toy?" Answer: "davka" (embodying "I won't give her the toy BECAUSE she wants it so much").

As for the expressions (pronounced "rosh katan" - little head, vs. "rosh gadol" - big head). This expression comes from the IDF, and as most military language, doesn't quite translate into normal language. A "rosh katan" (literally "little head", and I actually think it is the original expression which derived most likely from "pinhead", the contrast later came in as a complement) is someone that does exactly what he's told. For instance, someone might be told to clean the barrel of their rifle. A "rosh katan" will strictly clean the barrel, perhaps leaving it useless because the trigger mechanism has sand in it, whereas a "rosh gadol" will clean the entire rifle and lubricate it so it's ready for use and doesn't rust. Another example: you tell a soldier to "go notify so-and-so that we will be ready for inspection at 1600". By 1700 you're curious, so you ask him "did you notify?". His answer might be "well I called his office and left a message". A "rosh gadol" would likely say: "I called his office but got his voice mail, so I left a message. I called back an hour later but still got voice mail, so I called his cell phone and left a message there too. I tried him again an hour after that and he assured me he will be here by 1600. I called him again 20 minutes ago and he said he was on his way but stuck in traffic" (a real "rosh gadol" would have notified his C.O. of all this without being asked of course).

Let me elaborate here... this is exactly right. Rosh katan is sometimes used in parts of the former British Commonwealth as labor action referred to as "work to rule." For some reason you can't go on strike, so you very carefully do your job exactly as prescribed, in a cussedly literal-minded way. "You told me to clean the toilet. You did not say to tell you when I was done. Therefore in accordance with your instructions I cleaned the toilet and stayed there in the toilet room waiting for further instructions." Someone who is working to rule can always demonstrate that no matter how many orders you give someone, they can probably make themselves 100% useless while still obeying every order you give them. This passive-aggressive behavior is quite frowned upon in the Israeli army where the slang rosh katan (small head) describes it. However, it is often one of the only ways to resist authority in a system which is likely to penalize direct disobedience with swift and harsh penalties.

For example, if I assign a bug to a developer I expect them to:

  1. reproduce the bug
  2. if it's not immediately reproducible, make a good faith effort to figure out why it's happening to me instead of just assuming that I'm doped up on anti-allergy medication and hallucinating it
  3. find the root cause
  4. do some searches to see if the same errors were made elsewhere in the code
  5. fix them all
  6. test the fix
  7. think about whether this bug might be causing serious implications for a customer who needs to be told about the fix
  8. etc.

That's the Rosh Gadol behavior. Possible Rosh Katan behaviors would be

  1. resolved-not-repro. You can always get away with this once without even trying to repro the bug, because later you can pretend you didn't understand the bug report.
  2. without even reproing the bug, make a change to the source code that seems like it would fix it and resolve it as fixed. If it wasn't, I'll catch it when I close the bug, right? And if it's really still broken, surely another tester will find it.

Rosh Gadol of course is quite the opposite: taking initiative and doing what is desired, not what is requested. Eric Sink alluded to it, in the difference between programmers and developers.

Back to Tamir.

Lastly there's MSF. The author's complaint about methodologies is that they essentially transform people into compliance monkeys. "our system isn't working" -- "but we signed all the phase exits!". Intuitively, there is SOME truth in that. Any methodology that aims to promote consistency essentially has to cater to a lowest common denominator. The concept of a "repeatable process" implies that while all people are not the same, they can all produce the same way, and should all be monitored similarly. For instance, in software development, we like to have people unit-test their code. However, a good, experienced developer is about 100 times less likely to write bugs that will be uncovered during unit tests than a beginner. It is therefore practically useless for the former to write these... but most methodologies would enforce that he has to, or else you don't pass some phase. At that point, he's spending say 30% of his time on something essentially useless, which demotivates him. Since he isn't motivated to develop aggressively, he'll start giving large estimates, then not doing much, and perform his 9-5 duties to the letter. Project in crisis? Well, I did my unit tests. The rough translation of his sentence is: "methodologies encourage rock stars to become compliance monkeys, and I need everyone on my team to be a rock star".

Exactly true. Daniel on the discussion group found a classic quote from Herman Wouk's Caine Mutiny:

"The Navy is a master plan designed by geniuses for execution by idiots. If you're not an idiot, but find yourself in the Navy, you can only operate well by pretending to be one. All the shortcuts and economies and common-sense changes that your native intelligence suggests to you are mistakes. Learn to quash them. Constantly ask yourself, 'How would I do this if I were a fool?' Throttle down your mind to a crawl. Then you'll never go wrong."

The trouble with MSF is that it starts with a group of successful developers, who are successful because they are resourceful, intelligent, experienced, well-meaning, and have plush private offices with doors that close, and then attempts to claim that if impose some of their "best practices" on your team of unskilled developers, you will achieve the same results. It's like Daniel Boulud selling a manual to McDonald's fry cooks. "Out of potatoes? Try Yams. Throw in a bit of rosemary. Toss and serve with a lime-basil aioli dipping sauce. Yum." It's just Best Practices, right?

News 08 Dec

Scott Rosenberg interviewed me for Salon. “The connection between software and Yiddish humor may not have been evident until Joel Spolsky began writing his Joel on Software essays and blog in 2000.”

News 10 Dec

I didn't think I'd be changing my startup page again for a long time.

Looks like I was wrong. Check out Google Suggest.

Lemme explain why this is so cool. First of all, it saves you keystrokes entering your search terms. That's the externally cool thing.

The internal cool thing is that it's one of the first prominent uses I've seen of the IFRAME XmlHttpRequest technique of going back to the web server for more data while the user interacts with a page. This has been possible for a long long time, but web developers have been mostly ignoring it. Rob Whelan explains how it's done.

The latency of web UIs, in which everything you do is a slow round-trip that requires completely refetching and rebuilding the web page, is one of the reason web UIs feel so clunky compared to native GUIs. Google is very publicly raising the bar on the quality of interfaces that people will expect from web pages.

News 13 Dec

Upcoming Joel on Software meals: dinner in Bellevue, WA on January 18th and lunch in Toronto January 21st. Please RSVP so I can get a count. These are always very informal geek-out sessions, lots of fun and a chance to meet other readers in your area.

News 15 Dec

All these people griping about how writing software isn't fun anymore probably didn't notice that here in the northern hemisphere, we're only about a week away from the shortest day of the year. Install some bright lights, drink some coffee, take a vacation in Tahiti, and tell me in April if you still think software development is depressing.

Google Suggest

I had to change my home page back to regular Google due to a fairly blatant usability bug in Google Suggest. Repro steps:

  1. Move your mouse so it's over the "Google Search" button
  2. Type "Joel"
  3. Click the mouse button immediately

The bug: often, the timing is such that the Google Suggest popup appears after I type Joel but before I click the mouse, so I think I'm clicking on the "Google Search" button intending to search for, say, Joel, not that I would search for myself, after all, I'm right here, but I'm really clicking on the popup listbox item for "Joel Turner", whoever that is. Any relation to Tina? Or Bachman?

I still think Google Suggest is important—I'm sure they'll fix this little problem. It's important not for searching, but because it's going to teach web users to expect highly responsive user interfaces:

  • If you have a website that shows a map, and the user clicks to zoom in, they're going to expect the map to zoom in, quickly—they will no longer tolerate the full-page-reload-and-scroll-to-the-top that Mapquest has conditioned them to accept.
  • If you show a list, and let people click on the column headers to sort by different columns, they're no longer going to tolerate the full-page-reload-and-scroll-to-the-top that certain unnamed bug tracking applications have conditioned them to accept.
  • If you have an email application, and you show people a list of email and give them a button to delete email as spam, they're going to expect virtually instantaneous response time, not the full-page-reload-and-scroll-to-the-top that most web email programs have conditioned them to accept.

That's what I meant by "raising the bar."

More Google

Attention, FogBugz competitors: a court has ruled that you are welcome to continue to advertise your products when people search for FogBugz on Google. I actually don't think there's anything wrong with this although it does show a certain lack of class, mm, don't you think? You don't see Wal*Mart advertising when you search for Tiffany.

News 16 Dec

“When you're setting a price, you're sending a signal. If your competitor's software ranges in price from about $100 to about $500, and you decide, heck, my product is about in the middle of the road, so I'll sell it for $300, well, what message do you think you're sending to your customers? You're telling them that you think your software is ‘eh.’ I have a better idea: charge $1350. Now your customers will think, ‘oh, man, that stuff has to be the cat's whiskers since they're charging mad coin for it!’”

Camels and Rubber Duckies

News 17 Dec

Mercury News: “Accounting rule makers handed down long-awaited final guidelines Thursday that will force companies to deduct the value of billions of dollars of employee stock options from reported profits starting in mid-2005.”

Here's some old discussion of what this means.

The old Silicon Valley hands are unhappy with the general concept of expensing stock options, and one reason they often give for this is the difficulty of figuring out the value of stock options. But anybody in the investment industry, and indeed, anyone with a rudimentary understanding of financial accounting knows that accounting for the value of an illiquid asset is always a problem yet something you always have to do anyway, and just because the value of stock options changes over time or because it is not possible to fix exactly does not mean it shouldn't be accounted for consistently.

News 23 Dec

Brett has written up instructions for upgrading PHP to the latest version and getting it working with FogBugz. These instructions should be useful to anyone who needs to upgrade PHP due to the recent security flaw.

Happy Fifth

Tomorrow is the fifth anniversary of Joel on Software!

Job Openings

Organize my life and run the office at Fog Creek Software: Executive Assistant / Office Manager (filled).

And don't forget, when you're home for the holidays and you see all your cousins, siblings, and aunts who have been away at college: we have great summer internships, so please encourage them to apply!

News 25 Dec

Auggie Wren's Christmas Story, by Paul Auster, was the inspiration for the movie Smoke.


News 27 Dec

Oxfam LogoIn response to the emergency in Asia, Fog Creek Software will donate 50% of all revenues earned this week (Dec 26 - Jan 1) to Oxfam. You can also make a direct contribution yourself.

Current News >>

Historical Archive

1114 posts over 16 years. Everything I’ve ever published is right here.

1999           Dec
2000  MarAprMayJunJulAugSepOctNovDec
2010JanFebMarAprMayJunJulAugSepOct Dec
2011JanFebMarAprMayJun  Sep   
2012JanFebMarApr  Jul     
2013  MarApr  Jul     
2014      Jul     
2016    May       

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