Tuesday, December 19, 2006


The airport security line wound its way like an amusement-park ride through Terminal C. The line was moving caterpillar-like, unhurried.

Some of the people in the line fidgeted and stared every direction, measuring the caterpillar's progress by the big clock on the wall. These were the passengers whose flights were leaving soon. You could read each passenger's face and in an instant know how desperate he or she was. The desperate ones plainly wished the big caterpillar would hurry up.

But most passengers, like the caterpillar they formed, shuffled along with that particular type of stoic boredom you only find in airport security lines and waiting rooms at the Department of Motor Vehicles. Most of them simply switched off, and did their best to leave their bodies behind while the minutes ticked by.

A little sign by the velvet-roped entrance told arriving passengers the wait was 45 minutes.

At this moment the line was in perfect working order, and nobody was more contented by this than T.S., the big security guard at the caterpillar's head. T.S. had worked in this airport for twenty-two years, doing exactly the same job, and one of the great satisfactions of his life was that each year things became more orderly. There were rules and laws and airport regulations governing every conceivable aspect of the operation of his security-line.

Whenever an inconceivable thing happened, which is to say that some sufficiently clever or desperate passenger found a hole in the rules and made things temporarily disorderly, they'd have a new rule for just that situation by the very next day. After more than twenty years of such additions, the regulations manual was thick and heavy with special cases.

T.S. had memorized every rule in the thick blue security-line manual. He knew all the rules because he had helped make most of them, and his job was to enforce them.

Years ago the rule book was just a tiny thing. It was the kind of rule book you'd write if you had grown up watching black-and-white movies in which people were mostly good, honest, and wholesome. The early rules were just common sense. But over the years, after people had tried to get on the plane naked, or had shown up drop-dead drunk and vomited on other parts of the caterpillar, or had tried to sneak their fireworks onto the plane for the big Fourth of July celebration, the rule book had become massive and daunting.

T.S. needed a special rule for each possible way to break the orderly workings of the line, because otherwise people would argue endlessly. You had to show them that it was written down, a real rule, before they'd listen.

On most days the big rule book was sitting on a black shelf upstairs by the coffee machine in the Terminal C security office. T.S. didn't need it. He was a walking, talking version of that book, and passengers knew this without needing to be told. T.S. looked like a rule book. Plus the rules were still mostly common sense, so the passengers all knew the important bits. You stood in line until it was your turn to show your pass and ID, and then the guard would let you go take your shoes off and put your things on the conveyor belt. There wasn't much to it, if you behaved yourself.

Most passengers breathed a deep sigh of relief once T.S. waved them through the gate. They might think it was due to the sudden relief from the boredom of being a caterpillar segment, but it was more often because they had been holding their breath while T.S. was examining their paperwork. He looked a little scary. After you got past T.S., you didn't have that warm feeling of being one of the good guys. You felt like you had narrowly escaped being in trouble, and that you were really hiding something, but you had escaped detection this time. Somehow T.S. managed to make almost everyone feel guilty.

T.S. surveyed the line about every seven seconds, the way you might glance habitually in your mirrors while driving. He could read the line in an instant, could spot potential troublemakers before they even knew they were planning to make trouble. T.S.'s job was to examine the boarding pass and identification for each passenger, but he also had broad responsibility for keeping the line moving and orderly.

Nobody got past T.S. without the right credentials. No exceptions.

A dark-haired woman arrived at the back of the line, breathless, towing a young boy who might have been her son. The woman was wearing a dark blue dress covered in nice white dots, with small ruffles on the shoulders. She had no luggage: just a black handbag in one hand and the boy in the other. There were hundreds of people in the line, and others walking around the terminal, but T.S. began watching the dark-haired woman from the moment she rounded the corner. He knew she was going to be disorderly. It was on her face, in her wide eyes. The only question remaining was how long it would take him to quiet her down and get her to stand in the line like everyone else.

The woman and boy were making their way up the shortcut lane, the one reserved for airline personnel. T.S. had seen this play out a thousand times, and not one time in a hundred did the passenger actually have the right paperwork for being in that lane. But troublemakers always wanted to use the shortcut lane. They always wanted to talk to him. They didn't understand how the system worked. Troublemakers always thought they were special cases.

The woman and the boy made their way up to T.S. and waited for him to finish with the current head of the caterpillar, a family of four apparently headed for a ski trip. T.S. ignored the two newcomers in that special way only a career administrator can muster, by suddenly taking a keen interest in his own work. He smiled kindly at the father of the family, looked again at their four passports and boarding passes.

