We’ve RI’ed!!!

We’ve RI’ed!

??  What on earth is he talking about ??

An RI is a “Reverse Integration”.  The NT source system is built as a series of branches off of a main tree, and there are two sets of operations that occur – when a change is made to the trunk, the changes are “forward integrated” to be branches.  New feature development goes on in the branches, and when the feature is ready for “prime time”, the work is “reverse integrated” back into the main tree, and those changes are subsequently forward integrated into the various other branches.

The primary reason for structure is to ensure that the trunk always has a high level of quality – the branches may be of varying quality levels, but the main trunk always remains defect free.

Well, yesterday afternoon, our feature RI’ed into the main multimedia branch, this is the first step towards having our code in the main Windows product (which should happen fairly soon).

When a feature is RI’ed into any of the main Windows branches, code has to go through a series of what are called “Quality Gates”.  The quality gates are in place to ensure a consistent level of engineering quality across the product – among other things, it ensures that the feature has up-to-date test and development specifications, an accurate and complete threat model, that the tests for the feature have a certain level of code coverage.  There are a bunch of other gates beyond these, but they’re related to internal processes that aren’t relevant.

The quality gates may seem like a huge amount of bureaucracy to go through, and they can be difficult, but their purpose is really worthwhile – the quality gates are what ensures that no code is checked into the trunk that doesn’t meet the quality bar for being a part of Windows.

