2001/04/21

Spring in New York City

It was a beautiful day; I went out with Jared, Ami, and Hagit and took some pictures in Central Park. See them here.

Debugging Tip

About half of our customers are in the US, and half outside. On my primary laptop, I finally decided to permanently set my regional settings to France to smoke out the last of the internationalization (“i18n”) bugs in our applications. (For example, did you know that in France large numbers are written with spaces as the thousands separator? For example 1 000 000 is a million. And 3,14 is pi. And 4/1 is January fourth). Anyway, if you see email from me with dates in French, that’s why!

i18n.gif:

Even web-based applications should be written to respond to locale settings. FogBUGZ shows you dates according to the web browser’s settings, not the web server. If you set your computer’s regional settings to Denmark, Google appears in Danish.

Don’t Let Architecture Astronauts Scare You

When great thinkers think about problems, they start to see patterns. They look at the problem of people sending each other word-processor files, and then they look at the problem of people sending each other spreadsheets, and they realize that there’s a general pattern: sending files. That’s one level of abstraction already. Then they go up one more level: people send files, but web browsers also “send” requests for web pages. And when you think about it, calling a method on an object is like sending a message to an object! It’s the same thing again! Those are all sending operations, so our clever thinker invents a new, higher, broader abstraction called messaging, but now it’s getting really vague and nobody really knows what they’re talking about any more. Blah.

When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don’t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don’t actually mean anything at all. 

These are the people I call Architecture Astronauts. It’s very hard to get them to write code or design programs, because they won’t stop thinking about Architecture. They’re astronauts because they are above the oxygen level, I don’t know how they’re breathing. They tend to work for really big companies that can afford to have lots of unproductive people with really advanced degrees that don’t contribute to the bottom line.

A recent example illustrates this. Your typical architecture astronaut will take a fact like “Napster is a peer-to-peer service for downloading music” and ignore everything but the architecture, thinking it’s interesting because it’s peer to peer, completely missing the point that it’s interesting because you can type the name of a song and listen to it right away.

All they’ll talk about is peer-to-peer this, that, and the other thing. Suddenly you have peer-to-peer conferences, peer-to-peer venture capital funds, and even peer-to-peer backlash with the imbecile business journalists dripping with glee as they copy each other’s stories: “Peer To Peer: Dead!”

The Architecture Astronauts will say things like: “Can you imagine a program like Napster where you can download anything, not just songs?” Then they’ll build applications like Groove that they think are more general than Napster, but which seem to have neglected that wee little feature that lets you type the name of a song and then listen to it — the feature we wanted in the first place. Talk about missing the point. If Napster wasn’t peer-to-peer but it did let you type the name of a song and then listen to it, it would have been just as popular.

Another common thing Architecture Astronauts like to do is invent some new architecture and claim it solves something. Java, XML, Soap, XmlRpc, Hailstorm, .NET, Jini, oh lord I can’t keep up. And that’s just in the last 12 months!

I’m not saying there’s anything wrong with these architectures… by no means. They are quite good architectures. What bugs me is the stupendous amount of millennial hype that surrounds them. Remember the Microsoft Dot Net white paper

The next generation of the Windows desktop platform, Windows.NET supports productivity, creativity, management, entertainment and much more, and is designed to put users in control of their digital lives.

That was about 9 months ago. Last month, we got Microsoft Hailstorm. That white paper says:

People are not in control of the technology that surrounds them….HailStorm makes the technology in your life work together on your behalf and under your control.

Oh, good, so now the high tech halogen light in my apartment will stop blinking randomly.

Microsoft is not alone. Here’s a quote from a Sun Jini whitepaper:

These three facts (you are the new sys admin, computers are nowhere, the one computer is everywhere) should combine to improve the world of using computers as computers — by making the boundaries of computers disappear, by making the computer be everywhere, and by making the details of working with the computer as simple as putting a DVD into your home theater system.

And don’t even remind me of the fertilizer George Gilder spread about Java:

A fundamental break in the history of technology…

That’s one sure tip-off to the fact that you’re being assaulted by an Architecture Astronaut: the incredible amount of bombast; the heroic, utopian grandiloquence; the boastfulness; the complete lack of reality. And people buy it! The business press goes wild!

Why the hell are people so impressed by boring architectures that often amount to nothing more than a new format on the wire for RPC, or a new virtual machine? These things might be good architectures, they will certainly benefit the developers that use them, but they are not, I repeat, not, a good substitute for the messiah riding his white ass into Jerusalem, or world peace. No, Microsoft, computers are not suddenly going to start reading our minds and doing what we want automatically just because everyone in the world has to have a Passport account. No, Sun, we’re not going to be able to analyze our corporate sales data “as simply as putting a DVD into your home theatre system.”

Remember that the architecture people are solving problems that they think they can solve, not problems which are useful to solve. Soap + WSDL may be the Hot New Thing, but it doesn’t really let you do anything you couldn’t do before using other technologies — if you had a reason to. All that Distributed Services Nirvana the architecture astronauts are blathering about was promised to us in the past, if we used DCOM, or JavaBeans, or OSF DCE, or CORBA.