The father of the family smiled back nervously and held his two children very still. His wife smiled as well, wide-eyed and alert. They knew they had been made lucky by the sudden appearance of the dark-haired woman. The big security guard with the initials T.S. on his name tag was going to take a little longer with the family, but it was only a gesture. The guard had to show everyone in line that people who abuse the shortcut lane have to come away with a clear net loss of time. This would necessitate a more leisurely inspection of the ski-trip family, who knew they had just been granted a temporary immunity from T.S.'s suspicion. T.S. would treat them almost politely, as long as they played along. This was one of the rules that wasn't written down, but everybody knew how it worked.

The other passengers in line began to watch closely, with interest. There was clearly going to be a showdown. That big security guard hadn't smiled once in the last 45 minutes, and he was only doing it now to show just how thoroughly he was ignoring the woman and child. The crowd wanted the dark-haired woman to lose the showdown and slink to the back of the line, because it was clear she didn't have one of those magical Shortcut Lane passes that nobody ever gets. She wasn't acting confident enough to have one of those. She looked nervous, almost sad, like she knew she'd never make it through.

T.S. addressed the father for the first time. "Ski trip?"

The big guard asked his question curtly. It was a ritual. He was permitted one question for every few passengers. This was another Unwritten Rule. Sometimes security guards had to ask questions, because you could find bad guys that way. It happened in the movies all the time: a first-time bad guy always spilled his guts if a cop asked him a stern question. First-time bad guys are always nervous in the movies. So even though T.S. was technically only supposed to check credentials and either wave people through or send them back to the ticket counter, he could get away with asking spot-check questions now and again, as long the conveyor belts behind him never starved for bits of caterpillar. And he was using up one of his free bad-guy questions on the family, to make a point.

The father knew the game and played it gladly. "Yep. Aspen. We can't wait." Everyone watching knew that he was really saying: "Please shoot that dark-haired woman instead of me. She's one of those Shortcut-Lane bad guys." Everyone knew T.S. would nod and smile and let the family through then, so that's just what he did.

T.S. was feeling momentarily magnanimous. "Have yourselves a good time, y'hear?" The family gratefully took their papers and squeezed through the gate and into the x-ray area beyond.

Now it was time to deal with this troublemaking woman. The caterpillar stopped shuffling as everyone strained to watch.

"Can I help you, miss?" There was no reason not to be polite. Not yet. T.S. prided himself in his fairness to troublemakers.

The dark-haired woman was clutching a handwritten note. She presented it to T.S. "Yes, sir. I have this note from the manager at the ticket counter. She said to show it to you, and said we should go through the shortcut line."

T.S. didn't bother taking the note. Handwritten notes never, ever constituted valid credentials. He didn't even look at it. He made a dismissive turn back to the new head of the line, and replied: "I'm sorry miss, but without a lane pass, you need to stand in the regular line. Like everyone else," he added pointedly, nodding at the good people forming the long caterpillar. They were all good people now. T.S. was feeling generous today. Restoring order always made him feel grand.

The boy with the woman started to look very worried. "Mom, are we going to make it? Are we going to get to see Dad?"

The woman pulled the boy closer to her, and she gave the second speech she had rehearsed on the way to the guard. "Sir, the ticket counter is all out of lane passes, but the agent at the counter and her boss said that you could call them if you had any questions. My son and I need to get on this plane, and it's leaving in less than ten minutes. They wrote this note for me. They said it's a temporary lane pass that I should give to you."

T.S. was unmoved, and turned his back to the woman and her son, taking the next passenger's boarding pass. He would keep talking to her, for a little while anyway, but it should be clear to her that the conversation was over and that she would be leaving very soon. The people in line were on his side. The ticket counter agents might try to help a late passenger, but they could only do so much. The woman was just unlucky today. They were out of lane passes, so she was going to have to wait in line. The showdown was over.

The dark-haired woman played her last card. "Please, Sir, listen to me. My husband has been in an accident. The Red Cross notified us this morning. My son and I need to see him, we need to see him. They say my husband is in critical condition, and that he might..." she broke off and bit her lip, looking down at her son.

She considered for a moment. T.S. nodded the next person through and turned back to her.

"We need to see him very soon, and the airline counter contacted the Red Cross and got me set up on this flight. It's leaving in 10 minutes. They gave me this note to give to you. Please take it. We have our boarding passes and identification. If you don't let me through, I may not get to see my husband... today," she added quickly, hugging the boy.

The passengers looked from T.S. to the woman. Her revelation was very serious news. Most of the waiting passengers were willing to accept her story at face value. You don't make up a story like that. Not when you're a woman with no luggage and a small boy, not when you've offered to call the ticket counter over. This woman was clearly an exception to the rules.

