Support Grist
Support nonprofit, independent environmental journalism.
Donate to Grist.
Dispatches

James Grimmelmann, Microsoft


Tools: print | email | discuss | write to the editor | subscribe | RSS
Grimmelmann James Grimmelmann is a resident of Seattle, Wash., a software design engineer with the Microsoft Corporation, and the madman behind The Laboratorium.
Dispatch: 1 | 2 | 3 | 4 | 5
Friday, 03 Nov 2000
SEATTLE, Wash.
The results of the bug bash are in. Our lead developer has gone through and "triaged" the bugs we found yesterday. After culling out the duplicates and the ones that, on further reflection, aren't bugs at all, he's sorted them by their importance. Some of them we need to fix now, because they're blocking people from using whole features of the product. Others, we should fix soon: Most of the crashes and other nasty things that detract from the user experience have wound up in this category. And the remainder, we're going to fix later, as in either sometime next year or never. Welcome to software development, where the perfect is the enemy of the shippable. We're going to ship with bugs; this is just the nature of software, and most of the development process consists of a carefully applied pragmatism about which bugs to fix.

How did I come to believe this? In younger days, I made fun of Microsoft and laughed at the bug tales. And now here I am, apologizing for the bugs in our software and everyone else's. I guess the first reason is that any extended amount of time spent programming breeds a sharp cynicism about technology. I know what can go wrong with software: I've been there, made those mistakes myself, seen some incredibly smart and diligent people make them. It's a minor miracle when your code runs, a major miracle when it does what you expect. It's the marketers who talk about software revolutionizing the world; as a programmer, I tend to see it more as an issue of users taking the software, adapting to its quirks, working around the problems, using it in ways the designers never anticipated.

The best bug I fixed today took place when a DHTML behavior's response to a notification caused another behavior to reentrantly destroy the first while another notification was pending. The details aren't important, except in their sheer number: This was a problem caused by a proprietary Microsoft implementation of an industry-accepted response to the extensibility issues caused by the limitations of a standardized syntax for manipulating the strange structures required by HTML as it evolved during the early growth of the web. My daily routine consists of figuring out which strange restrictions we need to live within, then figuring out creative ways to live within them and still get something done.

It's a gigantic puzzle, and sometimes the pieces even fit together. Figuring out what's going on in the interactions of a handful of components can be breathtaking. It's beautiful in a Rube Goldberg kind of way, like abstract mathematics in drag. The really great programmers are the ones who can grasp the complicated virtual ecosystem of a program, who have an intuitive feel for the way it all hangs together and the effects of local changes on remote parts of the system, the ones for whom the program comes alive in the same messy and wonderful way we think of "real" living things.

And that's the real reason I'm here and willing to live with bugs. Computers aren't about to replace reality or supplant humanity, but neither are they purely tools for mundane goals. Used properly, technology has an influence on the way we lead our lives and think about the things we do.

Take this diary. I've had exchanges with half a dozen readers this week on issues ranging from SUV ownership among Microsoft employees to the Energy Star program, and I have an inbox full of other messages to respond to. And I've done all of this while working my normal job -- indeed, that's part of the point of this exercise. There's nothing fundamentally new in the picture -- job, public diary, conversations -- but the elements are being recombined in a new, and I think exciting, way.

A friend at work recorded herself playing the piano a few weeks ago and sent me a link to the MP3s. I listen to them while coding. Within a couple days of the first article on the mere possibility of such schemes, thousands of people had pledged to swap their Gore and Nader votes to help out the candidates in the states where their votes would do the most good. If you need the complete text of New York State's labor laws, they're just a few clicks away.

I don't think there's very much that computers, taken alone, make possible. But there's a lot that they make feasible, a lot of new possibilities opened up by reducing the obstacles between thought and action. Nothing's guaranteed, and there's a lot of work involved in appropriately exploring those possibilities. But still, having a few more options open can't hurt.

Dispatch: 1 | 2 | 3 | 4 | 5
Tools: print | email | discuss | write to the editor | subscribe | RSS
< Previous | Next >
Comments: There are no comments. Be the first to post!

You are not logged in. Thus, you cannot post a comment. If you have a Gristmill account, log in below. If you don't have a Gristmill account, well, by all means go make one! Meet you back here in five.

Username: Password:

Forgot your password? Enter your username and click:

The comments of Grist users reflect the opinions of those individuals only, and do not necessarily reflect the viewpoints of Grist, its staff, its board members, their psychotherapists, or their aestheticians. Got it?


Also in Grist

The Week's Most Popular

ADVERTISING POLICY


About Grist | Support Grist | Jobs Board | Archives | Grist by Email | RSS | Podcasts
Gristmill Blog | In the News | Ask Umbra® | Muckraker | Victual Reality | 'Tis the Season | The Grist List | The Bottom Line



Grist: Environmental News and Commentary
a beacon in the smog (tm) ©2007. Grist Magazine, Inc. All rights reserved. Gloom and doom with a sense of humor®.
Webmaster | Privacy Policy | Terms of Service | Trademarks