Robert McLaws: Windows Edition

Blogging about Windows since before Vista became a bad word

VSLive! Interview: Don Box Talks Indigo

At VSLive! San Francisco, I had the chance to spend some time with Don Box, Product Manager for Indigo. It was a very interesting conversation, and Don is quite a character. Here's a transcript of that interview.

RWM: Do you think there was a clamp-down on talking about Longhorn-related technologies after the WinFS accouncement?
DB: The thing that may not be obvious is, the closer you get to ship, the less time you have to blog. If you look at my blogging rate in September, it was like 23, and now it's down to about 2 a month.

RWM: Where does this Indigo CTP stand on the Road to RTM?
DB: This CTP will be followed by Beta 1, and there may be CTPs between Beta 1 and Beta 2, as well as probably one or two more between Beta 2 and RC1. There probably won't be any CTPs between RCs, God help us if there are. :). The goal is to keep the flow going as much as possible, and getting the world of Microsoft set up to do that.

RWM: Does "Beta 1" mean Longhorn Beta 1, or will they be separate?
DB: That's Indigo Beta 1, and that will be in the second half of 2005.

RWM: So there will be a Beta 2 then?
DB: Probably. I'm willing to go on the record that there will probably be a Beta 2.

RWM: Will Indigo RTM before Longhorn RTMs, or do you think Indigo will ship first?
DB: The current thinking is that the downlevel version might be released before Longhorn, but we obviously can't ship the Longhorn version before Longhorn, now can we? But Longhorn will ship with Indigo.
I don't want to do anything to derail your enthusiasm for Longhorn, but on Indigo, we were... always building Indigo. We were going to catch the next train out of the station. The obvious choice for that was either Whidbey or Longhorn. Whidbey looked pretty... aggressive [chuckles]... and Longhorn looked safe. It was going to be work, and we'd have to focus, but we could make it. For us, we were building a component that is a part of Windows, and that it was pretty critical to the platform. But we always assumed we'd ship downlevel.

RWM: So the downlevel story was always there? I mean, it wasn't just something you decided later on in the process?
DB: I've been with Microsoft and Indigo since January of '02, and certainly when I came in, it was "we're just another part of the .NET Framework, and we'd ship on as many OSes as we can. Even at PDC in '03, we made a big deal out of it. It was in the slides.

RWM: That's not something that a whole lot of people picked up on, at least from my perspective.
DB: Well, I probably gave it about 90 seconds of a 90 minute talk, but I was pretty excited about it. Lets face it, PDC '03 was "Longhorn, Longhorn, Longhorn". In my estimation, I think Whidbey is pretty [expletive] exciting. The fact that Whidbey wasn't at a developer-facing conference. If you think about the PDC, we had '02, which was the "big" one in Orlando, when we released the platform, '01, which was [laughing] "HailStorm"... [more laughing] the HailStorm PDC... and the '03, which could have been the Whidbey and Longhorn PDC or whatever... but Whidbey was down in the noise, and Longhorn was what everyone wanted to talk about. I don't blame them. WinFS, Avalon, and Indigo were big investments, and they are pretty interesting stuff, so naturally everyone got really excited about it. But I love Whidbey. I think it's a pretty big deal. It's kinda said that it never got a PDC, but HailStorm did.

RWM: What was the feature in Indigo you had the hardest time cutting?
DB: Hmm... yeah, the one that gave people the most angst was the Pub/Sub feature. Up until not that long ago, we had a WS-Eventing implementation, and... you know, it was servicable... some work was done to make it pretty compelling, actually. But we looked at it in terms of the schedule, and we looked at the feature set we were going to be able to deliver. Even though we were going to be able to come up with a really easy-to-use metaphor for WS-Eventing, and Pub/Sub in Indigo, we weren't investing in building out the multicast delivery method underneath it, which is arguably the important thing.
Given the fact that what we had done was built an easy way to write a "For" loop, making it this easy to do something that was not implemented in a scalable way is really bad. I mean, it was kind of comparable to the COM+ "Loosely-Coupled Events" feature. It was easy to use, and nice and integrated with the rest of the environment... but you know, it's a "For" loop. And people who want to do Pub/Sub for real don't want to use a "For" loop, they want a delivery substrate that actually doesn't require flooding the network with a bunch of redundant transmissions. And given the fact that we hadn't built that yet - I mean we want to build that; we plan on building that... it's not gonna be in V1 - swe decided to cut the feature. It was pretty sad, because lots of people liked it, and lots of people worked on it... you know, it's tough. That was easily the hardest feature.

RWM: What was the easiest feature to cut?
DB: [Laughing] The easiest feature to cut was probably...
RWM: You know, the one that gave you all kinds of trouble.
DB: Interesting. I would say, the easiest feature to cut was the router. If you look at the M4 bits, which we shipped with Longhorn [at PDC '03], we had a message router where you could instantiate this in-memory piece of code, populate it with declarative rules that were basically pairs of XPath predicates to match the message, and then and action. And we did all kinda of fancy engineering to make those predicates really fast-matching... and it was really cool. You know, it was like a geeky thing that was all 'Woah, this is great!' But, because it wasn't necessary. There were no applications of Indigo that you could say 'Oh my god, I have to have that feature!' and we were at a point where we needed to cut stuff that was nice to have, but not necessary to have. And so it went. It was easy because very few people were enamored with it.

RWM: What feature changes got you the most flak?
DB: It's too early to tell. I can tell you what the team says, but in terms of customer feedback, so few people have gotten builds between PDC and now, that they statistically don't exist. Today, the customers we've talked to have actually been pretty positive. When we were on the fence about the Eventing thing, we got pretty clear feedback from customers that said 'Do it right in V2 rather than giving me something less than useful in V1.'

RWM: Do you know of any Microsoft products that will make use of Indigo right off the bat?
DB: BizTalk.

RWM: What's your favorite feature in Whidbey?
DB: Anonymous methods in C#. It's magical. [laughs]

RWM: Alright. What's your favorite conference experience?
DB: Oh, I don't know. I have a lot of really wonderful experiences from conferences. PDC '03 was fun, because it was the first PDC where I was on the other side, where I worked on Microsoft... worked on a technology and was part of the rollout of it. [pauses] it will be very interesting to see what PDC '05 is like. PDC '03 was an amazing conference... extremely well executed, all new technology, and interesting stuff. Getting Jim to do the coding thing was a lot of fun.
RWM: Yeah that was.
DB: I think I said on my blog that we set a high bar for '05. Everyone knows that, and we all want to do a better job this time, but man...
RWM: Did Jim actually know all the code he was writing?
DB: Yes, Jim is able to write code. There was no automaton... those were Jim's hands, and he knows how to program. We did surprisingly little rehearsal, because I like to be spontaneous. Chris and I would just meet every week or so for an hour or two. We'd just tell each other the story of what we wanted to achieve. It was only about 3 weeks before th e conference that we decided to pull together any code whatsoever. And then, you know, we were working on Jim to do the middle part, and his handlers didn't want him to... [chuckles] but ultimately everyone got onboard. Now, of course, we have to do that again...
We went to a lot of meetings about the keynote... 'cause Chris and I have the technology... we have skin in the game. But in terms of the actual demo... that middle hour... we sat down with Jim twice with no one in the room, and just let it all out. It was... not very rehearsed. That's the only way to do those things... I can't imagine doing it any other way.