That was another unwritten rule: all rules can be bent. Everyone in line knew it. This was one of those times. The caterpillar leaned forward, towards the guard, urging him on. Without speaking, they let him know it was time for him to act. He had lost the showdown after all, and they all still had their planes to catch.

T.S. looked the dark-haired woman up and down. She was clearly in a great hurry and had not taken any great pains with her cosmetics today. But she was in fact quite beautiful, with bright eyes, long dark lashes, and long curls. T.S. guessed she might have been of Spanish or Italian descent. He had never been to Spain or Italy, and could not have told you which one was bigger or closer to the United States.

The dark-haired woman was neither Spanish nor Italian. She had been born in Bangalore, India, and she had come to the United States and, against all odds and expectations, had fallen in love with a Pakistani man, and they were married with one son, the boy at her side. Both she and her husband were computer programmers. They were brilliant, and they were fiercely devoted to each other.

T.S. could not have named three differences between India and Italy. They were as alike to him as Austria and Australia. They weren't in his airport and they weren't in his rule book. His mind raced, as evidenced by a slight slacking in his jaw.

T.S. knew he was in a bind, because he sensed that the woman might actually have gained some credibility with the people in line. Her story didn't matter to him in the least bit, and he didn't stop to consider whether he believed her. His concern was the caterpillar: his audience. T.S. viewed himself as more than a gatekeeper and a peacekeeper. He was the big show, the main event for the segmented bug creeping its way through the velvet ropes. They were a captive audience, but a real audience nonetheless. T.S. believed that the line looked up to him for protection, and feared him a little as well, on account of their all being potential rule-breakers.

So what should he do about this woman? He didn't have any way to call the ticket counter, and there was no protocol for it in any case. Calling the ticket counter would hold up the line. The overriding rule was that each segment of the caterpillar needed to conduct its business in a few seconds or be turned away. His audience ought to know that. It's another Unwritten Rule. But they suddenly seemed sympathetic to this lane-hopper woman with her scribbled note, which was probably a forgery. It all should have gone smoothly, but the woman with the dark hair and dark dress was unexpectedly articulate, and she had somehow swayed the onlookers in just a few short breaths.

He opted for faux sympathy. "Ma'am, I do sympathize with your situation, but I'm not in a position to call the ticket counter." He took the next passenger's boarding pass, to show that he didn't sympathize so much that he'd stop the line for her, and continued: "Now, you have two options."

Giving them Options was generous. It also let T.S. show off his profound knowledge of the Rules. When disorderly passengers were given Options, they usually understood that he was giving them a way to back down without losing too much face. It was OK for them to be ignorant of the rules; only a professional like T.S. could be expected to know them all. Presenting Options permitted a troublemaker to thank T.S. for the information - loudly, for the benefit of the caterpillar crowd, so they'd know no face had been lost. Then the troublemaker could pretend to go off and take care of things, before slinking to the back of the line. It was win-win.

"Your first option is to bring me back a genuine Lane Pass. I'm afraid I can't accept any handwritten notes. One of the other airlines' ticket agents might have one that your agent can borrow." He was warming up to the explanation. His generosity would win the crowd back, the woman would leave with her dignity intact, and he would be King for the next 45 minutes. If only there were some way to video his performance for the benefit of people not yet in line.

"Your second option is to stand in this line. If nobody holds us up," he paused a moment, giving his implication time to sink into the caterpillar, "the line is moving along pretty quick, and I expect you've got a good chance of making your flight and seeing your..." He struggled, having forgotten the details of her story. "Seeing your friend."

The caterpillar recoiled in horror, and T.S. knew he'd made a terrible mistake. He remembered and quickly added: "...your husband, I mean." But the damage was done. All semblance of sympathy was lost. He had alienated his audience utterly. It was a good thing he wasn't on video; this would all be forgotten in 45 more minutes.

The woman looked desperately at the people in line. "Is anyone here a programmer?" she asked. Time was short.

A heavy woman standing in the second fold of the caterpillar answered the implied question: "Have you thought about maybe using the debugger? Sometimes they have a back port you can connect to. He might have a bypass flag."

The dark-haired woman considered for a moment, then turned to T.S., who had delivered his Options speech and was now ignoring her. She pulled out a long metal rod with some red and green LEDs built into it. It had a thick cable attached, leading back into her handbag. "Sir, is there any chance you might be able to bend over for a second and, um, let me put this debugger in your... back, ah, port?"

T.S. had an idea what she meant, and his face broadened into a wide, wolfish grin. "Lady, you try a stunt like that, I might actually get to use this here nightstick for the first time in seven years." He patted the black baton at his hip.

