~16~

The Xbox OS

We had a tiny team. We were just a bunch of OS guys, and we managed to pull it off with just a ridiculous amount of risks. I’d never permit my guys to do that now.

-Jon Thomason

The OS team, led by Jon Thomason, Tracy Sharpe and Rich Pletcher was working concurrently with the hardware group. Of course, the team had grown, but still remained relatively small, having added a few junior programmers and some people cherry-picked from the Windows NT and Windows 9x teams.

Four Options

At the beginning of the project, the three leads sat down to determine their strategies, and they explored four options, which Thomason describes:

• Create something from scratch. “We quickly discounted that.”

• Use the Win9x source base. “We thought about that seriously, just the Win386 part of Windows.”

• Use WinCE. “We discounted that one pretty fast.”

• Or use NT. “We decided to use NT. It was the most modern of the code bases. It was the biggest of the code bases that we looked at by far. But we thought it would have the best features. Ironically, Tracy was originally from the Win9x team, so he had a bunch of learning to do, but he’s absolutely a genius, and he’s really the hero of getting the software built. He’s a Distinguished Engineer at Microsoft, which is the equivalent of a VP developer.”

Note: While I was researching this book, I interviewed Boyd Multerer, who was at the time working on Xbox One. I asked him about Tracy Sharpe, who was also working on the project and he told me, “You really should interview Tracey. He’s truly a genius. The problem is, Tracey doesn’t talk much. You probably wouldn’t get much if you tried.” I decided to let his colleagues tell the story for him.

Quiet Team—No Name

Thomason refers to his group as “a very quiet team.” In fact, they purposely didn’t give the Xbox OS any kind of a fancy name. They just called it Xbox System Software. “We tried to keep it as bland as we could. In fact, my message for the whole team from day one, ‘If anyone ever hears about us or if we ever do anything that calls attention to us, it’s always going to be negative, because the only thing we can do is get in people’s way. We need to be out of people’s way. The only thing we want to be known for,’ I told the team,’ is to have the best development tools,’ because we were in charge of the development tools, as well… ‘the best development tools of any console in history, and we’re going to be out of the way.’ I set really tight goals about performance and time, and the whole goal was to be invisible. I don’t know if we achieved that, but we certainly tried.”

We Did It

Thomason talks about the success of the Xbox OS and how they won over developers. “The document literally said boot in a second, under a megabyte footprint,” says Thomason. “We presented that to developers all around the world. I traveled a lot at that time, trying to persuade people that we weren’t idiots, and it took a lot of persuading. Anyway, we built all that. We built the operating system we built all the stuff that plugged into Visual Studios, the debugger and everything. We had to build all the developer tools.

“At that same time, Seamus was hiring all these ATG folks, and had some really great game developers on his team. What they did was they wrote at least 200 samples by the time the first XDK came out. They did a fantastic job of writing samples. There have never been better samples than what those guys wrote.

“My team did operating system and debugger interface and all that. And they did a great job of putting the samples in, and they we pulled the whole thing together as an XDK, and with their great game support and them putting on the Xfest developer conferences, we won over the development community, and that’s not an easy thing to do. That’s one of the things I’m really proud of. Nobody believed that we could do this. They really didn’t. And I think that we showed that by putting the right people on it with the right goals, that we could build something they were happy with.

Image

The first Xbox XDK.

“On the other hand, I don’t think we did a great job on Xbox UI. I think we did a much better job on Xbox 360. We put a lot more emphasis on the UI. We really only had one guy doing UI on the original Xbox. That wasn’t a big success story. I think that was the worst part of Xbox system software.”

Cowboy Coders—Rewriting Code

Even though Thomason’s small team met, and even exceeded, their goals, how they did it is another of the many remarkable stories of how amazing things got done at Microsoft.

“We didn’t have any program managers back then. We got our first program manager, Marc Whitten, who is now a VP over at Xbox. He was very junior at the time. So he was coming over trying to get some process into us, and we were total cowboys. I think that is probably pretty obvious from everything I’ve been saying, but 12 developers, all working in the same hallway, one meeting a week. You know, we were just writing code. We didn’t have specs. We did have documentation… we had developer documentation, but it was all just a process that was super tightly geared toward doing stuff that game developers wanted. So basically, it was developer to developer. Developers would call us… they’d call me on the phone; they’d send me email. They’d talk to the ATG folks and talk to us, and we’d just slam the feature they wanted in. If we could fit it in that month, we’d get it in that month. Otherwise it would go in the next month. We were super developer centric.