Our team’s been working on this feature (no, I can’t say what it is, yet :() for over three years, it’s been a truly heroic effort on the part of everyone involved, but especially on the part of the group’s development leads, Noel Cross and Alper Selcuk, who were at work at 2AM every day for most of the past three weeks ensuring that all the I’s were dotted and the T’s were crossed.

This is SO cool.

Edit: Cut&Paste error led to typo in Noel’s name


Comments (54)

  1. Anonymous says:

    It took you that long to write a new DRM system? Or did you have extra work to do on a brand new soul-sucking EULA as well?

  2. Anonymous says:


    I’ve tried to be extraordinarily tolerant of comments on my blog, I’ve only ever edited out three comments out of 2930. Please respect the forum and don’t make it four.

    But I’ll answer your comment, even though it’s a troll. Our feature has nothing to do with DRM, or the Windows EULA.

  3. Anonymous says:

    I’ll start the guessing:

    * Voice recognition app?

  4. Anonymous says:

    Interesting. I’m trying to figure out what kind of multimedia feature would take over 3 years to develop.

    I vaguely remember hearing something about an API that would make it significantly easier to develop games but I think that was more than 4 years ago.

    Trolls aside I’m glad it’s not DRM.

    When can us mortals expect to see the fruits of your labor?

  5. Anonymous says:

    will this mystery feature ship with XP reloaded, or will it be part of longhorn? Enquiring minds want to know 😉

  6. Anonymous says:

    I hope you just didn’t make DirectShow obsolete… I have been working with DirectShow and DirectSound on a product for a while now. 🙂

  7. Anonymous says:

    Hmm – would this have something to do with Quality of Service for multimedia – guaranteed minimum bandwidth available for media playback?

    Probably not, actually, since that was announced as a Longhorn feature at PDC’03.

  8. Anonymous says:

    Let’s see..

    Minh: No.

    Kristoffer: Sometime later – when it ships I’ll write about it.

    Nate: XP Reloaded? What’s that?

    Michael: DShow’s not going to be obsolete.

    Mike: Not really.

  9. Anonymous says:

    So, what comes next? A different Longhorn feature? More of this one? Please explain as much as you can about the process in general and the cycles a team goes through. Personally, I’m hoping what you’ve finished is the per-app mixing that’s been in various screenshots.

  10. Anonymous says:

    Anon: Right now, it’s polishing the chrome on the feature (fixing the minor issues we missed in the RI), next comes new features. But none of the new features are as big as this one.

  11. Anonymous says:

    An excellent primer and explainer as to why the Windows development and build process works in the trunk/branch setup is in this PowerPoint. I always find matters of massive logisitics like this fascinating, personally.


  12. Anonymous says:

    Retyped URL to make it clickable 🙂


    Thanks Carmen, I hadn’t realized that PPT was online.

  13. Anonymous says:

    "XP Reloaded? What’s that?"

    Mostly a marketing ploy trying to get a few more paying punters onboard the XP bandwagon; it encapsulates all the stuff that’s happened to XP lately (SP2, MCE2005, etc.) but I think the overall message was too confusing — it sort of sounded like a new version of XP, but wasn’t. (Paul Thurrot has been banging on about it for æons:


    I’d guess that if people within MS haven’t even heard of it it’s been something of a failure. 🙂

    Back on topic, though, I’m intrigued. What’s it’s ETA? Is it HUGE, or some sort of subtle underlying thing? (And I’ll second the "glad it’s not DRM" thing — Palladium can bite my shiny metal ass!)

    Anyway, congrats on whatever it is!

  14. Anonymous says:

    The Quality Gates, is that taking the code to the company founder and getting an approval signed? 🙂

    I have to say that I wonder what kind of feature it may be. Larry, you told us it wasn’t QoS on the network, but what about some improved QoS/real-time behavior locally related to media in general? On my non-hyperthreading, non-SMP laptop, a DVD may stop/show slight glitches if I work too much in another application, even if it’s not I/O intensive. Increasing the player priority doesn’t solve it and I think that I am partly spoiled by an old SMP system where you can hit it so hard with a complex build or whatever and still watch perfect video.

    I guess that would involve ths scheduler, though. Can you tell us if this is mainly user-land or kernel space or if that distinction is not relevant/equal parts of both? Is it "just" media code or are other components involved? Will you finally tell us what it was at a later point in time?

  15. Anonymous says:

    I almost forgot about that per-app mixing stuff. Seems like a feature that’s been a long time coming. Hopefully not too much longer =)

  16. Anonymous says:

    BTW, Happy Birthday 🙂

  17. Anonymous says:

    My best guess is they have put the Windows message loop on the internet. It’s the only thing that critical to the success of the Windows anywhere vision that I can picture taking threee years.

    I keep telling everyone who will listen a: html is dead b: windows will be served just like asp.net and c: windows will be wherever you ask it to be but most people think I’m nuts.

    Seriously, they put http in the kernel. Web servers don’t *need* that. Great benefit, but the don’t *need* it. You want to pump the message loop over http you *need* that.

    2 versions out Windows runs on the internet. There is no doubt in my mind. They said as much when they announced .net at PDC2000.

  18. Anonymous says:

    so i guess this won’t be going into the new Windows XP for Europe then :p

    Congrats Larry and everyone else, can’t wait to find out more on what you’ve done

  19. Anonymous says:

    Mat: I actually know what XP Reloaded was – but from a development standpoint, it was a nonevent (which is a VERY good thing). I was being snarky in my response 🙂

  20. Anonymous says:

    What code managment system do you use? Visual Studio Team System? I read that Source Safe was pushed to the max during NT development.

    My guess for the multimedia feature? Maybe something like Tivo for your pc.

  21. Anonymous says:

    Check out MarkL’s discussion in the PPT: http://www.usenix.org/events/usenix-win2000/invitedtalks/lucovsky_html/Lucovsky.ppt

    It describes our source code control system (SD) in some detail. We’ve never used VSS for Windows (for a number of reasons)

  22. Anonymous says:

    If you are doing threat thingys how about also doing UI thingys. Far more important.

    Even when a product team does something right it is removed in next version. Eg Word 6 added to the status bar help for an unavailable command the reason why it was unavailable. The feature

    1/ Didn’t get picked up by any other team

    2/ Got removed in Word 8 (replaced by Shift + F1 – click greyed item)

    3/ I name drop – Tog (the MAC UI guy) agrees with me (talking about the Shift + F1 in email).

    "This is the wrong way to do it. The grayed-out item is otherwise unclickable. There’s no reason to make people go through secret incantations to get the information. Just let them click for it or even "hover" for it."

    [I’m attempting to harrass IE UI developers to do some right things for a change]

    Another magor help/UI issue is the lack of help in dialog boxes. Clicking a ? then a field titled Filename to be told to enter a filename is not help. If I went to the trouble of clicking the ? then I want to know what filename does it want. I already knew it wanted a filename. There needs to be help about the dialog’s purpose.

    The internet is wonderful. I read tog’s books 10 years ago and this year I actually talk to him.

  23. Anonymous says:

    Whose birthday is it? Larry’s?

  24. Anonymous says:

    Hmmm.. Larry has answered no to all suggestions except for the per-app mixing. Could it be this http://www.winsupersite.com/images/showcase/lh-winhec-01.png maybe?

    Anyways, congratulations to you and the rest of the team 🙂

    PS: Looking forward to read about it!

  25. Anonymous says:

    David, yup. It turns out that Microsoft turned 30 today, and I turned somewhat more than 30 🙂

    Andreas, we did not RI per app mixing today.

  26. Anonymous says:

    Umm.. To be more clear: we did not RI per app mixing on Monday (just so people don’t think I’m weaseling)

  27. Anonymous says:

    per-app mixing?!? Oooh I like!!

    >but the main trunk always remains defect free.

    Somehow that seems a little over optimistic. Congrats anyway, and I look forward to the insiders guide to this new feature. Any idea if it will make it into the XP x64 edition?

  28. Anonymous says:

    Tom, I just said we didn’t RI per-app mixing.

    And keeping the main trunk defect free is the goal.

    Also, it’s not good engineering to RI 3 years worth of work into a feature that’s shipping in months – the x64 edition is supposed to ship in the 1st half of 2005.

  29. Anonymous says:

    MS should rerelease it’s first OS. What was it again, oh yeah, UNIX.

    I’m somewhat more than 30 this month too.

    Who knows, by the time I’m 50 MS may actually get Australian Regional Settings right.

    We use SPACES Chr$(32) to seperate group of digits not commas as specified in Regional settings.

    AS1000-1979, Metric Conversion board 1974. Australian Govt Style Manual ed 3, 4, 5, and 6.

    This is because some of those stupid europeans use commas as decimal point. So we removed commas from our number system.

    I only had the memory of AGSM – my edition has run away – but I’ve now found the references after 10 years.

    I was the one saying MS needed to release patches for 2000 in Australia (daylight saving started in winter due to olympics). Everyone disagreed with me. But MS finally got the effect on Outlook and international companies and released patches.

    Word for instance follows the Chicargo (and if spelling check worked in ie that would be spelt right) Manual Of Style. In Australia I’ve attended universities that followed



    and of course

    Aust Govt Style Manual

    Word makes life hard for Harvard citations (Candy:1994). The AGSM specifies Harvard style of referencing.

    Why am I on this. It’s because I’ve spent two days trying to predict sorting by locale. Noone (esp MSDN) wants to say what the sort order actually is. I looked at Windows functions, C functions, .NET functions and nowhere does it specify what is sorted how. Pretty basic info I’d thought. Why does A come above B? Should A come above B? There no reference to tell. (The actual thing was underscore and a throw away line in msdn that punctuation comes before letters unlike ASCII gave a hint)

  30. Anonymous says:

    Hmm, well Happy Birthday Larry,

    Also I will take a wild guess stab in the dark at something you made.

    Most people talk about the media side of you. But there is also a networking side as well so I am guessing it had something to do with the network protocol that runs on the power lines. Can’t remember the name of it off the top of my head. With the inovations on home networking and appliances with computers on them and things along that nature this would be my guess at a feature in windows being able to detect other devices pluged in to the sockets in your home.

  31. Anonymous says:

    Jeff, SCP’s long dead, I’m 100% windows media and devices these days.

  32. Anonymous says:

    Hmm well the only other thing I could even think of. Since it must be down the media line. Would finally be something along the lines of sound in the .net framework. That is one of the things that has always been missing since it’s release. (Yeah I know I can interop but native .net sound) Then I am guessing that is going into all the next version of windows.

    This would require a lot of testing with a lot of sounds and a lot of formats. This would also require many modifications to every app under Start > Accessories > Entertainment along with everywhere else sound is at.

    Control Panel > Sounds Etc.

    I haven’t really seen you talk much about anything like XAML or anything. So I am guessing nothing to much to do with that. But you have me looking back over all your blog entries. Looking for something that is a common theme, something that stands out somewhere I remember you saying somewhere you were working on the ability for MP3s to be system sounds. but I can’t find that I just remember it because I was kind of aposed to it. Since even system start up sounds sometimes can be annoying to me. Even though one of my co workers the other day run a test lab of a bunch of machines noticed just at a glance I could recognize all the operating systems by thier default screens. She then texted me with all the windows Start up waves to see if I knew those as well. And I passed I could recognize every OS from win 95 by its startup sound as well. I could probably recognise the 3.X sounds as well but I havent heard them in a long time. But I rand across the floppys to install it again the other day when cleaning out some old floppy’s burning to CD. I wonder if those floppy’s still work.

  33. Anonymous says:

    Jeff, it’s got to do with multimedia on Windows, and I just can’t answer what it is (or is not).

    A number of people guessing here have come close, and it’s not worth more speculation.

    Any MS employees who care can send me email asking, but…

  34. Anonymous says:

    Oh I know you can’t answer. I can only guess. Sometimes the guessing is more fun. I really doubt any of us other than you or your wife know all the things you have done to change our lives as well. In refering to your David Weise post.

    I am betting I could rattle off some API’s to do with media or some dll’s I have used in the past and somewhere in there is Larry’s hands. Also somewhere in some API’s I have used as well is Raymond’s hands as well. But I highly doubt anywhere in there in the documentation on when I am looking up an api class library or method somewhere to use that I will ever see Larry’s name, but I also know you worked with a team as well. So it is just fun to speculate when I hit something like that to think hmm Larry’s code, beware the beard. 😉

  35. Anonymous says:

    Is NT still a supported platform?

  36. Anonymous says:

    The PPT slides by Mark Lucovsky (who is also a distinguished engineer) discuss SourceDepot – Microsofts source control system. This is based on Perforce, which I believe Microsoft bought a license to the source code and modified the base Perforce product to more suit their style.

    Larry, it would make a great blog post to list the distinguished engineers and why they are distinguished. The most famous are Hejlsberg, Cutler and Gray – but the others aren’t very well known outside of Microsoft.

    I may as well guess at the RI feature….Now, both lead devs have a history of developing audio products – so the feature must be related to audio in Longhorn. We’re at the limit of what can be done with sound coming out of a computer – so I expect this must be a sound input system. Perhaps the ability to index movie files by performing speech recognition on the audio track and implementing an IFilter interface for Index server along the lines of Aurix.com?

  37. Anonymous says:

    I understand the issues with using VSS on such a large scale project as Windows. But out of curiousity would you move to the new Team System if you didn’t have to worry about legacy issues of an existing source control system.

  38. Anonymous says:

    RichB: You can find some info about the DEs at this site http://www.microsoft.com/PressPass/exec/de/default.asp. Btw. Dave Cutler is the only Senior Distinguised Engineer in that list…

  39. Anonymous says:

    Larry, how do you figure Microsoft is 30? The archives I look at show it being established in April 1975. Just curious.

    Oh, and Happy Birthday 🙂

  40. Anonymous says:

    The track list for WinHEC 2005 came online today (http://www.microsoft.com/whdc/winhec/tracks2005/w05tracks.mspx). I am sure Larry is working on one of the things mentioned there! Maybe you can at least mention the broad topic, now that this is on the web anyway?

  41. Anonymous says:

    The track list for WinHEC 2005 came online today (http://www.microsoft.com/whdc/winhec/tracks2005/w05tracks.mspx). I am sure Larry is working on one of the things mentioned there! Maybe you can at least mention the broad topic, now that this is on the web anyway?

  42. Anonymous says:

    One of the tracks is focused almost entirely on our stuff 🙂

  43. Anonymous says:

    Imagine a blog entry where I talk about my last few days before Beta 2.

  44. Anonymous says:

    I was working in building 50, the SCP project was clearly approaching it’s end-of-life, and I was casting

  45. Anonymous says:

    Understanding Source Control I – A Visual Guide to Version Control