Victor Stone
June 14, 1999
In my last column, I presented a potential scenario for what can happen when a development team loses track of their users early in the project cycle. In that instance, our distraction was caught quickly. Sometimes we aren't so lucky, and the mistake is promulgated up and down the management chain. That's when things get out of hand, and the skunkworks become real. For example, try to imagine that you're in the final stretch of the product cycle. It's the time in the product cycle where you spend 60-plus hours a week fixing bugs and sneaking in Easter eggs. But the overall bug fix rates are not converging with bug find rates, and your feature area is the "long pole in the tent," which means it is time to stock up on chocolate-covered coffee beans and Dew. You catch your colleague melting a batch of caffeinated Altoids in a spoon in the bathroom, then spreading the hot result over a nicotine patch before slapping the patch directly over his heart.
Every now and then, during periods of "zero bug bounce," you get a moment out of the crosshairs. And what consumes your thoughts during that down time? Is it the romantic vacation that your fiancée booked for next week over six months ago? You've been using this vacation as a truce treaty when communications with her have been strained: "I know things are crazy right now, baby—but I'll see you in three months when we go to Mexico, right? And I promise we'll spend next Christmas together." The vacation is now, you realize, completely out of the question. But is this what eats away at you? No, you are immersed and engrossed in the only sane thought process you could possibly muster at this point: the next version!
Hey, if you're a real pro, you've already forked the shipping code of the current product (the "golden fork"), and even now you are coding, in your "spare" time, the next version—checking that code into the "pork fork." And where are the specs for the code in the pork fork? Naturally, they are in your head and fingers. They didn't come from customer visits, marketing data, program managers, or product reviews—and certainly not from the bug database. They are not the result of pressure from customer-support calls, sales reps, top management, or financial analysts. In other words, it is conceivable that there isn't a single user actually asking for what you are working on. (That is precisely one customer less than the justification your manager will use to wedge some of his features in—which is why he's in management and you are not.)
You are coding the "hero features." These features come from a witches' brew of smoke-break conversations with other programmers on your team, an unfinished research project from your under-grad course on compilers, snippets from the Linux standards Internet mailing list, a twist from an out-of-print back issue of a Byte magazine column, and yet another one-way screaming session with your dad about how impossible it is to use personal computers. This is your chance to look good, do right, and be the hero. Sure, you've devoted yourself to the current product, and at the very least you've given heart-felt lip service to your fiancée—but the real passion, the soul of your existence, revolves around the work in the pork fork. This version is going to be your product, your fingerprint, your blood, and your guts. Investment, baby.
Fast forward three months: The golden fork finally shipped three and a half weeks ago, you've got triplicate unsigned copies of palimony papers piling up higher than your dirty laundry in the back seat of your car, and you are still waiting for your peers to carry you off into the sunset on their shoulders. That never quite happens. Instead, you got a beer toast the night of the ship party, a corporate key-chain, and a product T-shirt that says "I just killed myself for this project and all I got was this corporate rah-rah tee-shirt which only reinforces the fact that I don't have a life." You are mostly oblivious to the increased frequency and intensity of the closed-door middle-management meetings. You ask your manager if there is anything to worry about, but without blinking he says: "There are shake ups happening, but I was promised our team wasn't affected." You shrug your shoulders and go back to the pork fork, now the mainline source tree for the next version of the product.
Three days later, your entire division is invited to "an important, required informational gathering" in the courtyard of the industrial park just outside your building. You're ready to blow it off, but your manager makes a special point of coming by to lift your hands off of the keyboard and drag you outside. The mood of the meeting is downright awkward, with lots of nervous, cynical sniggering couched in conspiratorial whispering. You are ready to nod off when the VP of your division introduces the CFO and starts in about the surprise success of a whole line of products from the company—none of which you work on. Your ears do perk up when the CFO starts to speak about your product, but the tone in her voice is decidedly more hushed and reserved. It begins with talk of high expectations and hard ("Herculean") work of the product and sales teams, then quickly shifts into the solemnity of fierce competitive markets, unfortunate marketing miscalculations, and the piercing "product's lack of fit and finish." Now your VP takes the podium again and opens up with "hard but necessary choices." Oops.
Those of us who have been in the work force for a little bit of time recognize a train wreck about to happen and, for the most part, know when to get off the track—especially when we find ourselves standing in between the two trains. But not always, not when our hearts and souls have gone into the product, and we've sacrificed so much of ourselves, our lives, for the software.
Sooner or later, you figure out that the investment, baby, is not in the software, it's in yourself. While it is very little consolation at the moment itself, those of us who have lived through the recessions of the 1970s and turbulent silicon bounces of the 80s and early 90s as the PC industry struggled to find its winners and losers know that short-term pain is irrevocably turned into long-term gain. For all the times I was laid off or had a project cancelled out from under me (don't ask for a number; you would get a more accurate count of Ask Jane's lovers), without fail, I found a better opportunity waiting for me soon after. And, if you play your cards right, you get some pretty romantic Baja vacations mixed into the brew too.
Victor Stone is on the Product Design Team in RAD Tools at Microsoft. He says "Don't belong. Never join. Think for yourself. Peace."