“So eventually it was time to get some program managers, because it was getting a little unwieldy. The team was starting to grow later in the cycle. We were getting beyond our core 12 guys, and they wanted us to do more and more stuff, so we were hiring people. We started doing more UI and all those sorts of things where you needed to have some program managers. So Marc came in, and he was a good guy. He came from a Windows group where he’d been a developer, but he wanted to be a PM, and he did a great job.

Forking Windows

Jeff Henshaw says that there is still some animosity about what they did in creating the Xbox OS. “So the goal was to create the smallest, leanest, most efficient possible OS. We didn’t want to start from scratch because it would be insane to ignore the deep body of OS legacy that Microsoft had.” And Microsoft did have what they called WinMin (Minimum Windows), which they could have gotten, but, as Henshshaw points out, “It’s four and a half megs, it’s complex, it’s huge, it’s hard to build, it’s not chipset portable, the driver model is complex, there’s a ton of security stuff that is different from the security that we need.” So what they did was to “fork” NT. And some people weren’t happy about it once they found out.

*Forking is when you copy the code and then begin active work on your copy that doesn’t accrue back to the original place you copied from.

So Thomason turned to his ace programmer to solve the multiple problems Windows presented. “So the story I want to tell is that Tracy (Sharpe), our kernel architect, came to me right before Xfest. This would have been Xfest in the spring of 2001, so this is pretty late in the game, right? And I was getting ready to give my talk at Xfest, which I did every time, which was the talk on what was going to be available for game developers, and Tracy came and said, ‘Hey, we’ve really got to rewrite the file system.’ And I went, ‘You’ve got to be kidding me. I mean, it’s April, right?’ We were supposed to have our first shippable libraries in June or July. And he said, ‘Well, the kernel won’t be done until August, right?’ And I said, ‘Yeah… but still…’

The NT file system consisted of 200K of code, and it was a proven and already well-used system. However, there was one problem. Working on PCs, not game machines, if the computer was turned off or rebooted without going through the shutdown process, it would have to go through a “clean process” and then run checkdisk. And it would display an error message about the file system. For the purposes of a game console, they needed to decide how to handle the situation, but the existing process was not acceptable.

“Of course we didn’t show that error message, but we hadn’t decided what to do if the hard disk was marked dirty. So Tracey had been trying to figure out a way around that, but there was just no way with our code. And so he came and said, ‘We’ve got to rewrite it.’ And I said, ‘This is just nuts. This is completely insane.’ And so I was too afraid to tell Marc that we were going to do it… I don’t think ‘afraid’ is the right word, but I didn’t tell him, anyway. So I just kind of, on the spur of the moment at Xfest, announced that we’re also in the process of rewriting the file system. And so they were the first people to hear about it—the developers at Xfest. They were eating it up, though, because they could see that we were just cowboys, and were really trying to make a tight, fast, small system, and they loved it. And I got a huge applause.

“Tracy did rewrite the file system. He did it in about 3 weeks, if my memory serves, and instead of the 200K NT file system, his was 9K, and over the course of many years, I got to hear lots of RMA reports on Xboxes, because the service guys would give us reports on what was broken in the Xboxes that got returned. I never once… never in my entire time there, heard of a corrupt Xbox file system. Not even once. And he did this in about 3 weeks. And of course we tested over a course of a few months, and I think he fixed one or two bugs.

“The main thing about this story is how we just took tons of risks… unbelievable amounts of risks. Andrew (Goosen), on the graphics side, rewrote the driver completely from scratch. He kind of looked at some NVidia code, but they didn’t even help us. There was this really bitter relationship, anyway, so he just wrote the driver himself, and he honestly didn’t think he could do it when he started. And he just did it. He pulled it off. We just took risks everywhere.

“We had a tiny team, and were just a bunch of OS guys, and we managed to pull it off with just a ridiculous amount of risks. I’d never permit my guys to do that now. (laughs) But it really worked out. We made all the dates. We didn’t make the hardware slip even a single day. We ended up with something that we’re all really proud of. You can ask any of those original guys working on the OS, and I think they’ll all tell you that they’re proud of the code and proud of the way we got it done. It’s not that common to look back on a project and not have huge regrets or ‘I wish we’d done this’ or ‘I wish we’d done that.’”

At this point, I quoted Jason Jones from Bungee who once said, “We had the advantage 20 years ago of being really stupid. I mean, being really young, but that young is stupid.” Thomason replied, “I think that describes us. We were all young and stupid. We really were, but we just did it.”

Image

Group picture of the Xbox ATG team.