<< Newer Article #186 Older >>

When Good Codenames Go Bad

I'll admit it: I've never been good at coming up with codenames for projects. Sure, I've worked on projects with good codenames (Virtual Game Station was codenamed Bonestorm, but you can thank Eric for that one). But they're usually not of my invention.

Except once.

When we were starting work on the first Windows version of Virtual PC, we were brainstorming codenames. Nothing was really clicking. Finally, someone suggested, "Well Aaron's the lead, he should pick the name." Great. Off the top of my head I scrambled and threw out Hedgehog. Not a particularly exciting or descriptive codename, but not an entirely terrible one, either. It stuck. In fact, we even used Hedgehog as the root directory name of our source control tree (this was before we really realized what a bad idea this is, since you're generally stuck with it at that point without some major reshuffling).

Over time, the name grew on me, and on the rest of the team. Turned out to be a pretty good codename after all. As we went through our planning phase for Virtual PC for Windows, we decided to rearchitect the core Virtual PC code so that we could share as much code as possible between the Mac and Windows versions. Furthermore, planning ahead, we realized that we were going to want to consider developing a version of Virtual PC to run on Linux platforms. And we were going to want to craft a new Mac version that ran on MacOS X, which hadn't been released yet.

All of these projects needed codenames. And so, with a bit of cleverness, Hedgehog begat Warthog (VPC for Linux) and Groundhog (VPC for MacOS X). Of course, we still needed to produce a "classic" MacOS 9 version as well. Since that one had been around since the beginning, it was dubbed Boss Hogg.

Conveniently, referring to the whole collection, we could just talk about the whole hog.

After we had produced Virtual PC for Windows, we hooked up with Microsoft to produce a variant of Virtual PC for Windows that would serve as the emulation platform for Windows CE development. This was sort of a stripped-down, mini version of VPC Windows. It was given the codename Piglet.

By now, we had pretty much achieved a state of doneness with the whole hog theme. Or so I thought.

We had one developer, working from overseas, who was off trying to come up with what we all thought was going to be the killer application of Virtual PC: seamless integration with the hosting OS. That is, you would be running Virtual PC for the Mac, and rather than seeing a Windows desktop, you would just see the individual windows of the Windows applications you were running. You could interact with them similar to your Mac application windows, and thus your Windows apps would appear to freely intermix with your Mac apps. This was a hard problem, and we never did come up with a final shipping solution. But we did have a codename for it: Seamless Windows Integration in the Native Environment. Yep, SWINE.

Okay, at this point, all the developers were really done. A moratorium was placed on pork-related codenames. We would come up with a new theme. We began to start talking about what our future products might be. We began development on Virtual Server, and studiously avoided using codenames at all.

Sadly, our project managers did not get the memo. Looking forward, we thought about supporting multiple processors in a virtual PC, and maybe even developing an Itanium-based version. The codenames for these two projects?

Snowball and Napoleon.

Strangely, nobody has ever asked me to come up with a codename since then. I wonder why?