A bronze-colored man with a huge dark mustache near the front of the second bend chimed in: "I don't think you can attach the debugger to these systems in production. They've talked about it, but there are some performance and stability issues."

The dark-haired woman put her rod away. She was now exhausted and on the verge of tears. T.S. continued to wave people through, and a teenager who had just rounded the last bend suggested: "Have you thought about just rebooting? You could change his bypass logic and recompile."

The woman behind the teenager, a portly woman with short spiky blonde hair, immediately shrieked: "How about I reboot YOU, you rotten skunk, and see if YOU come back up? I'm almost through this line and I'm not about to have to come all the way through that parking lot again, go through that ticket line again, and stand in this damn line again! No rebooting, and that's final!" The teenager hung his head, abashed.

The bronze man touched his mustache and offered tentatively: "He's written in Java. Have you thought about using reflection? You might be able to find a way through that way."

The dark-haired woman nodded and sighed. "Thanks. I'm Anushri, by the way. I really appreciate your patience." She said this to him and the others in line.

The bronze-colored man replied: "I'm Delmore. Good luck to you. We'll wait." The rest of the caterpillar nodded their agreement. This woman, Anushri, she had to get on that flight. It really was life or death. It wasn't a laughing matter. There had to be a way to make an exception for her.

Her son was now very worried and looked like he would cry. "Mom, are we going to make the flight?"

Anushri stooped down and hugged her son, and said to him: "We are going to try, Bibi. I'm sure your father will be so happy to see us! But I must hurry and convince this guard to let us through, or we will miss this flight and we will have to find another."

She stood abruptly and faced T.S., who was shuffling his lost audience through the gate as quickly as he felt he could manage safely. Her voice took on a tone of command. "What are your methods?"

T.S. snapped to attention and turned to her with eyes unfocused. He recited mechanically: "checkCredentials, denyAccess, getVersionString, grantAccess, setSecurityLineState, travelHome, travelWork."

A young teen in a white t-shirt near the back of the line shouted: "man, that's the lamest crap-ass API I ever heard! Who the hell designed this loser?"

Another teenager yelled: "I think he forgot reeeeadNuuuuudieMaaaag, hahahaha!" The crowd tittered. Anushri ignored them and remained intently focused on T.S.

As she considered her next query, one of the guards beyond the gate, in the x-raying area, noticed the commotion and walked over. "Hey Type, you doin' OK? Everything in order over here?"

T.S.'s eyes refocused. "Yup. She ain't gettin' through. She can try her fancy reflection tricks, but rules are rules, and she doesn't have the bypass." T.S. turned back to examining boarding passes and waving people through. The second guard nodded knowingly and returned to the x-ray machines.

Anushri spoke suddenly, with the same metallic command note in her voice as before: "Arguments to checkCredentials!"

This time T.S. was unfazed, and continued to check identification as the words barked mechanically from him: "PassengerProxy, CredentialFactory."

The crowd was surprised. The blonde woman muttered: "Credential factory? How the hell does anyone get through this line? Why doesn't the API just take a Passenger?" There were murmurs of agreement as everyone waited to see what Anushri would try next.

Anushri thought for a moment. Chasing the chain of wrapper objects would take her too long. The flight gates would close in maybe five minutes, maybe less. She thought of her husband. He was such a great programmer, and so conscientious with his testing... wait! That was it!

Her voice, suddenly like gears grinding, commanded: "What is your Unit Test API?" If he had a unit test, then there was probably a way to substitute special bypass logic.

T.S. smiled this time: "Ain't got one -- not on a production box, anyway." His big smile was meant to be disarming; he was still trying to woo the crowd. But looking at him was now positively chilling. The next person through the gate snatched back his boarding pass as if it were about to go into a paper shredder.

Anushri was crushed. She held her son tight to her. She'd been brave, but the tears finally came. She wept for her husband in the E.R., for her son who might never see his father alive again. "You bastard!" She railed against T.S., hopeless and defeated. "Why couldn't they have written you in JavaScript!"

Delmore, who was nearing the front of the line, took pity at last. He turned to the crowd and said to them: "Folks, this woman has to get on her plane. She has to, and you all know it, and it's almost too late. Mr. System here isn't going to let her through, and we've all seen firsthand how pathetically inflexible his interface is."

He paused and looked them all in the eye. The crowd was defiant by now, and they returned his gaze. "There's only one way through this jerk, and it's through this line. And that means we can't be in it."

Delmore stepped backwards, over the velvet rope. Two tall crew-cut men next to him did the same. Soon the whole caterpillar was dismantling itself as the crowd clambered away, clearing a path.