It’s nice that we can use XML now for the format on the wire. Whoopee. But that’s about as interesting to me as learning that my supermarket uses trucks to get things from the warehouse. Yawn. Mangos, that’s interesting. Tell me something new that I can do that I couldn’t do before, O Astronauts, or stay up there in space and don’t waste any more of my time.

2001/04/20

From the “Extreme Programming” Test Lab

A couple of weeks ago Michael and Babak were finishing off some work for a client. They spent a couple of days working together doing pair programming and blasted through a long list of minor features and bug fixes. To some extent, the “continual code review” made things go very quickly.

This week, we’re plowing through a large pile of last minute changes to CityDesk (an original Fog Creek product), and we’re not doing pair programming. I have to say that we’re moving even faster without pairing up, literally blasting through dozens of fixes and small features a day per person.

Old joke:

Q: To a Political Scientist, what is the singular of the word “data”?
A: “Anecdote”

In that spirit, I’ve gathered some data which shows that the benefits of pair programming are not enough to offset the loss in productivity. We’ve been making up for it by doing a lot of code review (a process which is made absolutely trivial using CVS/FogBUGZ integration – two clicks from the bug report notification to graphical diffs). Today I spent about 10 minutes total doing code reviews (found some problems, even) which is really cheap compared to pair programming.

2001/04/18

The Joel on Software discussion group is starting to show signs of life. Cool! At some point I have to figure out how to use the categories feature to sort out old postings.

Stupid IT Research

Forrester Research says that content management software is about to “explode.” “According to a recent report from the Yankee Group, sales of content management software will grow to $3 billion in 2004, up from $900 million in 2000.”

I hate those cheesy market research companies who come up with ridiculous numbers and extrapolations (suitable for business plans) that make no sense, which, frankly, they pulled out of their tokhes. They always have these lame bar charts where they only have data for this year, then they extrapolate out four years assuming a typical 736.13% rate of growth, a number they divined by rolling dice and tossing bones about haphazardly.

It’s cool, because you can make a business plan that shows that if you can get only 1% of the market for content management, you’ll be making $30m a year, which easily supports 250 employees. So you show the stupid veecees the report from Forrester (or Jupiter, or Gartner, or one of the less popular ones) and they give you enough money to hire 250 people, and two years later you’ve got $254 in revenue from selling tomatoes you grew in the company backyard and you have to fire everyone.

Conclusion: if your business plan includes projections from IT research firms, you better start planting tomatoes.

From the “Why We Don’t Want VC” Department

Philip Greenspun: “I was pushed out of ArsDigita by the venture capitalists and managers that I brought in.”

2001/04/17

Your typical architecture astronaut will take a fact like “Napster is a peer-to-peer service for downloading music” and ignore everything but the architecture, thinking it’s interesting because it’s peer to peer, completely missing the point that it’s interesting because you can type the name of a song and listen to it right away.

All they’ll talk about is peer-to-peer this, that, and the other thing. Suddenly you have peer-to-peer conferences, peer-to-peer venture capital funds, and even peer-to-peer backlash with the imbecile business journalists dripping with glee as they copy each other’s stories: “Peer To Peer: Dead!”

Read all about it in today’s story: Don’t Let Architecture Astronauts Scare You

2001/04/06

Mark Newman: “As you can see, I’m not a fan of CMM. I view it primarily as a means for high-priced consultants to hold seminars and sell books, not as a process to improve software.”

(CMM: “capability maturity model”.)

Capturing Email Addresses

We used to ask people to provide an email address to sign up for our on-the-web FogBUGZ demo. Just an email address, nothing else: many of the free software demos you find on the web require a complete name, address, where did you hear about us, birthday, mother’s driver’s license ID, etc.

I was curious as to how many people our email request was scaring away. So (sneaky Joel) we changed the demo signup so that 50% of the guinea pigs, er, potential customers had to provide an email address and 50% didn’t.

Result: about half of the people gave up when asked to type in an email address. We want people to try the demo, so we changed it to never ask for an email address.

Of course, people are concerned about privacy and spam. But this reminds me of a more interesting principle of the usability curve: reducing difficulty by even a small amount tends to double the number of people who succeed with a task.

2001/04/05

A couple of developers here at Fog Creek have spent the last day or so doing ‘extreme programming’ … actually pair programming, which is all anybody remembers about extreme programming…

Conclusion: it’s very effective when you have a long list of small bug fixes you want to sprint through, because you can reach incredible velocity. Typos and small bugs get caught right away.

But you can’t stop and concentrate, so it’s probably not so useful for longer programming tasks. Another caveat: personal synergy is crucial. It’s like being a cop: if you don’t like your partner, it’s one of the less pleasant rings of hell! (Luckily, rule #0 in Fog Creek hiring is no jerks.)