T.S. waved the last caterpillar-head through, and the line was now gone, his audience all staring at him expectantly. The big guard couldn't think of much to say, so he called out: "Next!"

Nobody moved.

Delmore beckoned to Anushri. She and her boy walked up to T.S., who smiled triumphantly. He had won. Nobody had broken any rules. The dark-haired beauty and her son had their boarding passes and IDs; all was in order. He waved them through. "Next!"

Anushri and the boy raced to the x-ray machine. It looked as if they were going to make their flight after all. The caterpillar re-formed as people silently found their places again.

Forty-five minutes later, not a soul in the terminal remembered the events of the previous hour, save for the guard T.S., and he was already forgetting it all rapidly. After all, no rules had been broken. He had performed his duties to the letter. The line was orderly, and the terminal was secure.

There was no need for loopholes, no need for exceptions. The system was working precisely as it was designed to work. The caterpillar flowed lazily, like a river. T.S.'s mind settled into his work.

Some time later, T.S. noticed a young girl standing at the head of the shortcut lane. He'd seen her head bobbing around at the end of the security line a while ago. That was one of the sure-fire signs of a troublemaker: they always started by bobbing around, looking to see if there was some way through other than the Line.

The girl began shyly: "Sir, they're all out of Lane Passes, but my plane is leaving in 15 minutes..."

Sunday, December 17, 2006

I take it all back! Send me your money!

Author's Note, written (shortly) after this entry — I'll spare you the suspense: today's post is crap! It's partly just a "hello, I'm still alive" ping, and partly an effort to close out some of the topics I opened recently, so I can move on to new things. And it does poorly at both. But I've been insanely busy at work for the past 2 months, and I wanted to get one more post in before the end of the year, so there's been no good time for it. We just recovered from a 3-day power outage in Kirkland after a nasty windstorm, so before diving back into work, I figured I'd throw these thoughts out, jumbled as they are. There's nothing new here, though.

After reading the first couple of comments, I've decided that my next few blogs will almost certainly be about Emacs hacking, since I've done a ton of that on the side lately. It's fun to talk about, and yields lots of prettily-colored code. So after the first of the year, look for some Emacs stuff from me.

Rumor has it that I've been eaten by Godzilla. There's a fat-joke in there somewhere, my gut tells me. Ahem. There's also apparently a rumor that I was abducted by the Agile Mafia, as if they were somehow competent enough to get past their standing morning meetings and do something about me. And there's evidently speculation that Google got mad at me for exposing how cool they were, and they locked me in a room filled with doughnuts and are forcing me to eat them all.

That last one is -almost- true, except the part about the lock on the door. They know all they need is the doughnuts.

Anyway, I figure I'd better write something before Godzilla really does eat me. Lord knows all this Google food is turning me into a target even Gojira-sama might notice.

I don't know what I'll end up writing about today, but let's start with my blog anniversary, shall we?

One-Year Blog-O'-Versary

Almost exactly a year ago (give or take a couple days), my buddy and fellow Googler Sean O'Connor was walking over to invite me to play foosball on our crappy old table, as we often did, when he mentioned in passing: "hey man, I read your blog".

"Sorry, which blog is that?" I hadn't blogged anything to my internal Google blog in a while, but I assumed that's what he meant.

"The one about Emacs".

That was just weird. I hadn't written anything about Emacs since back at the 'zon. What was weirder was that he was the third person that week to mention a blog entry of mine, which had never happened in my six-month tenure at Google, and each person had mentioned a different old Amazon entry.

A little investigation turned up that there was this spiffy new-ish user-posted news site called Reddit, a PG-startup site no less, and a bunch of my old Amazon internal blogs had been showing up there that week. Which was odd, because I had put them online fully six months earlier and then forgotten all about them. Why were they popping up now, all at once?

For lack of a better term, I'll call this phenomenon Essay Molasses. If you know what it's really called, please enlighten me. I wrote about it in my You Should Write Blogs essay back at Amazon, describing an essay my good friend Jacob Gabrielson had written (still Amazon proprietary info, alas, though it wouldn't hurt them to publish it now.) Almost nobody read it initially, to my considerable dismay, but after six or eight months its key ideas had mysteriously spread to virtually everyone with decision-making power in the company.

Essay Molasses is a time-delay on a meme that would otherwise spread rapidly, but because the idea is encoded in an essay from a relatively unknown author, most people aren't going to read it until it seems everyone else has read it. Like anything else, the growth rate is effectively exponential, so by the time you hear about it, it seems to have appeared overnight. But its initial readership is measured in days (or weeks) per person, rather than persons per day. By the time you hear about it, it may have been around for quite some time.

Based on my two data points — Jacob's essay and my Amazon blogs — I could conjecture that the time delay is about six to eight months. But I'm sure it's a function of context, and content. How long was it before Hardy noticed Ramanujan, or Einstein paid attention to Bose? (Not that anything I or Jacob have written is nearly so original nor valuable, of course, but I figured I'd pick some examples of Essay Molasses that you've actually heard about.)

Although I don't have anything resembling conclusive evidence, I think Essay Molasses is closely tied to the survival of the idea. It's a gestation period, and if you take away the essay that wraps the idea, the embryo won't survive. People accuse me of being long-winded, but it's not often that breaking short wind, amusing as it can be, has any real long-term effect.

I could use a good marketing name for this longer-is-better phenomenon too. The synopsis is that I think taking the time to write about something thoroughly gives it a greater (if slower) impact. Look at Gladwell's "The Tipping Point," or Surowiecki's "The Wisdom of Crowds." Either of their theses could have been succinctly expressed in a simple essay or paper, but would they have had the same global impact? I think not.

With respect to blogging and essays, researching your idea a bit is helpful, sure, but even just thinking about it carefully can often provide that nourishing yolk that gets your idea past the chicken-and-egg adoption phase and into the mainstream, where people can whine about how much they dislike you on Reddit. Ah, sweet, sweet success.

And taking too long to research it can effectively kill it. I've been blocked many times by the desire to turn an idea into a more formal thesis, when all I really needed to effect change was to get the idea out there. People are smart, and they'll figure out the remaining details (and omissions or errors on your part) quickly enough once you've got your basic idea across. So call it laziness, call it long-windedness, call it sloppy pseudo-journalism, but I'm writing the way I do because I suspect it yields the best ratio of effort to impact. Feel free to be your own judge!

So, after that six-month pregnant pause last year, my Amazon blogs burst out last December like a sudden, fierce, smelly wind, blowing everyone's hair back and causing mere candles to flame like war-torches. And I've emitted occasional new outbursts ever since.

The problem is that once you've said one or two things that are tolerably credible, everything else you write gets immediate attention, with no molasses anywhere in sight, and if you say something stupid it will be all over the place in no time. So it can be a little scary writing anything at all. It's no wonder people are so slow to publish research papers; they have to cover their arses tenfold, and hem and haw with the approriate disclamatory rituals to minimize the risk of being found wrong on some point, to their supposed perpetual embarrassment.

Of course Ramanujan was wrong about a lot of his theorems, and it doesn't mar his genius in the slightest. But most people would rather be right about something trivial, or simply not be heard at all, than be wrong occasionally in the quest to get their ideas out to others.

OK, I've said way too much on Essay Molasses. Presumably the lessons here are: (1) say what's on your mind, and don't worry overly much about being right or wrong or you'll delay the flow of ideas; (2) don't expect anyone to read your work until sufficient Essay Molasses has flowed slowly under the bridge, and (3) take some time to tell the whole tale. Even if people don't care for the destination, they might possibly enjoy the journey.

Agile Postscript

I've been thinking of writing some sort of Grand Finale to what would then become my Agile Trilogy, but none of my ruminations have really jelled into any, ah... any jelly worth... er, ruminating. *Cough* So rather than trying to make them pretty, I'll just dump my ideas on you in the buff. They're flitting around in my head like, oh, a bit like healing fairies from any Zelda game, if you really must know where I'd rather be right now, and I'm going to snatch them in mid-flight and put them in little jars for you to gawk at.

You can really tell when the wine gets ahead of the writing. I'm telling you.

First, I was going to write an earnest little memo from Karl Marx, written to Josef Stalin and Mao Tse Tung, along these lines:

Memo: Communist Imposition
To: Josef Stalin, Mao Zedong
From: Karl Marx

Dear esteemed General Secretary Stalin and PRC Chairman Mao,

I have lately been surfing the net and have heard alarming rumors to
the effect that certain regimes have been imposing their Communist
processes on the proletariat. I assure you gentlemen that this
behavior is one hundred percent at odds with the core principles of my
Communist Manifesto.

To be sure, introducing Communism does sometimes requires a bit of
counterintuitive bloodshed in overthrowing the bourgeoisie. However,
after the revolution, self-determination should be the rule: citizens
should stop and reflect at regular intervals on how to become more
effective, and adjust their behavior accordingly. These rumors of
enforced adoption of personality cults, violent suppression of
non-Agi, er, I mean non-Communist Party ideas, and the blatant
exploitation of the working class — these are all distortions of
the ideas I set forth in my Manifesto.

Well I say: tsk, tsk. All an educated man can hope for is that
continued patient education will eventually help people understand
what Communism is really about. And I prefer to explain rather than
to kill dissenters.

Yours always,

Karl Marx

Wouldn't that have been cute? Nah, you're right. Stupid. Plus, I kinda have a soft spot for Fowler on account of his Refactoring book (you know, the one none of you IntelliJ users actually read), so I'd have reservations about poking fun at him in public, even if he'd said something really dumb.

Next, I was thinking of responding individually to each of the 10 trillion comments I got on my last 2 blog entries, like so:

Commenter: Entertaining rant, but you just don't get it! Agile works for me, so it Must Be True.

Me: I take it all back! Give me your money! Oh, God, what have I done? Is it too late for me to get away with becoming a Feng Shui consultant? I had no idea how much money you can make by exploiting the credulous. Seriously. Had I only known... ohhhh, the pain... But given that I've pretty effectively excluded Agile Consulting from my agenda, how far afield must I reach before my balls are safe?

Commenter: Great post! It's the best!! If you've got a moment, please drop by http://www.i-beat-captcha.com and find out all about my spam thingy. Made it myself!!

Me: Mmmmmm.... Spaaaaammmmmm....

But I'm too lazy to respond to all of them personally. So, you know, just send all your disposable income to an Agile Consultant near you. Any one of them will do just fine. They all say the same thing: "You don't quiiiiiite get it yet. Cha-ching!"

NEXT, I was going to reflect on how I don't like ceremonies. Yeah. Seems unrelated, I know. But Agile, being a church and all, is big into ceremony and ritual. You'd think ceremony would kinda get in the way of actually getting real work done, but they'll tell you otherwise. So they get this aging bald guy to cut a big ribbon in front of the new mall... damn, I'm sorry. My bad, I've got the wrong ritual. They get an aging agile consultant to steep your team in all the latest stand-up rituals, including the all-important Passing the Hat ritual.

I'm not big into ceremony. I've known this for many, many years, since I was a wee youngun on my way to First Communion, and my intense dislike was deeply reinforced during my long tour in the heavily ceremony-laden U.S. Navy. I don't like dressing up. I don't even particularly care for the Two Big Ones: weddings and funerals. I can deeply appreciate receptions and wakes, since they're much less rehearsed, and peoples' true feelings tend to display. But ceremonies, where we all dress up and hold hands and mouth the expected mouthings, they're just not for me.

Maybe they're for you. If so, we differ, and I can respect that. Most people like their ceremonies; they think they're one of the things that separates from animals. Not true, of course; I've seen hippos and crocodiles performing the most amazing and heart-rending death-rituals on Discovery Channel. But ceremonies make people feel like, you know, life's all important and meaningful, and that big green mall-ribbon somehow imparts depth to an otherwise shallow and trivial historical event.

Not for me. And I see a clear connection between Agile, with its stand-up meetings and its status reports and its hokey project management artifacts, and the desperate need for ceremony. To me, ceremony is necessarily phony. Real ceremonies are unrehearsed, impromptu gatherings in which the participants stand momentarily in awe of the amazing events in which they are (almost always unexpectedly) partaking. Such occurrences happen once and only once per event. Spare me the Mall Grand Opening Guy.

FINALLY, in my third big Agile Installment, I was planning to demonstrate to all interested parties that Agile is simply about recycling tired ideas, nothing more. The Agile folks are entirely concerned with being able to predictably replicate shit that other people have already delivered: it's just the Church of Me-Too.

This last point seems pretty obvious, if you stop to think at all about it for a moment. Do we have Agile Modern Art, in which teams gather to predict how many days it will take to produce the next modern masterpiece? Do we have Agile Great American Novelists getting together in little self-help meetings to talk about how Operations Research can help them write the next Da Vinci Code? (You can just smell the jealousy on them, too. How did such a crap novel make it so big? A hundred thousand prospective Agile Authors have been asking themselves that since it farted itself into the public consciousness. Oh you can bet your sweet b-hind that I'm jealous. At least I admit it!)

The answer to all these rhetorical questions, is, of course: "eight?" (If you're a Simpsons fan, anyway. "Do I know what a rhetorical question is?" --Homer, in quite possibly the Best Line Ever.)

You can't predict the delivery or quality of great art, unless maybe you consider Thomas Kinkade to be Great Art. You can't predict the next Mark Twain or the next Douglas Hofstadter, and no amount of stand-up-meetingism is going to produce one for you. Index cards surely will not. But prediction is what half the Agile folks claim to stand for. Ah, prediction. How we look to our psychics, our soothsayers, our bookies. Now, yesterday, tomorrow, forever. We all yearn for prediction. But when you fall for that crap, you've fallen, like a star from the sky.

I predict that I won't last another glass of wine at this rate, so perhaps I should begin meandering towards a wrap-up.

It seems pretty clear to me, on reflection, that Agile is really all about being able to predict and manage the delivery of stuff that others have delivered. The same old tired websites, the same old inventory-management systems, the same old database-driven doohickeys that the consultants in question have seen a hundred times before.

That's fine and dandy. Wonderful, in fact. As long as someone else does it. You? Fine. Go for it. But I'm going to close this blog with a little belief of mine, one that you're most welcome and encouraged to disagree with, although it won't dissuade me in the least. Let's get to it, shall we?

The Silver Keyboard

In his Mythical Man-Month essay, Fred Brooks Jr. argues that our attitude towards software project management derives from our folklore, in which people cried out for a silver bullet to slay werewolves. But so far there's been no silver bullet: no single, magical, overnight 10x productivity gain.

So when you meet a werewolf: some project or task you're saddled with that threatens your livelihood, what can you do? Lacking a silver bullet, all you have is your own two hands. You grab your silver keyboard and start bashing away. That is to say, you roll up your sleeves and you do the work.

If your boss is a jerk, fire your boss. That much, I hope, is obvious. When I first wrote about software development at Google, most people wrote me and said "you pegged it." But a few people mailed me privately and said: "which Google do you work for? Because it's not like that for me at all!" The answer is: Google is what you make of it, for yourself. If your boss is a vampire, fire him or her! Google can't (and shouldn't) police every last nook and cranny of its own development organization. You need to make sure your group is Googley. And you know exactly what that means, so if it's not that way now, fix it!

And if you're not at Google, which many of you brilliant engineers out there are not, you still know what Googley means! It's the opposite of "sucky". If your organization or team or little cubicle cul-de-sac is un-Googley, then fix it! Googliness needn't be constrained to Google, however prevalent it might be there today.

But how? I mean, do you have that kind of power? You're just a peon like me, right? How can you fire your boss? Or for that matter, if your boss totally rocks in an unrecognized way, how do you promote your boss?

The answer is that you need to be confident. Agile consultants are on the lookout for weakness. If they espy it in you, they'll pounce! And you may not be strong enough to withstand their Agiley claims. I wouldn't have been, fifteen or twenty years ago.

But there's an out for you — for all of us: if you're a superstar, then your management chain needs you. They want the best for you, and if for some reason they don't, or they just don't understand how valuable you are, then they're doomed. Which means "screwed," in modern terminology.

So how do you make yourself a superstar? Never stop learning. I've heard people say they think this position is a crock, that it's ludicrous, that you couldn't possibly spend your whole career learning new things.

But I think differently. I think every program you write should be the hardest you've ever written. And that's what I blog about, mostly. Improving yourself. Because most employers, the ones who matter in the long run, they'll be able to see how great you've become, and they'll alter the very course of their business plan, if necessary, to make the best use of you. Does that sound incredible? Well, I've seen it play out both ways over my modest 20 years in our industry, and that's how I see it.

And that's my little belief. You're welcome to regard it or disregard it as you see fit. But I call my own shots. And even now, after I've found an employer who surrounds me with almost terrifyingly brilliant people, people far greater than I am in virtually any technical dimension you care to name, I can still tell, and tell them, when they've gone astray, and they listen. (Fortunately they rarely stray, and I'm still learning a ton from them every day. The benefit of working for Google, at this point, is still mostly mine.)

And it's a wrap!

My next few blogs, I think, will be about how to make yourself an engineer who's above the Agile Treadmill, who can call your own shots, do your own startup, whatever you see fit.

But I haven't been blogging for a reason. Well, actually a few. One is that I still feel a pressing need to earn my keep at Google, and I've been working like a demon possessed on a new framework of my own devising that I think will more than adequately pay my way for the past year here. Another is that I have an obligation to get my computer game, Wyvern, back online: an obligation to some 50,000 players (out of 250,000 who've tried the game) that I dursn't easily turn my back on. Plus I have some pretty cool stuff in store there, for you Wyverneers who may be listening. Once I get this Google project reasonably secured, that is.

And I do take my own advice: I read voraciously, and I spend as much time bettering myself as I can possibly muster. It's paid off so far, so I see no reason it shouldn't continue to do so.

But these past four hours are all I can afford towards blogging this quarter, so it'll have to do! Hopefully I've quelled any concerns (or hopes) that I've been eaten by Godzilla. And I'll see you all in the New Year, blogging afresh about fresh new topics, God willing.

Happy holidays, and Happy New Year!

p.s. We have 2 Tornado foosball tables in the Google Kirkland Office now. Amazing what just one short year can witness...