Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Nelson MandEULA
Feb 27, 2011

"...the biggest shitbag
I have ever met."

Ice_2_c_u posted:

I had to use a surface pro to sign into a hotel gym the other day. writing with the pen while the box kept losing focus was not top notch

thank you for reading

tried out word on an RT back when they first came out - it crashed instantly.

can we just remind ourselves of the stupidity of the surface rt? forcing you into a desktop environment (on a tablet!!!) in order to use office, but not letting you use any other desktop applications. just... loving amazing. who let that ship?

Adbot
ADBOT LOVES YOU

Just-In-Timeberlake
Aug 18, 2003

Nelson MandEULA posted:

just... loving amazing. who got bonuses to let that ship?

ftfy

The Management
Jan 2, 2010

sup, bitch?

Nelson MandEULA posted:

tried out word on an RT back when they first came out - it crashed instantly.

can we just remind ourselves of the stupidity of the surface rt? forcing you into a desktop environment (on a tablet!!!) in order to use office, but not letting you use any other desktop applications. just... loving amazing. who let that ship?

Steven B17 "The Embalmer" Balmer

The Management
Jan 2, 2010

sup, bitch?
somewhere in Cambridge an ARM executive is crying into his tea every morning about how badly they botched this product and windows' future on arm

univbee
Jun 3, 2004




The Management posted:

Steven B17 "The Embalmer" Balmer

now i want ballmer to become a pro wrestler with this name

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Nelson MandEULA posted:

who let that ship?

Microsoft is a top-notch company developing top-notch products

Shaggar
Apr 26, 2006
surface rt was so the office team could say "see, look. windows on arm just doesn't work! told you we don't have to rewrite office!"

The Management
Jan 2, 2010

sup, bitch?

Shaggar posted:

surface rt was so the office team could say "see, look. windows on arm just doesn't work! told you we don't have to rewrite office!"

a good CEO would have started firing and not stopped until they fell in line with the corporate strategy instead of letting them sabotage it.

Fabricated
Apr 9, 2007

Living the Dream

The Management posted:

a good CEO would have started firing and not stopped until they fell in line with the corporate strategy instead of letting them sabotage it.
Looking at how wisely they chose in who they fired this last goaround I have a feeling that wouldn't have worked out too well.

Workaday Wizard
Oct 23, 2009

by Pragmatica
is the msoffice source code modular or is it a monolithic monstrosity?

Shaggar
Apr 26, 2006
its a modular monstrosity

univbee
Jun 3, 2004




Shinku ABOOKEN posted:

is the msoffice source code modular or is it a monolithic monstrosity?

there was an article i think for windows proper which talked about how enormous an undertaking it was to compile the source for it, like it involved several high-end engineers and systems and i think it even took a few days with really precise coordination

Dixie Cretin Seaman
Jan 22, 2008

all hat and one catte
Hot Rope Guy

univbee posted:

there was an article i think for windows proper which talked about how enormous an undertaking it was to compile the source for it, like it involved several high-end engineers and systems and i think it even took a few days with really precise coordination

some of the backward compatibility for old office formats is accomplished with vm and screen scrapers bc nobody can figure out a proper way to do it that works

univbee
Jun 3, 2004




Dixie Cretin Seaman posted:

accomplished with vm and screen scrapers bc nobody can figure out a proper way to do it that works

don't post my secret cj'ing techniques

jokes
Dec 20, 2012

Uh... Kupo?

its like warhammer 40k or something at this point.

'say a prayer to the photo of ballmer, anoint the machine with sacred oils, then save the .rtf file as .docx'

Sapozhnik
Jan 2, 2005

Nap Ghost
If you want to peer into the madness look at bin\Makefile.new in the Windows Driver Kit sometime :v:

The WDK is, iirc, the actual toolchain used to build Windows itself, so you get all sorts of crazy poo poo in that makefile like rules to build HAL.DLL and stuff.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Mr Dog posted:

If you want to peer into the madness look at bin\Makefile.new in the Windows Driver Kit sometime :v:

The WDK is, iirc, the actual toolchain used to build Windows itself, so you get all sorts of crazy poo poo in that makefile like rules to build HAL.DLL and stuff.

lol no it's worse

Dixie Cretin Seaman
Jan 22, 2008

all hat and one catte
Hot Rope Guy

Mr Dog posted:

The WDK is, iirc, the actual toolchain used to build Windows itself, so you get all sorts of crazy poo poo in that makefile like rules to build HAL.DLL and stuff.

i'm sorry, james. i'm afraid i can't build that.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

univbee posted:

there was an article i think for windows proper which talked about how enormous an undertaking it was to compile the source for it, like it involved several high-end engineers and systems and i think it even took a few days with really precise coordination

can someone find this because it sounds proclick

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



carry on then posted:

can someone find this because it sounds proclick

brb googling how to compile actual windows

Assepoester
Jul 18, 2004
Probation
Can't post for 10 years!
Melman v2

Shinku ABOOKEN posted:

is the msoffice source code modular or is it a monolithic monstrosity?

Shaggar posted:

its a modular monstrosity
OLE + COM motherfucker!

Dixie Cretin Seaman
Jan 22, 2008

all hat and one catte
Hot Rope Guy

WHAT A GOOD DOG posted:

its like warhammer 40k or something at this point.

'say a prayer to the photo of ballmer, anoint the machine with sacred oils, then save the .rtf file as .docx'

there's a great bug where having "track changes" on when you modify equations in "equation editor" will sometimes randomly crash word and lose any unsaved work

Proteus4994
Jan 2, 2001

Do not engage. Just tell me to go back to Kiwi Farms where I waste days upon days crying about how I wasted years upon years on SA. Did you know I was personally responsible for SA's rise in popularity in the 00's? It's true! Just come to the Farms and find out how! It's the trash kingdom I deserve.

Dixie Cretin Seaman posted:

there's a great bug where having "track changes" on when you modify equations in "equation editor" will sometimes randomly crash word and lose any unsaved work

jesus christ cut them some slack you rear end in a top hat, word has only been in development for 31 years

Phoenixan
Jan 16, 2010

Just Keep Cool-idge

Shaggar posted:

its a modular monstrosity

AWWNAW
Dec 30, 2008

One Element About The Nt Family Of Operating Systems--Which Evolved From Windows Nt To Windows 2000, Xp, And, Now, Windows Server 2003--That Has Remained Unchanged Over The Years, Though The Details Have Changed Dramatically, Is The Build Process. Somewhere Deep In The Bowels Of Microsoft, Virtually Every Day, At Least One Windows Product Is Compiled, Or Built, Into Executable Code That Can Be Tested Internally By The Dev, Or Development Teams. For Windows Server 2003, This Process Is Consummated In Building 26 On Microsoft's Sprawling Redmond Campus, Where Banks Of Pcs And Cd Duplicating Machines Churn Almost Constantly Under The Watchful Eyes Of Several Engineers.

The Details Of Nt--Excuse Me, Windows--Development Have Changed Dramatically Since The Project First Started In The Late 1980'S. "Back In The Early Days, We Started With 6 People," Microsoft Distinguished Engineer And Windows Server Architect Mark Lucovsky Told Me. "Now There Are 5000 Member Of The Windows Team, Plus An Additional 5000 Contributing Partners, Generating Over 50 Million Lines Of Code For Windows Server 2003. Getting All Those People Going In The Same Direction, Cranking Out Code, Is An Enormous Task. Building The Results Of Their Work, Compiling And Linking It Into The Executable And Other Components That Make Up A Windows Cd Is A 12 To 13 Hour Process That Is Done Every Day Of The Week. It's The Biggest Software Engineering Task Ever Attempted. There Are No Other Software Projects Like This." And Microsoft Compiles The Whole Thing--All 50+ Million Lines Of Code, Almost Every Single Day, He Said. "We're Evolving The Development Environment All The Time," Lucovsky Noted.
"When We Turn The Crank, We Compile The Whole Thing," He Said. "We Have To Be Able To Reproduce The System At Any Point In Time As Well. So Developers Check In Code, We Press A Button, And Out Comes A System. We Should Be Able To Reproduce That [Build] Three Years In The Future, Using The Various Tools, Compilers, And Scripts We Used At That Time."

David Thompson, Corporate Vice President Of The Windows Server Product Group At Microsoft, Elaborated On The Process. "The Key Here Is That We Built Up The System Over The Years, Advancing It In Three Dimensions," He Said. "First Is The Product Itself. Second Is The Way We Engineer The Product. And Third Is The Way We Interact With A Broader And Broader Set Of Customers. The Product Evolution Is Pretty Straightforward. The Source Code Control System We Use Now Is New, Because We Really Pushed The Scale Of The Previous Version With Windows 2000. Mark [Lucovsky] Personally Lead The Development Of The New System And Introduced It Post-2000. We Started With Some Acquired Technology. We Now Do Have A Staged Build [For The First Time]. But Every Day The [Staged Builds] Are Rolled Up Into The Total Build. So We Can Scale But Maintain Stability--We Know Where We Stand Every Day."

Just Eat It: Microsoft Serves Up Dog Food

Lucovsky Reminisced A Bit About The Early Days, When The First Nt Prototypes Were Built In His Office With Only A Single Person Overseeing The Process. That Person Would Simply Send Out An Email To The Nt Team When A New Build Was Ready, And Then 50 People Or So Would "Eat Their Own Dog Food," Testing The Build On Their Own Systems And Run Stress Tests. "I Used To Just Walk Around The Building And Write Down The Problems We Found," Lucovsky Said. "That's How It Was Pre-Nt 3.51. Now We Have 7 Builds Labs. Dave [Thompson] Has His Own [Build Lab] For The 1200 People He Oversees. The Main Build Lab Cranks Out The Official Build, Which Goes Out To Thousands Of People Daily. Notification Is Automatic, And Is Sent Out In Multiple Stages Using The Backbone Servers Across The Campus. It's All Automated. Those Little Things Have Now Scaled Up."

"Originally, We Had A Certain Time Of Day [Up To Which Time] We Could Check Code In And Then We Stopped," Thompson Said. "After That, We Threw The Switch And Built The New System. Eventually, We Grew The Team To 85 People And Serialized The Process For More Control. [Nt Architect] Dave Cutler--Who We All Worked For---Ran The Build Lab For About A Week, And He Required People To Personally Write Their Check-In Requests On A Whiteboard In The Lab. He Forced It Into A Mold. I Sat In There For A While Too. One Day I Accepted 85 Check-Ins, The Most We Had Ever Had To That Point. Now We Can Take In Over 1000 Every Day. It's A Completely Different Scale. Even The Whiteboard Is Electronic--Web Based, Actually--Now."

"There Are No Other Software Projects Like This," Lucovsky Said, "But The One Thing That's Remained Constant [Over The Years] Is How Long It Takes To Build [Windows]. No Matter Which Generation Of The Product, It Takes 12 Hours To Compile And Link The System." Even With The Increase In Processing Horsepower Over The Years, Windows Has Grown To Match, And The Development Process Has Become Far More Sophisticated, So That Microsoft Does More Code Analysis As Part Of The Daily Build. "The Cpus In The Build Lab Are Pegged Constantly For 12 Hours," He Said. "We've Adapted The Process Since Windows 2000. Now, We Decompose The Source [Code] Tree Into Independent Source Trees, And Use A New Build Environment. It's A Multi-Machine Environment That Lets Us Turn The Crank Faster. But Because Of All The New Code Analysis, It Still Takes 12 Hours."
Dogfooding Their Code Has Always Been A Key Requirement Of The Nt Team, Thompson Told Me, And An Integral Component Of Microsoft's Culture. "This Is One Of The Things We've Always Done, Back To The Earliest Days," He Said. "We Were Just Joking About This Today, Actually, Talking About Our Email Program. Back When We First Got Nt Running On Desktop [Pcs], Our Email Program Wouldn't Run Because It Was A Dos Application, And We Didn't Have Dos Compatibility Mode Working Yet. So I Ported Our Internal Email App, Wizmail, To Win32 So We Would Be Able To Use Only Nt Systems."

"When You Are Forced To Use The System Yourself, You See Bugs And You See The Performance Issues," Thompson Added. "And You'd Go And Find The Person Responsible For The Problem And Ask Them To Fix It." One Of Thompson's Primary Responsibilities When He Joined The Nt Team Was To Deliver The File Server Over To Nt So That It Could Be Used As The Source Code Server. That Required A Moment Of Faith, Especially Since Nt Was Then Using A Prototype Version Of The Ntfs File System. "The Networking Group Took This Very Seriously," He Said, "And Made Sure It Was Ready For Internal Deployment. Once It Was Rolled Out, We Never Backed Away. Obviously, If The File Server Goes Down, It's A Disaster. So It Was A Big Moment For Us, Getting Over That Hump."

Later, As The Development Of Windows Nt 4.0 Wound Down, Thompson's Team Took On Active Directory (Ad), Microsoft's First Directory Service, Which Debuted Publicly At The Professional Developers Conference (Pdc) In 1996. "Before Ad We Had Nt Domains For Our Infrastructure," He Said, "And Going To Ad Was Even More Complex. We Deployed Ad Very Early, First With Our Team, And Then The Wider Windows Group. Then We Threw The Switch On Redmond [Campus] Ad In April 1999."

Microsoft Rolled Out Ad To The Rest Of The Company In Stages, Thompson Said, Using Careful Planning. The Campus Went To A Multi-Forest Ad Topology With Windows Server 2003 Last Year. "With All Of The Infrastructure Servers, We Always Do A Complete Deployment Internally, Then Push It Out To The Jdp (Joint Development Partners), Who Test And Deploy It In Production In Over 250 Usage Scenarios. We Get Bug Reports, Feature Feedback, And Complex Scenario Testing That Really Proves The Product."

Windows Server 2003 Hit 99.995 Percent Availability At The Release Candidate 1 (Rc1) Stage Last Summer, And The Microsoft.Com Web Site Was Fully Deployed On Winserver 2K3 When Rc2 Rolled Out In November 2002. "Heavy Usage Internally And By Close Customers Is Key," Thompson Told Me, "And We Have A More Mature View Of What The Product Is Now [Compared To The Early Days]. We're Not Just Shipping Bits In A Box, But Are Also Shipping A Wide Range Of Complementary Tools, Products, Services, And Documentation." And Thompson Explained That The Teams Working On Outlook 11, Exchange Server 2003 ("Titanium") And Windows Server 2003 Are All Working Much More Closely Together To Implement Complete End-To-End Scenarios That Meet Customer Needs. In The Past, These Products Were Often Developed More Independently.

Are You Being Served? A Look At Product Maintenance

"Servicing Has Definitely Matured Over The Years," Lucovsky Added. "We Do A Lot Of Work Figuring Out The Right Mix Of Service Packs, Hot-Fixes, [Product] Development Branches, Betas, And Jdp Customers For Each Product." (More Information About Development Branches Can Be Found In The Next Section.)

"We've Really Extended The Time That We Service Our Products," Thompson Said, Because When Microsoft Ships A Server Product, Customers May Use It For Up To Ten Years. So-Called Volume, Or Mainstream, Service Lasts Seven Years, But The Company Has Constantly Evolved The Way It Supplies Updates And Fixes Over Time. First, Microsoft Has To Be Sure That Bug Fixes Are Applied To All Of The Applicable Development Branches. "Our Work In Rapidly Addressing Security Vulnerabilities Means That We Now Aggressively Issue Hot-Fixes When We Can," Thompson Noted. "As Well, It Used To Be That [Service Packs] Were Flexible, A Way That We Could Deliver Features As Well As Fixes. But Customers Made It Clear That They Wanted Bug Fixes Only [In Service Packs]. That Leads To An Interesting Question, Though: What, Exactly, Is A Bug? Is A Missing Feature A Bug? Customers Often Have Different Views Themselves. But [Windows] Nt 4 Sp3 Was The End [Of Major New Features In Services Packs].

One Side Effect Of Trunk Servicing Is That Microsoft Must Maintain Test Environments For Every Permutation Of Its Recent Operating Systems. That Means That The Final, Or "Gold" Release Of Windows 2000 Is One Branch, Windows 2000 Sp1 Is Another, Windows 2000 Sp2 Is Another, And So On. "And Dogfooding Is Important To Providing Service Packs, Too. In Our It Organization, We Maintain A [Separate] Windows 2000 Infrastructure Just So We Can Do Live Rollouts To Windows 2000 Systems And Test Them In A Production Situation," Thompson Said. "It's A Big Expense, But Worth It."

Hot-Fixes Are Treated As Narrow Releases That Should Fix Only One Specific Problem And Not Affect Other Parts Of The System. Thompson Said That Customers Should Generally Only Apply A Hot-Fix If They're Affected By The Problem The Fix Addresses. However, Security Fixes Are Another Issue Altogether. "We Expect All Of Our Customers To Install The Security Fixes," He Said, "So We Are Very Careful With Them, And Do The Right Kind Of Testing. They Are Generally Deployable Releases (Gdrs), Just Like Service Packs."

Trunks, Trees And Branches

As Noted Earlier, The Various Windows Versions Require A Series Of Product Development Code Forks, Where Each Different Windows Product "Branches" Off The Main Development "Trunk" Over Time. So Each Windows Release Builds Off The Last, And At Least Two Different Versions--Windows Server 2003 And Longhorn, At The Time Of This Writing--Are In Simultaneously Development. Because Winserver 2K3 Was Split From Xp, The Server Product Basically Builds On Xp. Longhorn, A Client Release That Will Succeed Xp In A Few Years, Is Actually Building Off The Server Branch Code Base, And Not Xp As You Might Expect.



"The Mechanics Of Doing This Are Mind-Numbing," Lucovsky Told Me. "We Have A Main Branch Of Code For The Current Windows Version, And That Branch Becomes The Source Base For Hot-Fixes And The Next Service Pack. Once We Spit Out A Service Pack, That Becomes A Branch And Now We Have Two Branches We Have To Test For Hot-Fixes And Service Packs. We Can't Tell Customers To Install, Say, Sp1 And Then Do This Hot-Fix. And This Is Going On For Every [Windows] Release, So Some Have 2 Or 3 Service Packs, Many Hot-Fixes, And Many Security Fixes. Every One Of These Is A Managed Collection Of 50 Million Lines Of Code. It's A Pretty Big Accounting Issue."

Additionally, For Each Main Branch In Active Development, Microsoft Also Has Roughly 16 Team Level Branches To Allow Team Level Independence/Parallelism While Working On A Common Main Line Branch. Each Team Maintains A Complete Build Lab Environment That Builds An Entire Release Including The Team's Latest Changes And Periodically Integrates Their Tested Changes Back Into The Associated Main Branch So That Others Can See Their Tested Work.

Going To War: Triaging Bugs In The War Room

During The Mad Dash Towards Rtm, The Heartbeat Of The Project Is The War Room, Where The War Team Meets Two To Three Times Daily, Five Days A Week--Six Days A Week Now That Windows Server Is In Its Final Days Of Development. "The War Team Goes Over Reports And Metrics To See Where The Project Is At Every Day," Thompson Told Us, An Understated Explanation That Did Little To Prepare Us For The Horrors Of The War Room. "Everything Is Automated Now, But Back Then We Came In And Passed Around Paper Reports That Showed Us How We Were Doing. There Were, Maybe, 15 To 20 People In The Room. Now It's Very Different."

It Sure Is.

For Windows Server 2003, The War Room Is Run By Todd Wanke, Who We Eventually Found To Be An Amazingly Likeable Guy. However, In The Hour-Long War Room Sessions, Wanke Rules With An Iron Fist, Asking Trusted Lieutenants For Advice Here And There, But Moving The Process Inexorably Forward With Little Patience For Excuses Or, God Forbid, Product Team Members Who Don't Show Up For The Meeting .

Here's How It Works. Every Morning At 9:30 A.M., Representatives From Various Windows Server 2003 Feature Teams Meet To Triage Bugs. They File Into Conference Room 3243--Whose Exterior Sign Has Been Covered Up By A Handwritten Note That Reads "Argument Clinic"--In Building 26. There's A Large Conference Table In The Center Of The Room, But Most Of The Participants Have To Stand, And The Room Is Always Overflowing With People. On The Day We Attended A War Team Meeting--The First Time Any Outsiders Were Allowed To View The Inner Sanctum For Windows Server, And Only The Second Time Overall During The Entire Development Of Nt And Windows--The Team Progressed Through About 50 Bugs, Most Of Which Were Simple Branding Problems, Though I've Agreed Not To Discuss The Specifics Of Any Bugs Discussed That Day. (Because We Attended War Room Very Late In The Development Of The Product, And The Biggest Outstanding Issue Was The Last Minute Name-Change From Windows .Net Server 2003 To Windows Server 2003.)

Every Bug Is Logged In An Incredible Bug Tracking System, Each Accompanied By A Dizzying Array Of Information About How The Bug Was Found, Which Customers, If Any, Were Affected, And A Complete History Of The Efforts Made To Date To Eradicate The Problem. Wanke Moved Quickly Through The Bugs, Calling Out To Members Of Specific Feature Teams To Explain How The Fixes Were Progressing. If There Are One Or More Bugs In Iis, For Example, A Representative Of The Iis Team Needs To Be Present To Not Only Explain The Merits Of The Bug, But Whether Customers Are Affected, How The Fix Might Affect Other Parts Of The System, And How Soon It Will Be Fixed. This Late In The Development Process, Bugs Are Often Passed Along, Or "Punted," To The Next Windows Release--Longhorn--If They're Not Sufficiently Problematic.

The Atmosphere In War Room Is Intimidating, And I Spent Most Of My Time In The Room, Silent And Almost Cowering, Praying That Wanke Wouldn't Turn His Attention To Me Or My Group. Heated Argument And Cursing Are A Given In War Room, And The Penalty For Not Being On Top Of Your Bugs Is Swift And Cruel Ridicule From The Other Team Members. The Most Virulent Treatment, Naturally, Is Saved For Those Foolish Enough To Blow Off A War Room Meeting. On The Day I Attended, One Feature Group Had Four Of Its Bugs Punted To Longhorn Because They Had Failed To Shown Up For War Room. When Someone Argued That They Should Be Given Another Day, Wanke Simply Said, "F#$% 'Em. If It Was That Important, They Would Have Been Here. It's In Longhorn. Next Bug."

Once The Hour Long Meeting Was Over, We Sat Down And Spoke With Wanke, Who Was Almost A Completely Different Person In Private. "You Run A Mean Meeting, Todd," I Told Him, As We Sat Down. Wanke's Background Includes Stints With Ncr, America Honda And An Unspecified And Mysterious Sounding Security-Related Assignment As A Us Government Contractor, And He's Been With Microsoft For Nearly Eight Years. Before Joining The Windows Team, Wanke Was One Of The Original Architects Of The Microsoft.Com Web Site And He Spent Three Or Fours Years As An "Internet Guy" At The Company Before All Of Microsoft Found The Internet Religion. In Our Meeting, Wanke Explained How He Fell Into His New Job, What He Does Now At Microsoft, And How The War Team Works.

"My Job Is To Manage The Day-To-Day Operations With Regards To Shipping Windows," He Said. "I'm Responsible For 8000 To 10,000 Developers, Program Managers, And Testers, And I Have To Make Sure They're Doing The Right Things Every Day."

War Team, He Said, Consists Of A Very Broad Set Of People Within The Windows Team, All Of Whom Are Responsible For Different Areas Of The Project. They Are Test Leads With Responsibility For Such Things As Tcp-Ip And Other Low-Level Technologies, Some Developers, People That Do The Build Every Day, People That Do Build Verification Tests, And Others. "Every Area Of The Project Is Represented," He Told Us. "The Daily Marching Orders [For The Windows Server Team] Come From War Team, And Also From The Broad Mails I Send Out. These Emails Are Almost Always Microsoft Confidential, Or Even Higher Than That, Emails That Are Very Confidential And Sent Only To A Much Smaller Group Of People."

As We Witnessed, War Room Is A Very Structured Event, Occurring At The Same Time Every Day And Lasting Exactly One Hour. The Team Members Look At The Same Bug System Every Day, And Often Go Over The Same Bugs Until They Are Fixed. "If You're Not There, It's Not Good," He Said. "Microsoft People Have A Strong Sense Of Ownership For The Product And They Want To Make Sure The Right Thing Is Happening. But If People Aren't There, I Lay Into Them. I'm The rear end Kicker."

In Addition To The Morning War Room Meeting, The Windows Server Team Holds An Afternoon Meeting From 2 To 3 P.M. And, If Needed, Another One From 5 To 6 P.M. The Daily Build Usually Starts At 4:30, But Can Be Delayed To 6, So This Last Meeting Gives The Team A Chance To Go Over Any Final Bug Fixes That Will Be Added To That Day's Build. "The Structure Is Very Important," He Said, "And We Need To Know Where The Build Is At All Times. We Look At The Quality Of The Build, Various Stress Levels, And All Of The Things That Run Overnight, Anything That We Need To Follow-Up On. We Get Detailed Reports, And Review Everything That Goes Into The Project."

In Addition To The Main War Team, Each Of The Feature Teams Have Their Own War Rooms, So There Could Be As Many As 50 Such Meetings Each Day, Each Going Over A Specific Component Of The System. These Other War Room Meetings Occur At 8 A.M., Every Day. When A Bug Fix Passes The Local War Team Process, It's Introduced At Wanke's Meeting. "They Can't Come Into War Room Unless They're Fix-Ready," Wanke Said. "They Must Be Fix-Ready." Because There Isn't A Single Person Making Decisions, There Is A System Of Checks And Balances Through Which Each Bug Fix Passes Before It's Introduced Into The Build.

The Complexities Of Building Windows Are Staggering. "To Simplify Things, Let's Say Windows Consists Of 100,000 Files," He Said. "Usually, There Are Seven Source Code Depots, Each Containing An Exact Replica Of All Of The Sources, Though At This Point, We're Down To Just One. Every Development Group Has Its Own Depot, So That When A Developer Writes A Fix, He Can Compile It Into The Depot For Testing. If The Build Compiles Locally With His Fix, They Can Test It There And Then Check It Into The Main Depot In The Main Build Lab."

Not Every Build Is Successful, Of Course. Occasionally, Windows Server Suffers From What Microsoft Calls "Build On The Floor," When A Fix Breaks Some Other Part Of The System, Rendering The Build Unusable. "That's Brutal," Wanke Told Us. "There Was A Point About A Year Ago, When We Didn't Get A Build Out For Seven Days. We Had To Send An Email To The Product Group Executives At The Company Explaining The Problem," And The Company Entered Into Its Private Version Of Defcon-5. "All The Red Flags Went Up," He Said. "It's Very Ingrained In The Developers Not To Break The Build. They Do Their Fix, Do A Buddy Build, And Then Check It In. But They Can't Go Home. We've Sent Out Calls At 3 A.M. When The Build Is Broken, Find The Developer That Broke It, And Get Him Into Work Right Then And Fix It Immediately. The Developers Are On Call 24 Hours A Day. There's Definitely An Escalation Process. A Broken Build Is Considered A Critical, Severity-1 Problem."

As The Windows Server 2003 Development Cycle Wound Down, The Bug Count Fell Dramatically, And The Process Was Getting Simpler Each Day. And Then Microsoft Announced The Name Change. "We Just Have To Live With That Poor Decision," He Told Us. "They Should Have Made It Six Months Ago. Back Then, We All Agreed It Was The Right Thing To Do. But At This Late Stage--They Brought In [Ceo] Steve Ballmer To Talk With All The War Teamers About Why We Made The Change." The Speed At Which The Team Was Able To Fix All Of The Branding Graphics, Text, And Registry Entries In The System Is A Testament To The Company's Dynamic Process For Fixing Bugs, Wanke Said. The Problem Was That Several Thousand Changes Needed To Be Made, And That Would Normally Require Several Thousand New Entries In The Product's Bug Tracking System. "I Went Out And Handpicked The Three Best Developers On The Team And Said, 'Just Go And Fix It.' One Developer Fixed Over 7,000 References To [Windows] .Net Server. Let's Just Say That There Are People I Trust, And People I Don't Trust. I Told These Guys, 'Don't Tell Me What You're Doing. Just Do It.'"

Entering The Home Stretch

On The Day That We Attended War Room, On January 21, 2003, Windows Server 2003 Had Hit An "Absolute Historic Low" For Bugs, According To Wanke. "We're Shutting Down The Project This Week," He Said. "It's Done. We're Going To Ship It." On That Day, Winserver 2K3 Had Just A Few Active Bugs, And At Least A Quarter To One-Third Of Those Bugs Were Simple Branding Issues. "So Let's Say There Are About 150 Outstanding Issues To Address," Wanke Told Us. "Of That, We'll Fix About 100. All Of The Bugs Are Severity Rated From 1 To 3, Plus They Get A Priority Rating. We Have [A Few] Severity-1 Bugs Left To Fix, And Those All Have To Be Fixed For Us To Ship."

Wanke Said That The Server Team Had Already Fixed All Of The Known Security Vulnerabilities. "We're Very Happy About Security," He Said. "It's Fun To See Where We Are [With Security]. I'm Personally Very Impressed With The Work That Went Into It, The Fixes And The Thought Process. We All Think It's Very Secure. The [Trustworthy Computing] Security Push [Last Year] Was A Big Milestone For Us, And Everything Will Be Easier Going Forward Because Of It. It's Easier On The Developers Because They All Have The Same Mindset And Goals Now, The Same Education About Best Practices. There Used To Be Different Methodologies Between Different Groups. The Security Pushed Unified It. Now It's Easier For Everyone To Communicate And See The End Goal."

With The Completion Of Windows Server 2003 Development, The Development Team Will Enter A Transitional Period. First, The Product Will Enter Escrow, And The Build Process Will Be Frozen. That Build Is Then Deployed Around The Campus, Including Microsoft's Corporate Infrastructure. "That Is The Final Build," Wanke Noted. "Then We Sit On It For A Period Of Time, During Which There Are No Core Fixes Made To The Product." The Escrow Build Will Also Be Handed Out To Testers And Jdp Members, He Said."

If Any Issues Do Arise During The Escrow Period, The War Team Makes Case-By-Case Decisions About Whether To Fix The Bugs. If A But Necessitates A Kernel Fix, A New Build Will Be Created, And Escrow Is Reset. "A Change To A Core Component Could Delay Rtm," Wanke Told Us. "We Run It Prior To Asking Customers To, And Have To Run It A Number Of Days Before Signing Off On It. It's A Long Haul." Every Feature Team Working On Windows Server 2003 Must Run The Escrow Build For 21 Days Without Restarting Before The Build Can Be Declared Golden Master And Released To Manufacturing.

But Wanke Isn't Worried About The Exact Schedule, As The Outcome Is Finally A Foregone Conclusion After Years Of Work. His Team Is Now Preparing It's Rtm Party--Outside On One Of The Campus' Many Soccer Fields, Weather Permitting; Inside A Garage If Not--And Wanke Has Other Rtm-Related Concerns He Must Address, Including The Launch Venue. "I'm Working With The Launch Team To Book A Venue," He Said. "They Need 95 Percent Confidence Dates." They're Also Talking To Oems To Ensure Systems Are Ready For Launch, Isvs, Marketing Folks For Signs And Posters, And So On. "And I Have To Make Sure That The 8000 People Who Deserve A Ship Award Get One," He Added.

In The End, All This Dedication Will Result In The Most Secure And Reliable Operating System Microsoft Has Ever Created, And It's Impossible To Overstate Wanke's Contribution To This Project. "I Basically Haven't Missed A Single War Team In A Year And A Half, Give Or Take A Day Or So For Personal Reasons," He Said, "Every Day, Six Days A Week At The End Of The Schedule. We Let People Bring Their Kids In On Saturdays, It's A Family Day. There's No Swearing Allowed On Saturdays. But You Still Have To Be There, And We Still Have To Make A Build."

So Would Wanke Run War Team On A Future Windows Version?

"No Way," He Said, Laughing. "No Way."

On To Part Three...

In Part Three Of Windows Server 2003: The Road To Gold, I Take A Look At Testing Windows.

pram
Jun 10, 2001

AWWNAW posted:

One Element About The Nt Family Of Operating Systems--Which Evolved From Windows Nt To Windows 2000, Xp, And, Now, Windows Server 2003--That Has Remained Unchanged Over The Years, Though The Details Have Changed Dramatically, Is The Build Process. Somewhere Deep In The Bowels Of Microsoft, Virtually Every Day, At Least One Windows Product Is Compiled, Or Built, Into Executable Code That Can Be Tested Internally By The Dev, Or Development Teams. For Windows Server 2003, This Process Is Consummated In Building 26 On Microsoft's Sprawling Redmond Campus, Where Banks Of Pcs And Cd Duplicating Machines Churn Almost Constantly Under The Watchful Eyes Of Several Engineers.

The Details Of Nt--Excuse Me, Windows--Development Have Changed Dramatically Since The Project First Started In The Late 1980'S. "Back In The Early Days, We Started With 6 People," Microsoft Distinguished Engineer And Windows Server Architect Mark Lucovsky Told Me. "Now There Are 5000 Member Of The Windows Team, Plus An Additional 5000 Contributing Partners, Generating Over 50 Million Lines Of Code For Windows Server 2003. Getting All Those People Going In The Same Direction, Cranking Out Code, Is An Enormous Task. Building The Results Of Their Work, Compiling And Linking It Into The Executable And Other Components That Make Up A Windows Cd Is A 12 To 13 Hour Process That Is Done Every Day Of The Week. It's The Biggest Software Engineering Task Ever Attempted. There Are No Other Software Projects Like This." And Microsoft Compiles The Whole Thing--All 50+ Million Lines Of Code, Almost Every Single Day, He Said. "We're Evolving The Development Environment All The Time," Lucovsky Noted.
"When We Turn The Crank, We Compile The Whole Thing," He Said. "We Have To Be Able To Reproduce The System At Any Point In Time As Well. So Developers Check In Code, We Press A Button, And Out Comes A System. We Should Be Able To Reproduce That [Build] Three Years In The Future, Using The Various Tools, Compilers, And Scripts We Used At That Time."

David Thompson, Corporate Vice President Of The Windows Server Product Group At Microsoft, Elaborated On The Process. "The Key Here Is That We Built Up The System Over The Years, Advancing It In Three Dimensions," He Said. "First Is The Product Itself. Second Is The Way We Engineer The Product. And Third Is The Way We Interact With A Broader And Broader Set Of Customers. The Product Evolution Is Pretty Straightforward. The Source Code Control System We Use Now Is New, Because We Really Pushed The Scale Of The Previous Version With Windows 2000. Mark [Lucovsky] Personally Lead The Development Of The New System And Introduced It Post-2000. We Started With Some Acquired Technology. We Now Do Have A Staged Build [For The First Time]. But Every Day The [Staged Builds] Are Rolled Up Into The Total Build. So We Can Scale But Maintain Stability--We Know Where We Stand Every Day."

Just Eat It: Microsoft Serves Up Dog Food

Lucovsky Reminisced A Bit About The Early Days, When The First Nt Prototypes Were Built In His Office With Only A Single Person Overseeing The Process. That Person Would Simply Send Out An Email To The Nt Team When A New Build Was Ready, And Then 50 People Or So Would "Eat Their Own Dog Food," Testing The Build On Their Own Systems And Run Stress Tests. "I Used To Just Walk Around The Building And Write Down The Problems We Found," Lucovsky Said. "That's How It Was Pre-Nt 3.51. Now We Have 7 Builds Labs. Dave [Thompson] Has His Own [Build Lab] For The 1200 People He Oversees. The Main Build Lab Cranks Out The Official Build, Which Goes Out To Thousands Of People Daily. Notification Is Automatic, And Is Sent Out In Multiple Stages Using The Backbone Servers Across The Campus. It's All Automated. Those Little Things Have Now Scaled Up."

"Originally, We Had A Certain Time Of Day [Up To Which Time] We Could Check Code In And Then We Stopped," Thompson Said. "After That, We Threw The Switch And Built The New System. Eventually, We Grew The Team To 85 People And Serialized The Process For More Control. [Nt Architect] Dave Cutler--Who We All Worked For---Ran The Build Lab For About A Week, And He Required People To Personally Write Their Check-In Requests On A Whiteboard In The Lab. He Forced It Into A Mold. I Sat In There For A While Too. One Day I Accepted 85 Check-Ins, The Most We Had Ever Had To That Point. Now We Can Take In Over 1000 Every Day. It's A Completely Different Scale. Even The Whiteboard Is Electronic--Web Based, Actually--Now."

"There Are No Other Software Projects Like This," Lucovsky Said, "But The One Thing That's Remained Constant [Over The Years] Is How Long It Takes To Build [Windows]. No Matter Which Generation Of The Product, It Takes 12 Hours To Compile And Link The System." Even With The Increase In Processing Horsepower Over The Years, Windows Has Grown To Match, And The Development Process Has Become Far More Sophisticated, So That Microsoft Does More Code Analysis As Part Of The Daily Build. "The Cpus In The Build Lab Are Pegged Constantly For 12 Hours," He Said. "We've Adapted The Process Since Windows 2000. Now, We Decompose The Source [Code] Tree Into Independent Source Trees, And Use A New Build Environment. It's A Multi-Machine Environment That Lets Us Turn The Crank Faster. But Because Of All The New Code Analysis, It Still Takes 12 Hours."
Dogfooding Their Code Has Always Been A Key Requirement Of The Nt Team, Thompson Told Me, And An Integral Component Of Microsoft's Culture. "This Is One Of The Things We've Always Done, Back To The Earliest Days," He Said. "We Were Just Joking About This Today, Actually, Talking About Our Email Program. Back When We First Got Nt Running On Desktop [Pcs], Our Email Program Wouldn't Run Because It Was A Dos Application, And We Didn't Have Dos Compatibility Mode Working Yet. So I Ported Our Internal Email App, Wizmail, To Win32 So We Would Be Able To Use Only Nt Systems."

"When You Are Forced To Use The System Yourself, You See Bugs And You See The Performance Issues," Thompson Added. "And You'd Go And Find The Person Responsible For The Problem And Ask Them To Fix It." One Of Thompson's Primary Responsibilities When He Joined The Nt Team Was To Deliver The File Server Over To Nt So That It Could Be Used As The Source Code Server. That Required A Moment Of Faith, Especially Since Nt Was Then Using A Prototype Version Of The Ntfs File System. "The Networking Group Took This Very Seriously," He Said, "And Made Sure It Was Ready For Internal Deployment. Once It Was Rolled Out, We Never Backed Away. Obviously, If The File Server Goes Down, It's A Disaster. So It Was A Big Moment For Us, Getting Over That Hump."

Later, As The Development Of Windows Nt 4.0 Wound Down, Thompson's Team Took On Active Directory (Ad), Microsoft's First Directory Service, Which Debuted Publicly At The Professional Developers Conference (Pdc) In 1996. "Before Ad We Had Nt Domains For Our Infrastructure," He Said, "And Going To Ad Was Even More Complex. We Deployed Ad Very Early, First With Our Team, And Then The Wider Windows Group. Then We Threw The Switch On Redmond [Campus] Ad In April 1999."

Microsoft Rolled Out Ad To The Rest Of The Company In Stages, Thompson Said, Using Careful Planning. The Campus Went To A Multi-Forest Ad Topology With Windows Server 2003 Last Year. "With All Of The Infrastructure Servers, We Always Do A Complete Deployment Internally, Then Push It Out To The Jdp (Joint Development Partners), Who Test And Deploy It In Production In Over 250 Usage Scenarios. We Get Bug Reports, Feature Feedback, And Complex Scenario Testing That Really Proves The Product."

Windows Server 2003 Hit 99.995 Percent Availability At The Release Candidate 1 (Rc1) Stage Last Summer, And The Microsoft.Com Web Site Was Fully Deployed On Winserver 2K3 When Rc2 Rolled Out In November 2002. "Heavy Usage Internally And By Close Customers Is Key," Thompson Told Me, "And We Have A More Mature View Of What The Product Is Now [Compared To The Early Days]. We're Not Just Shipping Bits In A Box, But Are Also Shipping A Wide Range Of Complementary Tools, Products, Services, And Documentation." And Thompson Explained That The Teams Working On Outlook 11, Exchange Server 2003 ("Titanium") And Windows Server 2003 Are All Working Much More Closely Together To Implement Complete End-To-End Scenarios That Meet Customer Needs. In The Past, These Products Were Often Developed More Independently.

Are You Being Served? A Look At Product Maintenance

"Servicing Has Definitely Matured Over The Years," Lucovsky Added. "We Do A Lot Of Work Figuring Out The Right Mix Of Service Packs, Hot-Fixes, [Product] Development Branches, Betas, And Jdp Customers For Each Product." (More Information About Development Branches Can Be Found In The Next Section.)

"We've Really Extended The Time That We Service Our Products," Thompson Said, Because When Microsoft Ships A Server Product, Customers May Use It For Up To Ten Years. So-Called Volume, Or Mainstream, Service Lasts Seven Years, But The Company Has Constantly Evolved The Way It Supplies Updates And Fixes Over Time. First, Microsoft Has To Be Sure That Bug Fixes Are Applied To All Of The Applicable Development Branches. "Our Work In Rapidly Addressing Security Vulnerabilities Means That We Now Aggressively Issue Hot-Fixes When We Can," Thompson Noted. "As Well, It Used To Be That [Service Packs] Were Flexible, A Way That We Could Deliver Features As Well As Fixes. But Customers Made It Clear That They Wanted Bug Fixes Only [In Service Packs]. That Leads To An Interesting Question, Though: What, Exactly, Is A Bug? Is A Missing Feature A Bug? Customers Often Have Different Views Themselves. But [Windows] Nt 4 Sp3 Was The End [Of Major New Features In Services Packs].

One Side Effect Of Trunk Servicing Is That Microsoft Must Maintain Test Environments For Every Permutation Of Its Recent Operating Systems. That Means That The Final, Or "Gold" Release Of Windows 2000 Is One Branch, Windows 2000 Sp1 Is Another, Windows 2000 Sp2 Is Another, And So On. "And Dogfooding Is Important To Providing Service Packs, Too. In Our It Organization, We Maintain A [Separate] Windows 2000 Infrastructure Just So We Can Do Live Rollouts To Windows 2000 Systems And Test Them In A Production Situation," Thompson Said. "It's A Big Expense, But Worth It."

Hot-Fixes Are Treated As Narrow Releases That Should Fix Only One Specific Problem And Not Affect Other Parts Of The System. Thompson Said That Customers Should Generally Only Apply A Hot-Fix If They're Affected By The Problem The Fix Addresses. However, Security Fixes Are Another Issue Altogether. "We Expect All Of Our Customers To Install The Security Fixes," He Said, "So We Are Very Careful With Them, And Do The Right Kind Of Testing. They Are Generally Deployable Releases (Gdrs), Just Like Service Packs."

Trunks, Trees And Branches

As Noted Earlier, The Various Windows Versions Require A Series Of Product Development Code Forks, Where Each Different Windows Product "Branches" Off The Main Development "Trunk" Over Time. So Each Windows Release Builds Off The Last, And At Least Two Different Versions--Windows Server 2003 And Longhorn, At The Time Of This Writing--Are In Simultaneously Development. Because Winserver 2K3 Was Split From Xp, The Server Product Basically Builds On Xp. Longhorn, A Client Release That Will Succeed Xp In A Few Years, Is Actually Building Off The Server Branch Code Base, And Not Xp As You Might Expect.



"The Mechanics Of Doing This Are Mind-Numbing," Lucovsky Told Me. "We Have A Main Branch Of Code For The Current Windows Version, And That Branch Becomes The Source Base For Hot-Fixes And The Next Service Pack. Once We Spit Out A Service Pack, That Becomes A Branch And Now We Have Two Branches We Have To Test For Hot-Fixes And Service Packs. We Can't Tell Customers To Install, Say, Sp1 And Then Do This Hot-Fix. And This Is Going On For Every [Windows] Release, So Some Have 2 Or 3 Service Packs, Many Hot-Fixes, And Many Security Fixes. Every One Of These Is A Managed Collection Of 50 Million Lines Of Code. It's A Pretty Big Accounting Issue."

Additionally, For Each Main Branch In Active Development, Microsoft Also Has Roughly 16 Team Level Branches To Allow Team Level Independence/Parallelism While Working On A Common Main Line Branch. Each Team Maintains A Complete Build Lab Environment That Builds An Entire Release Including The Team's Latest Changes And Periodically Integrates Their Tested Changes Back Into The Associated Main Branch So That Others Can See Their Tested Work.

Going To War: Triaging Bugs In The War Room

During The Mad Dash Towards Rtm, The Heartbeat Of The Project Is The War Room, Where The War Team Meets Two To Three Times Daily, Five Days A Week--Six Days A Week Now That Windows Server Is In Its Final Days Of Development. "The War Team Goes Over Reports And Metrics To See Where The Project Is At Every Day," Thompson Told Us, An Understated Explanation That Did Little To Prepare Us For The Horrors Of The War Room. "Everything Is Automated Now, But Back Then We Came In And Passed Around Paper Reports That Showed Us How We Were Doing. There Were, Maybe, 15 To 20 People In The Room. Now It's Very Different."

It Sure Is.

For Windows Server 2003, The War Room Is Run By Todd Wanke, Who We Eventually Found To Be An Amazingly Likeable Guy. However, In The Hour-Long War Room Sessions, Wanke Rules With An Iron Fist, Asking Trusted Lieutenants For Advice Here And There, But Moving The Process Inexorably Forward With Little Patience For Excuses Or, God Forbid, Product Team Members Who Don't Show Up For The Meeting .

Here's How It Works. Every Morning At 9:30 A.M., Representatives From Various Windows Server 2003 Feature Teams Meet To Triage Bugs. They File Into Conference Room 3243--Whose Exterior Sign Has Been Covered Up By A Handwritten Note That Reads "Argument Clinic"--In Building 26. There's A Large Conference Table In The Center Of The Room, But Most Of The Participants Have To Stand, And The Room Is Always Overflowing With People. On The Day We Attended A War Team Meeting--The First Time Any Outsiders Were Allowed To View The Inner Sanctum For Windows Server, And Only The Second Time Overall During The Entire Development Of Nt And Windows--The Team Progressed Through About 50 Bugs, Most Of Which Were Simple Branding Problems, Though I've Agreed Not To Discuss The Specifics Of Any Bugs Discussed That Day. (Because We Attended War Room Very Late In The Development Of The Product, And The Biggest Outstanding Issue Was The Last Minute Name-Change From Windows .Net Server 2003 To Windows Server 2003.)

Every Bug Is Logged In An Incredible Bug Tracking System, Each Accompanied By A Dizzying Array Of Information About How The Bug Was Found, Which Customers, If Any, Were Affected, And A Complete History Of The Efforts Made To Date To Eradicate The Problem. Wanke Moved Quickly Through The Bugs, Calling Out To Members Of Specific Feature Teams To Explain How The Fixes Were Progressing. If There Are One Or More Bugs In Iis, For Example, A Representative Of The Iis Team Needs To Be Present To Not Only Explain The Merits Of The Bug, But Whether Customers Are Affected, How The Fix Might Affect Other Parts Of The System, And How Soon It Will Be Fixed. This Late In The Development Process, Bugs Are Often Passed Along, Or "Punted," To The Next Windows Release--Longhorn--If They're Not Sufficiently Problematic.

The Atmosphere In War Room Is Intimidating, And I Spent Most Of My Time In The Room, Silent And Almost Cowering, Praying That Wanke Wouldn't Turn His Attention To Me Or My Group. Heated Argument And Cursing Are A Given In War Room, And The Penalty For Not Being On Top Of Your Bugs Is Swift And Cruel Ridicule From The Other Team Members. The Most Virulent Treatment, Naturally, Is Saved For Those Foolish Enough To Blow Off A War Room Meeting. On The Day I Attended, One Feature Group Had Four Of Its Bugs Punted To Longhorn Because They Had Failed To Shown Up For War Room. When Someone Argued That They Should Be Given Another Day, Wanke Simply Said, "F#$% 'Em. If It Was That Important, They Would Have Been Here. It's In Longhorn. Next Bug."

Once The Hour Long Meeting Was Over, We Sat Down And Spoke With Wanke, Who Was Almost A Completely Different Person In Private. "You Run A Mean Meeting, Todd," I Told Him, As We Sat Down. Wanke's Background Includes Stints With Ncr, America Honda And An Unspecified And Mysterious Sounding Security-Related Assignment As A Us Government Contractor, And He's Been With Microsoft For Nearly Eight Years. Before Joining The Windows Team, Wanke Was One Of The Original Architects Of The Microsoft.Com Web Site And He Spent Three Or Fours Years As An "Internet Guy" At The Company Before All Of Microsoft Found The Internet Religion. In Our Meeting, Wanke Explained How He Fell Into His New Job, What He Does Now At Microsoft, And How The War Team Works.

"My Job Is To Manage The Day-To-Day Operations With Regards To Shipping Windows," He Said. "I'm Responsible For 8000 To 10,000 Developers, Program Managers, And Testers, And I Have To Make Sure They're Doing The Right Things Every Day."

War Team, He Said, Consists Of A Very Broad Set Of People Within The Windows Team, All Of Whom Are Responsible For Different Areas Of The Project. They Are Test Leads With Responsibility For Such Things As Tcp-Ip And Other Low-Level Technologies, Some Developers, People That Do The Build Every Day, People That Do Build Verification Tests, And Others. "Every Area Of The Project Is Represented," He Told Us. "The Daily Marching Orders [For The Windows Server Team] Come From War Team, And Also From The Broad Mails I Send Out. These Emails Are Almost Always Microsoft Confidential, Or Even Higher Than That, Emails That Are Very Confidential And Sent Only To A Much Smaller Group Of People."

As We Witnessed, War Room Is A Very Structured Event, Occurring At The Same Time Every Day And Lasting Exactly One Hour. The Team Members Look At The Same Bug System Every Day, And Often Go Over The Same Bugs Until They Are Fixed. "If You're Not There, It's Not Good," He Said. "Microsoft People Have A Strong Sense Of Ownership For The Product And They Want To Make Sure The Right Thing Is Happening. But If People Aren't There, I Lay Into Them. I'm The rear end Kicker."

In Addition To The Morning War Room Meeting, The Windows Server Team Holds An Afternoon Meeting From 2 To 3 P.M. And, If Needed, Another One From 5 To 6 P.M. The Daily Build Usually Starts At 4:30, But Can Be Delayed To 6, So This Last Meeting Gives The Team A Chance To Go Over Any Final Bug Fixes That Will Be Added To That Day's Build. "The Structure Is Very Important," He Said, "And We Need To Know Where The Build Is At All Times. We Look At The Quality Of The Build, Various Stress Levels, And All Of The Things That Run Overnight, Anything That We Need To Follow-Up On. We Get Detailed Reports, And Review Everything That Goes Into The Project."

In Addition To The Main War Team, Each Of The Feature Teams Have Their Own War Rooms, So There Could Be As Many As 50 Such Meetings Each Day, Each Going Over A Specific Component Of The System. These Other War Room Meetings Occur At 8 A.M., Every Day. When A Bug Fix Passes The Local War Team Process, It's Introduced At Wanke's Meeting. "They Can't Come Into War Room Unless They're Fix-Ready," Wanke Said. "They Must Be Fix-Ready." Because There Isn't A Single Person Making Decisions, There Is A System Of Checks And Balances Through Which Each Bug Fix Passes Before It's Introduced Into The Build.

The Complexities Of Building Windows Are Staggering. "To Simplify Things, Let's Say Windows Consists Of 100,000 Files," He Said. "Usually, There Are Seven Source Code Depots, Each Containing An Exact Replica Of All Of The Sources, Though At This Point, We're Down To Just One. Every Development Group Has Its Own Depot, So That When A Developer Writes A Fix, He Can Compile It Into The Depot For Testing. If The Build Compiles Locally With His Fix, They Can Test It There And Then Check It Into The Main Depot In The Main Build Lab."

Not Every Build Is Successful, Of Course. Occasionally, Windows Server Suffers From What Microsoft Calls "Build On The Floor," When A Fix Breaks Some Other Part Of The System, Rendering The Build Unusable. "That's Brutal," Wanke Told Us. "There Was A Point About A Year Ago, When We Didn't Get A Build Out For Seven Days. We Had To Send An Email To The Product Group Executives At The Company Explaining The Problem," And The Company Entered Into Its Private Version Of Defcon-5. "All The Red Flags Went Up," He Said. "It's Very Ingrained In The Developers Not To Break The Build. They Do Their Fix, Do A Buddy Build, And Then Check It In. But They Can't Go Home. We've Sent Out Calls At 3 A.M. When The Build Is Broken, Find The Developer That Broke It, And Get Him Into Work Right Then And Fix It Immediately. The Developers Are On Call 24 Hours A Day. There's Definitely An Escalation Process. A Broken Build Is Considered A Critical, Severity-1 Problem."

As The Windows Server 2003 Development Cycle Wound Down, The Bug Count Fell Dramatically, And The Process Was Getting Simpler Each Day. And Then Microsoft Announced The Name Change. "We Just Have To Live With That Poor Decision," He Told Us. "They Should Have Made It Six Months Ago. Back Then, We All Agreed It Was The Right Thing To Do. But At This Late Stage--They Brought In [Ceo] Steve Ballmer To Talk With All The War Teamers About Why We Made The Change." The Speed At Which The Team Was Able To Fix All Of The Branding Graphics, Text, And Registry Entries In The System Is A Testament To The Company's Dynamic Process For Fixing Bugs, Wanke Said. The Problem Was That Several Thousand Changes Needed To Be Made, And That Would Normally Require Several Thousand New Entries In The Product's Bug Tracking System. "I Went Out And Handpicked The Three Best Developers On The Team And Said, 'Just Go And Fix It.' One Developer Fixed Over 7,000 References To [Windows] .Net Server. Let's Just Say That There Are People I Trust, And People I Don't Trust. I Told These Guys, 'Don't Tell Me What You're Doing. Just Do It.'"

Entering The Home Stretch

On The Day That We Attended War Room, On January 21, 2003, Windows Server 2003 Had Hit An "Absolute Historic Low" For Bugs, According To Wanke. "We're Shutting Down The Project This Week," He Said. "It's Done. We're Going To Ship It." On That Day, Winserver 2K3 Had Just A Few Active Bugs, And At Least A Quarter To One-Third Of Those Bugs Were Simple Branding Issues. "So Let's Say There Are About 150 Outstanding Issues To Address," Wanke Told Us. "Of That, We'll Fix About 100. All Of The Bugs Are Severity Rated From 1 To 3, Plus They Get A Priority Rating. We Have [A Few] Severity-1 Bugs Left To Fix, And Those All Have To Be Fixed For Us To Ship."

Wanke Said That The Server Team Had Already Fixed All Of The Known Security Vulnerabilities. "We're Very Happy About Security," He Said. "It's Fun To See Where We Are [With Security]. I'm Personally Very Impressed With The Work That Went Into It, The Fixes And The Thought Process. We All Think It's Very Secure. The [Trustworthy Computing] Security Push [Last Year] Was A Big Milestone For Us, And Everything Will Be Easier Going Forward Because Of It. It's Easier On The Developers Because They All Have The Same Mindset And Goals Now, The Same Education About Best Practices. There Used To Be Different Methodologies Between Different Groups. The Security Pushed Unified It. Now It's Easier For Everyone To Communicate And See The End Goal."

With The Completion Of Windows Server 2003 Development, The Development Team Will Enter A Transitional Period. First, The Product Will Enter Escrow, And The Build Process Will Be Frozen. That Build Is Then Deployed Around The Campus, Including Microsoft's Corporate Infrastructure. "That Is The Final Build," Wanke Noted. "Then We Sit On It For A Period Of Time, During Which There Are No Core Fixes Made To The Product." The Escrow Build Will Also Be Handed Out To Testers And Jdp Members, He Said."

If Any Issues Do Arise During The Escrow Period, The War Team Makes Case-By-Case Decisions About Whether To Fix The Bugs. If A But Necessitates A Kernel Fix, A New Build Will Be Created, And Escrow Is Reset. "A Change To A Core Component Could Delay Rtm," Wanke Told Us. "We Run It Prior To Asking Customers To, And Have To Run It A Number Of Days Before Signing Off On It. It's A Long Haul." Every Feature Team Working On Windows Server 2003 Must Run The Escrow Build For 21 Days Without Restarting Before The Build Can Be Declared Golden Master And Released To Manufacturing.

But Wanke Isn't Worried About The Exact Schedule, As The Outcome Is Finally A Foregone Conclusion After Years Of Work. His Team Is Now Preparing It's Rtm Party--Outside On One Of The Campus' Many Soccer Fields, Weather Permitting; Inside A Garage If Not--And Wanke Has Other Rtm-Related Concerns He Must Address, Including The Launch Venue. "I'm Working With The Launch Team To Book A Venue," He Said. "They Need 95 Percent Confidence Dates." They're Also Talking To Oems To Ensure Systems Are Ready For Launch, Isvs, Marketing Folks For Signs And Posters, And So On. "And I Have To Make Sure That The 8000 People Who Deserve A Ship Award Get One," He Added.

In The End, All This Dedication Will Result In The Most Secure And Reliable Operating System Microsoft Has Ever Created, And It's Impossible To Overstate Wanke's Contribution To This Project. "I Basically Haven't Missed A Single War Team In A Year And A Half, Give Or Take A Day Or So For Personal Reasons," He Said, "Every Day, Six Days A Week At The End Of The Schedule. We Let People Bring Their Kids In On Saturdays, It's A Family Day. There's No Swearing Allowed On Saturdays. But You Still Have To Be There, And We Still Have To Make A Build."

So Would Wanke Run War Team On A Future Windows Version?

"No Way," He Said, Laughing. "No Way."

On To Part Three...

In Part Three Of Windows Server 2003: The Road To Gold, I Take A Look At Testing Windows.

cool

Dixie Cretin Seaman
Jan 22, 2008

all hat and one catte
Hot Rope Guy

AWWNAW posted:

One Element About The Nt Family Of Operating Systems--Which Evolved From Windows Nt To Windows 2000, Xp, And, Now, Windows Server 2003--That Has Remained Unchanged Over The Years, Though The Details Have Changed Dramatically, Is The Build Process. Somewhere Deep In The Bowels Of Microsoft, Virtually Every Day, At Least One Windows Product Is Compiled, Or Built, Into Executable Code That Can Be Tested Internally By The Dev, Or Development Teams. For Windows Server 2003, This Process Is Consummated In Building 26 On Microsoft's Sprawling Redmond Campus, Where Banks Of Pcs And Cd Duplicating Machines Churn Almost Constantly Under The Watchful Eyes Of Several Engineers.

The Details Of Nt--Excuse Me, Windows--Development Have Changed Dramatically Since The Project First Started In The Late 1980'S. "Back In The Early Days, We Started With 6 People," Microsoft Distinguished Engineer And Windows Server Architect Mark Lucovsky Told Me. "Now There Are 5000 Member Of The Windows Team, Plus An Additional 5000 Contributing Partners, Generating Over 50 Million Lines Of Code For Windows Server 2003. Getting All Those People Going In The Same Direction, Cranking Out Code, Is An Enormous Task. Building The Results Of Their Work, Compiling And Linking It Into The Executable And Other Components That Make Up A Windows Cd Is A 12 To 13 Hour Process That Is Done Every Day Of The Week. It's The Biggest Software Engineering Task Ever Attempted. There Are No Other Software Projects Like This." And Microsoft Compiles The Whole Thing--All 50+ Million Lines Of Code, Almost Every Single Day, He Said. "We're Evolving The Development Environment All The Time," Lucovsky Noted.
"When We Turn The Crank, We Compile The Whole Thing," He Said. "We Have To Be Able To Reproduce The System At Any Point In Time As Well. So Developers Check In Code, We Press A Button, And Out Comes A System. We Should Be Able To Reproduce That [Build] Three Years In The Future, Using The Various Tools, Compilers, And Scripts We Used At That Time."

David Thompson, Corporate Vice President Of The Windows Server Product Group At Microsoft, Elaborated On The Process. "The Key Here Is That We Built Up The System Over The Years, Advancing It In Three Dimensions," He Said. "First Is The Product Itself. Second Is The Way We Engineer The Product. And Third Is The Way We Interact With A Broader And Broader Set Of Customers. The Product Evolution Is Pretty Straightforward. The Source Code Control System We Use Now Is New, Because We Really Pushed The Scale Of The Previous Version With Windows 2000. Mark [Lucovsky] Personally Lead The Development Of The New System And Introduced It Post-2000. We Started With Some Acquired Technology. We Now Do Have A Staged Build [For The First Time]. But Every Day The [Staged Builds] Are Rolled Up Into The Total Build. So We Can Scale But Maintain Stability--We Know Where We Stand Every Day."

Just Eat It: Microsoft Serves Up Dog Food

Lucovsky Reminisced A Bit About The Early Days, When The First Nt Prototypes Were Built In His Office With Only A Single Person Overseeing The Process. That Person Would Simply Send Out An Email To The Nt Team When A New Build Was Ready, And Then 50 People Or So Would "Eat Their Own Dog Food," Testing The Build On Their Own Systems And Run Stress Tests. "I Used To Just Walk Around The Building And Write Down The Problems We Found," Lucovsky Said. "That's How It Was Pre-Nt 3.51. Now We Have 7 Builds Labs. Dave [Thompson] Has His Own [Build Lab] For The 1200 People He Oversees. The Main Build Lab Cranks Out The Official Build, Which Goes Out To Thousands Of People Daily. Notification Is Automatic, And Is Sent Out In Multiple Stages Using The Backbone Servers Across The Campus. It's All Automated. Those Little Things Have Now Scaled Up."

"Originally, We Had A Certain Time Of Day [Up To Which Time] We Could Check Code In And Then We Stopped," Thompson Said. "After That, We Threw The Switch And Built The New System. Eventually, We Grew The Team To 85 People And Serialized The Process For More Control. [Nt Architect] Dave Cutler--Who We All Worked For---Ran The Build Lab For About A Week, And He Required People To Personally Write Their Check-In Requests On A Whiteboard In The Lab. He Forced It Into A Mold. I Sat In There For A While Too. One Day I Accepted 85 Check-Ins, The Most We Had Ever Had To That Point. Now We Can Take In Over 1000 Every Day. It's A Completely Different Scale. Even The Whiteboard Is Electronic--Web Based, Actually--Now."

"There Are No Other Software Projects Like This," Lucovsky Said, "But The One Thing That's Remained Constant [Over The Years] Is How Long It Takes To Build [Windows]. No Matter Which Generation Of The Product, It Takes 12 Hours To Compile And Link The System." Even With The Increase In Processing Horsepower Over The Years, Windows Has Grown To Match, And The Development Process Has Become Far More Sophisticated, So That Microsoft Does More Code Analysis As Part Of The Daily Build. "The Cpus In The Build Lab Are Pegged Constantly For 12 Hours," He Said. "We've Adapted The Process Since Windows 2000. Now, We Decompose The Source [Code] Tree Into Independent Source Trees, And Use A New Build Environment. It's A Multi-Machine Environment That Lets Us Turn The Crank Faster. But Because Of All The New Code Analysis, It Still Takes 12 Hours."
Dogfooding Their Code Has Always Been A Key Requirement Of The Nt Team, Thompson Told Me, And An Integral Component Of Microsoft's Culture. "This Is One Of The Things We've Always Done, Back To The Earliest Days," He Said. "We Were Just Joking About This Today, Actually, Talking About Our Email Program. Back When We First Got Nt Running On Desktop [Pcs], Our Email Program Wouldn't Run Because It Was A Dos Application, And We Didn't Have Dos Compatibility Mode Working Yet. So I Ported Our Internal Email App, Wizmail, To Win32 So We Would Be Able To Use Only Nt Systems."

"When You Are Forced To Use The System Yourself, You See Bugs And You See The Performance Issues," Thompson Added. "And You'd Go And Find The Person Responsible For The Problem And Ask Them To Fix It." One Of Thompson's Primary Responsibilities When He Joined The Nt Team Was To Deliver The File Server Over To Nt So That It Could Be Used As The Source Code Server. That Required A Moment Of Faith, Especially Since Nt Was Then Using A Prototype Version Of The Ntfs File System. "The Networking Group Took This Very Seriously," He Said, "And Made Sure It Was Ready For Internal Deployment. Once It Was Rolled Out, We Never Backed Away. Obviously, If The File Server Goes Down, It's A Disaster. So It Was A Big Moment For Us, Getting Over That Hump."

Later, As The Development Of Windows Nt 4.0 Wound Down, Thompson's Team Took On Active Directory (Ad), Microsoft's First Directory Service, Which Debuted Publicly At The Professional Developers Conference (Pdc) In 1996. "Before Ad We Had Nt Domains For Our Infrastructure," He Said, "And Going To Ad Was Even More Complex. We Deployed Ad Very Early, First With Our Team, And Then The Wider Windows Group. Then We Threw The Switch On Redmond [Campus] Ad In April 1999."

Microsoft Rolled Out Ad To The Rest Of The Company In Stages, Thompson Said, Using Careful Planning. The Campus Went To A Multi-Forest Ad Topology With Windows Server 2003 Last Year. "With All Of The Infrastructure Servers, We Always Do A Complete Deployment Internally, Then Push It Out To The Jdp (Joint Development Partners), Who Test And Deploy It In Production In Over 250 Usage Scenarios. We Get Bug Reports, Feature Feedback, And Complex Scenario Testing That Really Proves The Product."

Windows Server 2003 Hit 99.995 Percent Availability At The Release Candidate 1 (Rc1) Stage Last Summer, And The Microsoft.Com Web Site Was Fully Deployed On Winserver 2K3 When Rc2 Rolled Out In November 2002. "Heavy Usage Internally And By Close Customers Is Key," Thompson Told Me, "And We Have A More Mature View Of What The Product Is Now [Compared To The Early Days]. We're Not Just Shipping Bits In A Box, But Are Also Shipping A Wide Range Of Complementary Tools, Products, Services, And Documentation." And Thompson Explained That The Teams Working On Outlook 11, Exchange Server 2003 ("Titanium") And Windows Server 2003 Are All Working Much More Closely Together To Implement Complete End-To-End Scenarios That Meet Customer Needs. In The Past, These Products Were Often Developed More Independently.

Are You Being Served? A Look At Product Maintenance

"Servicing Has Definitely Matured Over The Years," Lucovsky Added. "We Do A Lot Of Work Figuring Out The Right Mix Of Service Packs, Hot-Fixes, [Product] Development Branches, Betas, And Jdp Customers For Each Product." (More Information About Development Branches Can Be Found In The Next Section.)

"We've Really Extended The Time That We Service Our Products," Thompson Said, Because When Microsoft Ships A Server Product, Customers May Use It For Up To Ten Years. So-Called Volume, Or Mainstream, Service Lasts Seven Years, But The Company Has Constantly Evolved The Way It Supplies Updates And Fixes Over Time. First, Microsoft Has To Be Sure That Bug Fixes Are Applied To All Of The Applicable Development Branches. "Our Work In Rapidly Addressing Security Vulnerabilities Means That We Now Aggressively Issue Hot-Fixes When We Can," Thompson Noted. "As Well, It Used To Be That [Service Packs] Were Flexible, A Way That We Could Deliver Features As Well As Fixes. But Customers Made It Clear That They Wanted Bug Fixes Only [In Service Packs]. That Leads To An Interesting Question, Though: What, Exactly, Is A Bug? Is A Missing Feature A Bug? Customers Often Have Different Views Themselves. But [Windows] Nt 4 Sp3 Was The End [Of Major New Features In Services Packs].

One Side Effect Of Trunk Servicing Is That Microsoft Must Maintain Test Environments For Every Permutation Of Its Recent Operating Systems. That Means That The Final, Or "Gold" Release Of Windows 2000 Is One Branch, Windows 2000 Sp1 Is Another, Windows 2000 Sp2 Is Another, And So On. "And Dogfooding Is Important To Providing Service Packs, Too. In Our It Organization, We Maintain A [Separate] Windows 2000 Infrastructure Just So We Can Do Live Rollouts To Windows 2000 Systems And Test Them In A Production Situation," Thompson Said. "It's A Big Expense, But Worth It."

Hot-Fixes Are Treated As Narrow Releases That Should Fix Only One Specific Problem And Not Affect Other Parts Of The System. Thompson Said That Customers Should Generally Only Apply A Hot-Fix If They're Affected By The Problem The Fix Addresses. However, Security Fixes Are Another Issue Altogether. "We Expect All Of Our Customers To Install The Security Fixes," He Said, "So We Are Very Careful With Them, And Do The Right Kind Of Testing. They Are Generally Deployable Releases (Gdrs), Just Like Service Packs."

Trunks, Trees And Branches

As Noted Earlier, The Various Windows Versions Require A Series Of Product Development Code Forks, Where Each Different Windows Product "Branches" Off The Main Development "Trunk" Over Time. So Each Windows Release Builds Off The Last, And At Least Two Different Versions--Windows Server 2003 And Longhorn, At The Time Of This Writing--Are In Simultaneously Development. Because Winserver 2K3 Was Split From Xp, The Server Product Basically Builds On Xp. Longhorn, A Client Release That Will Succeed Xp In A Few Years, Is Actually Building Off The Server Branch Code Base, And Not Xp As You Might Expect.



"The Mechanics Of Doing This Are Mind-Numbing," Lucovsky Told Me. "We Have A Main Branch Of Code For The Current Windows Version, And That Branch Becomes The Source Base For Hot-Fixes And The Next Service Pack. Once We Spit Out A Service Pack, That Becomes A Branch And Now We Have Two Branches We Have To Test For Hot-Fixes And Service Packs. We Can't Tell Customers To Install, Say, Sp1 And Then Do This Hot-Fix. And This Is Going On For Every [Windows] Release, So Some Have 2 Or 3 Service Packs, Many Hot-Fixes, And Many Security Fixes. Every One Of These Is A Managed Collection Of 50 Million Lines Of Code. It's A Pretty Big Accounting Issue."

Additionally, For Each Main Branch In Active Development, Microsoft Also Has Roughly 16 Team Level Branches To Allow Team Level Independence/Parallelism While Working On A Common Main Line Branch. Each Team Maintains A Complete Build Lab Environment That Builds An Entire Release Including The Team's Latest Changes And Periodically Integrates Their Tested Changes Back Into The Associated Main Branch So That Others Can See Their Tested Work.

Going To War: Triaging Bugs In The War Room

During The Mad Dash Towards Rtm, The Heartbeat Of The Project Is The War Room, Where The War Team Meets Two To Three Times Daily, Five Days A Week--Six Days A Week Now That Windows Server Is In Its Final Days Of Development. "The War Team Goes Over Reports And Metrics To See Where The Project Is At Every Day," Thompson Told Us, An Understated Explanation That Did Little To Prepare Us For The Horrors Of The War Room. "Everything Is Automated Now, But Back Then We Came In And Passed Around Paper Reports That Showed Us How We Were Doing. There Were, Maybe, 15 To 20 People In The Room. Now It's Very Different."

It Sure Is.

For Windows Server 2003, The War Room Is Run By Todd Wanke, Who We Eventually Found To Be An Amazingly Likeable Guy. However, In The Hour-Long War Room Sessions, Wanke Rules With An Iron Fist, Asking Trusted Lieutenants For Advice Here And There, But Moving The Process Inexorably Forward With Little Patience For Excuses Or, God Forbid, Product Team Members Who Don't Show Up For The Meeting .

Here's How It Works. Every Morning At 9:30 A.M., Representatives From Various Windows Server 2003 Feature Teams Meet To Triage Bugs. They File Into Conference Room 3243--Whose Exterior Sign Has Been Covered Up By A Handwritten Note That Reads "Argument Clinic"--In Building 26. There's A Large Conference Table In The Center Of The Room, But Most Of The Participants Have To Stand, And The Room Is Always Overflowing With People. On The Day We Attended A War Team Meeting--The First Time Any Outsiders Were Allowed To View The Inner Sanctum For Windows Server, And Only The Second Time Overall During The Entire Development Of Nt And Windows--The Team Progressed Through About 50 Bugs, Most Of Which Were Simple Branding Problems, Though I've Agreed Not To Discuss The Specifics Of Any Bugs Discussed That Day. (Because We Attended War Room Very Late In The Development Of The Product, And The Biggest Outstanding Issue Was The Last Minute Name-Change From Windows .Net Server 2003 To Windows Server 2003.)

Every Bug Is Logged In An Incredible Bug Tracking System, Each Accompanied By A Dizzying Array Of Information About How The Bug Was Found, Which Customers, If Any, Were Affected, And A Complete History Of The Efforts Made To Date To Eradicate The Problem. Wanke Moved Quickly Through The Bugs, Calling Out To Members Of Specific Feature Teams To Explain How The Fixes Were Progressing. If There Are One Or More Bugs In Iis, For Example, A Representative Of The Iis Team Needs To Be Present To Not Only Explain The Merits Of The Bug, But Whether Customers Are Affected, How The Fix Might Affect Other Parts Of The System, And How Soon It Will Be Fixed. This Late In The Development Process, Bugs Are Often Passed Along, Or "Punted," To The Next Windows Release--Longhorn--If They're Not Sufficiently Problematic.

The Atmosphere In War Room Is Intimidating, And I Spent Most Of My Time In The Room, Silent And Almost Cowering, Praying That Wanke Wouldn't Turn His Attention To Me Or My Group. Heated Argument And Cursing Are A Given In War Room, And The Penalty For Not Being On Top Of Your Bugs Is Swift And Cruel Ridicule From The Other Team Members. The Most Virulent Treatment, Naturally, Is Saved For Those Foolish Enough To Blow Off A War Room Meeting. On The Day I Attended, One Feature Group Had Four Of Its Bugs Punted To Longhorn Because They Had Failed To Shown Up For War Room. When Someone Argued That They Should Be Given Another Day, Wanke Simply Said, "F#$% 'Em. If It Was That Important, They Would Have Been Here. It's In Longhorn. Next Bug."

Once The Hour Long Meeting Was Over, We Sat Down And Spoke With Wanke, Who Was Almost A Completely Different Person In Private. "You Run A Mean Meeting, Todd," I Told Him, As We Sat Down. Wanke's Background Includes Stints With Ncr, America Honda And An Unspecified And Mysterious Sounding Security-Related Assignment As A Us Government Contractor, And He's Been With Microsoft For Nearly Eight Years. Before Joining The Windows Team, Wanke Was One Of The Original Architects Of The Microsoft.Com Web Site And He Spent Three Or Fours Years As An "Internet Guy" At The Company Before All Of Microsoft Found The Internet Religion. In Our Meeting, Wanke Explained How He Fell Into His New Job, What He Does Now At Microsoft, And How The War Team Works.

"My Job Is To Manage The Day-To-Day Operations With Regards To Shipping Windows," He Said. "I'm Responsible For 8000 To 10,000 Developers, Program Managers, And Testers, And I Have To Make Sure They're Doing The Right Things Every Day."

War Team, He Said, Consists Of A Very Broad Set Of People Within The Windows Team, All Of Whom Are Responsible For Different Areas Of The Project. They Are Test Leads With Responsibility For Such Things As Tcp-Ip And Other Low-Level Technologies, Some Developers, People That Do The Build Every Day, People That Do Build Verification Tests, And Others. "Every Area Of The Project Is Represented," He Told Us. "The Daily Marching Orders [For The Windows Server Team] Come From War Team, And Also From The Broad Mails I Send Out. These Emails Are Almost Always Microsoft Confidential, Or Even Higher Than That, Emails That Are Very Confidential And Sent Only To A Much Smaller Group Of People."

As We Witnessed, War Room Is A Very Structured Event, Occurring At The Same Time Every Day And Lasting Exactly One Hour. The Team Members Look At The Same Bug System Every Day, And Often Go Over The Same Bugs Until They Are Fixed. "If You're Not There, It's Not Good," He Said. "Microsoft People Have A Strong Sense Of Ownership For The Product And They Want To Make Sure The Right Thing Is Happening. But If People Aren't There, I Lay Into Them. I'm The rear end Kicker."

In Addition To The Morning War Room Meeting, The Windows Server Team Holds An Afternoon Meeting From 2 To 3 P.M. And, If Needed, Another One From 5 To 6 P.M. The Daily Build Usually Starts At 4:30, But Can Be Delayed To 6, So This Last Meeting Gives The Team A Chance To Go Over Any Final Bug Fixes That Will Be Added To That Day's Build. "The Structure Is Very Important," He Said, "And We Need To Know Where The Build Is At All Times. We Look At The Quality Of The Build, Various Stress Levels, And All Of The Things That Run Overnight, Anything That We Need To Follow-Up On. We Get Detailed Reports, And Review Everything That Goes Into The Project."

In Addition To The Main War Team, Each Of The Feature Teams Have Their Own War Rooms, So There Could Be As Many As 50 Such Meetings Each Day, Each Going Over A Specific Component Of The System. These Other War Room Meetings Occur At 8 A.M., Every Day. When A Bug Fix Passes The Local War Team Process, It's Introduced At Wanke's Meeting. "They Can't Come Into War Room Unless They're Fix-Ready," Wanke Said. "They Must Be Fix-Ready." Because There Isn't A Single Person Making Decisions, There Is A System Of Checks And Balances Through Which Each Bug Fix Passes Before It's Introduced Into The Build.

The Complexities Of Building Windows Are Staggering. "To Simplify Things, Let's Say Windows Consists Of 100,000 Files," He Said. "Usually, There Are Seven Source Code Depots, Each Containing An Exact Replica Of All Of The Sources, Though At This Point, We're Down To Just One. Every Development Group Has Its Own Depot, So That When A Developer Writes A Fix, He Can Compile It Into The Depot For Testing. If The Build Compiles Locally With His Fix, They Can Test It There And Then Check It Into The Main Depot In The Main Build Lab."

Not Every Build Is Successful, Of Course. Occasionally, Windows Server Suffers From What Microsoft Calls "Build On The Floor," When A Fix Breaks Some Other Part Of The System, Rendering The Build Unusable. "That's Brutal," Wanke Told Us. "There Was A Point About A Year Ago, When We Didn't Get A Build Out For Seven Days. We Had To Send An Email To The Product Group Executives At The Company Explaining The Problem," And The Company Entered Into Its Private Version Of Defcon-5. "All The Red Flags Went Up," He Said. "It's Very Ingrained In The Developers Not To Break The Build. They Do Their Fix, Do A Buddy Build, And Then Check It In. But They Can't Go Home. We've Sent Out Calls At 3 A.M. When The Build Is Broken, Find The Developer That Broke It, And Get Him Into Work Right Then And Fix It Immediately. The Developers Are On Call 24 Hours A Day. There's Definitely An Escalation Process. A Broken Build Is Considered A Critical, Severity-1 Problem."

As The Windows Server 2003 Development Cycle Wound Down, The Bug Count Fell Dramatically, And The Process Was Getting Simpler Each Day. And Then Microsoft Announced The Name Change. "We Just Have To Live With That Poor Decision," He Told Us. "They Should Have Made It Six Months Ago. Back Then, We All Agreed It Was The Right Thing To Do. But At This Late Stage--They Brought In [Ceo] Steve Ballmer To Talk With All The War Teamers About Why We Made The Change." The Speed At Which The Team Was Able To Fix All Of The Branding Graphics, Text, And Registry Entries In The System Is A Testament To The Company's Dynamic Process For Fixing Bugs, Wanke Said. The Problem Was That Several Thousand Changes Needed To Be Made, And That Would Normally Require Several Thousand New Entries In The Product's Bug Tracking System. "I Went Out And Handpicked The Three Best Developers On The Team And Said, 'Just Go And Fix It.' One Developer Fixed Over 7,000 References To [Windows] .Net Server. Let's Just Say That There Are People I Trust, And People I Don't Trust. I Told These Guys, 'Don't Tell Me What You're Doing. Just Do It.'"

Entering The Home Stretch

On The Day That We Attended War Room, On January 21, 2003, Windows Server 2003 Had Hit An "Absolute Historic Low" For Bugs, According To Wanke. "We're Shutting Down The Project This Week," He Said. "It's Done. We're Going To Ship It." On That Day, Winserver 2K3 Had Just A Few Active Bugs, And At Least A Quarter To One-Third Of Those Bugs Were Simple Branding Issues. "So Let's Say There Are About 150 Outstanding Issues To Address," Wanke Told Us. "Of That, We'll Fix About 100. All Of The Bugs Are Severity Rated From 1 To 3, Plus They Get A Priority Rating. We Have [A Few] Severity-1 Bugs Left To Fix, And Those All Have To Be Fixed For Us To Ship."

Wanke Said That The Server Team Had Already Fixed All Of The Known Security Vulnerabilities. "We're Very Happy About Security," He Said. "It's Fun To See Where We Are [With Security]. I'm Personally Very Impressed With The Work That Went Into It, The Fixes And The Thought Process. We All Think It's Very Secure. The [Trustworthy Computing] Security Push [Last Year] Was A Big Milestone For Us, And Everything Will Be Easier Going Forward Because Of It. It's Easier On The Developers Because They All Have The Same Mindset And Goals Now, The Same Education About Best Practices. There Used To Be Different Methodologies Between Different Groups. The Security Pushed Unified It. Now It's Easier For Everyone To Communicate And See The End Goal."

With The Completion Of Windows Server 2003 Development, The Development Team Will Enter A Transitional Period. First, The Product Will Enter Escrow, And The Build Process Will Be Frozen. That Build Is Then Deployed Around The Campus, Including Microsoft's Corporate Infrastructure. "That Is The Final Build," Wanke Noted. "Then We Sit On It For A Period Of Time, During Which There Are No Core Fixes Made To The Product." The Escrow Build Will Also Be Handed Out To Testers And Jdp Members, He Said."

If Any Issues Do Arise During The Escrow Period, The War Team Makes Case-By-Case Decisions About Whether To Fix The Bugs. If A But Necessitates A Kernel Fix, A New Build Will Be Created, And Escrow Is Reset. "A Change To A Core Component Could Delay Rtm," Wanke Told Us. "We Run It Prior To Asking Customers To, And Have To Run It A Number Of Days Before Signing Off On It. It's A Long Haul." Every Feature Team Working On Windows Server 2003 Must Run The Escrow Build For 21 Days Without Restarting Before The Build Can Be Declared Golden Master And Released To Manufacturing.

But Wanke Isn't Worried About The Exact Schedule, As The Outcome Is Finally A Foregone Conclusion After Years Of Work. His Team Is Now Preparing It's Rtm Party--Outside On One Of The Campus' Many Soccer Fields, Weather Permitting; Inside A Garage If Not--And Wanke Has Other Rtm-Related Concerns He Must Address, Including The Launch Venue. "I'm Working With The Launch Team To Book A Venue," He Said. "They Need 95 Percent Confidence Dates." They're Also Talking To Oems To Ensure Systems Are Ready For Launch, Isvs, Marketing Folks For Signs And Posters, And So On. "And I Have To Make Sure That The 8000 People Who Deserve A Ship Award Get One," He Added.

In The End, All This Dedication Will Result In The Most Secure And Reliable Operating System Microsoft Has Ever Created, And It's Impossible To Overstate Wanke's Contribution To This Project. "I Basically Haven't Missed A Single War Team In A Year And A Half, Give Or Take A Day Or So For Personal Reasons," He Said, "Every Day, Six Days A Week At The End Of The Schedule. We Let People Bring Their Kids In On Saturdays, It's A Family Day. There's No Swearing Allowed On Saturdays. But You Still Have To Be There, And We Still Have To Make A Build."

So Would Wanke Run War Team On A Future Windows Version?

"No Way," He Said, Laughing. "No Way."

On To Part Three...

In Part Three Of Windows Server 2003: The Road To Gold, I Take A Look At Testing Windows.

What's With The Capitalization It's Not Very YoSPoS

The Management
Jan 2, 2010

sup, bitch?
had to stop reading because of the caps

pram
Jun 10, 2001
that guys name is wanke lol

AWWNAW
Dec 30, 2008

thats the title of the article idiots

FAT32 SHAMER
Aug 16, 2012



The Management posted:

had to stop reading because of the caps

same

theadder
Dec 30, 2011


The Management posted:

had to stop reading because of the caps

same except didnt start

anthonypants
May 6, 2007

by Nyc_Tattoo
Dinosaur Gum

theadder posted:

same except didnt start

PleasingFungus
Oct 10, 2012
idiot asshole bitch who should fuck off

I hate you, and I hope you die.

Number19
May 14, 2003

HOCKEY OWNS
FUCK YEAH


did anyone read that post?

bring back old gbs
Feb 28, 2007

by LITERALLY AN ADMIN
ok im the trunk whos the tree/branches/gay

bring back old gbs
Feb 28, 2007

by LITERALLY AN ADMIN

Number19 posted:

did anyone read that post?

i read it all bec ause im power user

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

AWWNAW posted:

One element about the nt family of operating systems--which evolved from windows nt to windows 2000, xp, and, now, windows server 2003--that has remained unchanged over the years, though the details have changed dramatically, is the build process. Somewhere deep in the bowels of microsoft, virtually every day, at least one windows product is compiled, or built, into executable code that can be tested internally by the dev, or development teams. For windows server 2003, this process is consummated in building 26 on microsoft's sprawling redmond campus, where banks of pcs and cd duplicating machines churn almost constantly under the watchful eyes of several engineers.

The details of nt--excuse me, windows--development have changed dramatically since the project first started in the late 1980's. "back in the early days, we started with 6 people," microsoft distinguished engineer and windows server architect mark lucovsky told me. "now there are 5000 member of the windows team, plus an additional 5000 contributing partners, generating over 50 million lines of code for windows server 2003. Getting all those people going in the same direction, cranking out code, is an enormous task. Building the results of their work, compiling and linking it into the executable and other components that make up a windows cd is a 12 to 13 hour process that is done every day of the week. It's the biggest software engineering task ever attempted. There are no other software projects like this." And microsoft compiles the whole thing--all 50+ million lines of code, almost every single day, he said. "we're evolving the development environment all the time," lucovsky noted.
"when we turn the crank, we compile the whole thing," he said. "we have to be able to reproduce the system at any point in time as well. So developers check in code, we press a button, and out comes a system. We should be able to reproduce that [build] three years in the future, using the various tools, compilers, and scripts we used at that time."

David thompson, corporate vice president of the windows server product group at microsoft, elaborated on the process. "the key here is that we built up the system over the years, advancing it in three dimensions," he said. "first is the product itself. Second is the way we engineer the product. And third is the way we interact with a broader and broader set of customers. The product evolution is pretty straightforward. The source code control system we use now is new, because we really pushed the scale of the previous version with windows 2000. Mark [lucovsky] personally lead the development of the new system and introduced it post-2000. We started with some acquired technology. We now do have a staged build [for the first time]. But every day the [staged builds] are rolled up into the total build. So we can scale but maintain stability--we know where we stand every day."

Just eat it: microsoft serves up dog food

Lucovsky reminisced a bit about the early days, when the first nt prototypes were built in his office with only a single person overseeing the process. That person would simply send out an email to the nt team when a new build was ready, and then 50 people or so would "eat their own dog food," testing the build on their own systems and run stress tests. "i used to just walk around the building and write down the problems we found," lucovsky said. "that's how it was pre-nt 3.51. Now we have 7 builds labs. Dave [thompson] has his own [build lab] for the 1200 people he oversees. The main build lab cranks out the official build, which goes out to thousands of people daily. Notification is automatic, and is sent out in multiple stages using the backbone servers across the campus. It's all automated. Those little things have now scaled up."

"originally, we had a certain time of day [up to which time] we could check code in and then we stopped," thompson said. "after that, we threw the switch and built the new system. Eventually, we grew the team to 85 people and serialized the process for more control. [nt architect] dave cutler--who we all worked for---ran the build lab for about a week, and he required people to personally write their check-in requests on a whiteboard in the lab. He forced it into a mold. I sat in there for a while too. One day i accepted 85 check-ins, the most we had ever had to that point. Now we can take in over 1000 every day. It's a completely different scale. Even the whiteboard is electronic--web based, actually--now."

"there are no other software projects like this," lucovsky said, "but the one thing that's remained constant [over the years] is how long it takes to build [windows]. No matter which generation of the product, it takes 12 hours to compile and link the system." Even with the increase in processing horsepower over the years, windows has grown to match, and the development process has become far more sophisticated, so that microsoft does more code analysis as part of the daily build. "the cpus in the build lab are pegged constantly for 12 hours," he said. "we've adapted the process since windows 2000. Now, we decompose the source [code] tree into independent source trees, and use a new build environment. It's a multi-machine environment that lets us turn the crank faster. But because of all the new code analysis, it still takes 12 hours."
Dogfooding their code has always been a key requirement of the nt team, thompson told me, and an integral component of microsoft's culture. "this is one of the things we've always done, back to the earliest days," he said. "we were just joking about this today, actually, talking about our email program. Back when we first got nt running on desktop [pcs], our email program wouldn't run because it was a dos application, and we didn't have dos compatibility mode working yet. So i ported our internal email app, wizmail, to win32 so we would be able to use only nt systems."

"when you are forced to use the system yourself, you see bugs and you see the performance issues," thompson added. "and you'd go and find the person responsible for the problem and ask them to fix it." One of thompson's primary responsibilities when he joined the nt team was to deliver the file server over to nt so that it could be used as the source code server. That required a moment of faith, especially since nt was then using a prototype version of the ntfs file system. "the networking group took this very seriously," he said, "and made sure it was ready for internal deployment. Once it was rolled out, we never backed away. Obviously, if the file server goes down, it's a disaster. So it was a big moment for us, getting over that hump."

Later, as the development of windows nt 4.0 wound down, thompson's team took on active directory (ad), microsoft's first directory service, which debuted publicly at the professional developers conference (pdc) in 1996. "before ad we had nt domains for our infrastructure," he said, "and going to ad was even more complex. We deployed ad very early, first with our team, and then the wider windows group. Then we threw the switch on redmond [campus] ad in april 1999."

Microsoft rolled out ad to the rest of the company in stages, thompson said, using careful planning. The campus went to a multi-forest ad topology with windows server 2003 last year. "with all of the infrastructure servers, we always do a complete deployment internally, then push it out to the jdp (joint development partners), who test and deploy it in production in over 250 usage scenarios. We get bug reports, feature feedback, and complex scenario testing that really proves the product."

Windows server 2003 hit 99.995 percent availability at the release candidate 1 (rc1) stage last summer, and the microsoft.Com Web site was fully deployed on winserver 2k3 when rc2 rolled out in november 2002. "heavy usage internally and by close customers is key," thompson told me, "and we have a more mature view of what the product is now [compared to the early days]. We're not just shipping bits in a box, but are also shipping a wide range of complementary tools, products, services, and documentation." And thompson explained that the teams working on outlook 11, exchange server 2003 ("titanium") and windows server 2003 are all working much more closely together to implement complete end-to-end scenarios that meet customer needs. In the past, these products were often developed more independently.

Are you being served? A look at product maintenance

"servicing has definitely matured over the years," lucovsky added. "we do a lot of work figuring out the right mix of service packs, hot-fixes, [product] development branches, betas, and jdp customers for each product." (more information about development branches can be found in the next section.)

"we've really extended the time that we service our products," thompson said, because when microsoft ships a server product, customers may use it for up to ten years. So-called volume, or mainstream, service lasts seven years, but the company has constantly evolved the way it supplies updates and fixes over time. First, microsoft has to be sure that bug fixes are applied to all of the applicable development branches. "our work in rapidly addressing security vulnerabilities means that we now aggressively issue hot-fixes when we can," thompson noted. "as well, it used to be that [service packs] were flexible, a way that we could deliver features as well as fixes. But customers made it clear that they wanted bug fixes only [in service packs]. That leads to an interesting question, though: what, exactly, is a bug? Is a missing feature a bug? Customers often have different views themselves. But [windows] nt 4 sp3 was the end [of major new features in services packs].

One side effect of trunk servicing is that microsoft must maintain test environments for every permutation of its recent operating systems. That means that the final, or "gold" release of windows 2000 is one branch, windows 2000 sp1 is another, windows 2000 sp2 is another, and so on. "and dogfooding is important to providing service packs, too. In our it organization, we maintain a [separate] windows 2000 infrastructure just so we can do live rollouts to windows 2000 systems and test them in a production situation," thompson said. "it's a big expense, but worth it."

Hot-fixes are treated as narrow releases that should fix only one specific problem and not affect other parts of the system. Thompson said that customers should generally only apply a hot-fix if they're affected by the problem the fix addresses. However, security fixes are another issue altogether. "we expect all of our customers to install the security fixes," he said, "so we are very careful with them, and do the right kind of testing. They are generally deployable releases (gdrs), just like service packs."

Trunks, trees and branches

As noted earlier, the various windows versions require a series of product development code forks, where each different windows product "branches" off the main development "trunk" over time. So each windows release builds off the last, and at least two different versions--windows server 2003 and longhorn, at the time of this writing--are in simultaneously development. Because winserver 2k3 was split from xp, the server product basically builds on xp. Longhorn, a client release that will succeed xp in a few years, is actually building off the server branch code base, and not xp as you might expect.



"the mechanics of doing this are mind-numbing," lucovsky told me. "we have a main branch of code for the current windows version, and that branch becomes the source base for hot-fixes and the next service pack. Once we spit out a service pack, that becomes a branch and now we have two branches we have to test for hot-fixes and service packs. We can't tell customers to install, say, sp1 and then do this hot-fix. And this is going on for every [windows] release, so some have 2 or 3 service packs, many hot-fixes, and many security fixes. Every one of these is a managed collection of 50 million lines of code. It's a pretty big accounting issue."

Additionally, for each main branch in active development, microsoft also has roughly 16 team level branches to allow team level independence/parallelism while working on a common main line branch. Each team maintains a complete build lab environment that builds an entire release including the team's latest changes and periodically integrates their tested changes back into the associated main branch so that others can see their tested work.

Going to war: triaging bugs in the war room

During the mad dash towards rtm, the heartbeat of the project is the war room, where the war team meets two to three times daily, five days a week--six days a week now that windows server is in its final days of development. "the war team goes over reports and metrics to see where the project is at every day," thompson told us, an understated explanation that did little to prepare us for the horrors of the war room. "everything is automated now, but back then we came in and passed around paper reports that showed us how we were doing. There were, maybe, 15 to 20 people in the room. Now it's very different."

It sure is.

For windows server 2003, the war room is run by todd wanke, who we eventually found to be an amazingly likeable guy. However, in the hour-long war room sessions, wanke rules with an iron fist, asking trusted lieutenants for advice here and there, but moving the process inexorably forward with little patience for excuses or, god forbid, product team members who don't show up for the meeting .

Here's how it works. Every morning at 9:30 a.m., Representatives from various windows server 2003 feature teams meet to triage bugs. They file into conference room 3243--whose exterior sign has been covered up by a handwritten note that reads "argument clinic"--in building 26. There's a large conference table in the center of the room, but most of the participants have to stand, and the room is always overflowing with people. On the day we attended a war team meeting--the first time any outsiders were allowed to view the inner sanctum for windows server, and only the second time overall during the entire development of nt and windows--the team progressed through about 50 bugs, most of which were simple branding problems, though i've agreed not to discuss the specifics of any bugs discussed that day. (because we attended war room very late in the development of the product, and the biggest outstanding issue was the last minute name-change from windows .Net Server 2003 to windows server 2003.)

Every bug is logged in an incredible bug tracking system, each accompanied by a dizzying array of information about how the bug was found, which customers, if any, were affected, and a complete history of the efforts made to date to eradicate the problem. Wanke moved quickly through the bugs, calling out to members of specific feature teams to explain how the fixes were progressing. If there are one or more bugs in iis, for example, a representative of the iis team needs to be present to not only explain the merits of the bug, but whether customers are affected, how the fix might affect other parts of the system, and how soon it will be fixed. This late in the development process, bugs are often passed along, or "punted," to the next windows release--longhorn--if they're not sufficiently problematic.

The atmosphere in war room is intimidating, and i spent most of my time in the room, silent and almost cowering, praying that wanke wouldn't turn his attention to me or my group. Heated argument and cursing are a given in war room, and the penalty for not being on top of your bugs is swift and cruel ridicule from the other team members. The most virulent treatment, naturally, is saved for those foolish enough to blow off a war room meeting. On the day i attended, one feature group had four of its bugs punted to longhorn because they had failed to shown up for war room. When someone argued that they should be given another day, wanke simply said, "f#$% 'em. If it was that important, they would have been here. It's in longhorn. Next bug."

Once the hour long meeting was over, we sat down and spoke with wanke, who was almost a completely different person in private. "you run a mean meeting, todd," i told him, as we sat down. Wanke's background includes stints with ncr, america honda and an unspecified and mysterious sounding security-related assignment as a us government contractor, and he's been with microsoft for nearly eight years. Before joining the windows team, wanke was one of the original architects of the microsoft.Com Web site and he spent three or fours years as an "internet guy" at the company before all of microsoft found the internet religion. In our meeting, wanke explained how he fell into his new job, what he does now at microsoft, and how the war team works.

"my job is to manage the day-to-day operations with regards to shipping windows," he said. "i'm responsible for 8000 to 10,000 developers, program managers, and testers, and i have to make sure they're doing the right things every day."

War team, he said, consists of a very broad set of people within the windows team, all of whom are responsible for different areas of the project. They are test leads with responsibility for such things as tcp-ip and other low-level technologies, some developers, people that do the build every day, people that do build verification tests, and others. "every area of the project is represented," he told us. "the daily marching orders [for the windows server team] come from war team, and also from the broad mails i send out. These emails are almost always microsoft confidential, or even higher than that, emails that are very confidential and sent only to a much smaller group of people."

As we witnessed, war room is a very structured event, occurring at the same time every day and lasting exactly one hour. The team members look at the same bug system every day, and often go over the same bugs until they are fixed. "if you're not there, it's not good," he said. "microsoft people have a strong sense of ownership for the product and they want to make sure the right thing is happening. But if people aren't there, i lay into them. I'm the rear end kicker."

In addition to the morning war room meeting, the windows server team holds an afternoon meeting from 2 to 3 p.m. And, if needed, another one from 5 to 6 p.m. The daily build usually starts at 4:30, but can be delayed to 6, so this last meeting gives the team a chance to go over any final bug fixes that will be added to that day's build. "the structure is very important," he said, "and we need to know where the build is at all times. We look at the quality of the build, various stress levels, and all of the things that run overnight, anything that we need to follow-up on. We get detailed reports, and review everything that goes into the project."

In addition to the main war team, each of the feature teams have their own war rooms, so there could be as many as 50 such meetings each day, each going over a specific component of the system. These other war room meetings occur at 8 a.m., Every day. When a bug fix passes the local war team process, it's introduced at wanke's meeting. "they can't come into war room unless they're fix-ready," wanke said. "they must be fix-ready." Because there isn't a single person making decisions, there is a system of checks and balances through which each bug fix passes before it's introduced into the build.

The complexities of building windows are staggering. "to simplify things, let's say windows consists of 100,000 files," he said. "usually, there are seven source code depots, each containing an exact replica of all of the sources, though at this point, we're down to just one. Every development group has its own depot, so that when a developer writes a fix, he can compile it into the depot for testing. If the build compiles locally with his fix, they can test it there and then check it into the main depot in the main build lab."

Not every build is successful, of course. Occasionally, windows server suffers from what microsoft calls "build on the floor," when a fix breaks some other part of the system, rendering the build unusable. "that's brutal," wanke told us. "there was a point about a year ago, when we didn't get a build out for seven days. We had to send an email to the product group executives at the company explaining the problem," and the company entered into its private version of defcon-5. "all the red flags went up," he said. "it's very ingrained in the developers not to break the build. They do their fix, do a buddy build, and then check it in. But they can't go home. We've sent out calls at 3 a.m. When the build is broken, find the developer that broke it, and get him into work right then and fix it immediately. The developers are on call 24 hours a day. There's definitely an escalation process. A broken build is considered a critical, severity-1 problem."

As the windows server 2003 development cycle wound down, the bug count fell dramatically, and the process was getting simpler each day. And then microsoft announced the name change. "we just have to live with that poor decision," he told us. "they should have made it six months ago. Back then, we all agreed it was the right thing to do. But at this late stage--they brought in [ceo] steve ballmer to talk with all the war teamers about why we made the change." The speed at which the team was able to fix all of the branding graphics, text, and registry entries in the system is a testament to the company's dynamic process for fixing bugs, wanke said. The problem was that several thousand changes needed to be made, and that would normally require several thousand new entries in the product's bug tracking system. "i went out and handpicked the three best developers on the team and said, 'just go and fix it.' One developer fixed over 7,000 references to [windows] .Net Server. Let's just say that there are people i trust, and people i don't trust. I told these guys, 'don't tell me what you're doing. Just do it.'"

Entering the home stretch

On the day that we attended war room, on january 21, 2003, windows server 2003 had hit an "absolute historic low" for bugs, according to wanke. "we're shutting down the project this week," he said. "it's done. We're going to ship it." On that day, winserver 2k3 had just a few active bugs, and at least a quarter to one-third of those bugs were simple branding issues. "so let's say there are about 150 outstanding issues to address," wanke told us. "of that, we'll fix about 100. All of the bugs are severity rated from 1 to 3, plus they get a priority rating. We have [a few] severity-1 bugs left to fix, and those all have to be fixed for us to ship."

Wanke said that the server team had already fixed all of the known security vulnerabilities. "we're very happy about security," he said. "it's fun to see where we are [with security]. I'm personally very impressed with the work that went into it, the fixes and the thought process. We all think it's very secure. The [trustworthy computing] security push [last year] was a big milestone for us, and everything will be easier going forward because of it. It's easier on the developers because they all have the same mindset and goals now, the same education about best practices. There used to be different methodologies between different groups. The security pushed unified it. Now it's easier for everyone to communicate and see the end goal."

With the completion of windows server 2003 development, the development team will enter a transitional period. First, the product will enter escrow, and the build process will be frozen. That build is then deployed around the campus, including microsoft's corporate infrastructure. "that is the final build," wanke noted. "then we sit on it for a period of time, during which there are no core fixes made to the product." The escrow build will also be handed out to testers and jdp members, he said."

If any issues do arise during the escrow period, the war team makes case-by-case decisions about whether to fix the bugs. If a but necessitates a kernel fix, a new build will be created, and escrow is reset. "a change to a core component could delay rtm," wanke told us. "we run it prior to asking customers to, and have to run it a number of days before signing off on it. It's a long haul." Every feature team working on windows server 2003 must run the escrow build for 21 days without restarting before the build can be declared golden master and released to manufacturing.

But wanke isn't worried about the exact schedule, as the outcome is finally a foregone conclusion after years of work. His team is now preparing it's rtm party--outside on one of the campus' many soccer fields, weather permitting; inside a garage if not--and wanke has other rtm-related concerns he must address, including the launch venue. "i'm working with the launch team to book a venue," he said. "they need 95 percent confidence dates." They're also talking to oems to ensure systems are ready for launch, isvs, marketing folks for signs and posters, and so on. "and i have to make sure that the 8000 people who deserve a ship award get one," he added.

In the end, all this dedication will result in the most secure and reliable operating system microsoft has ever created, and it's impossible to overstate wanke's contribution to this project. "i basically haven't missed a single war team in a year and a half, give or take a day or so for personal reasons," he said, "every day, six days a week at the end of the schedule. We let people bring their kids in on saturdays, it's a family day. There's no swearing allowed on saturdays. But you still have to be there, and we still have to make a build."

So would wanke run war team on a future windows version?

"no way," he said, laughing. "no way."

On to part three...

In part three of windows server 2003: the road to gold, i take a look at testing windows.

ftfy

The Killing Jelq
Jun 13, 2012

lol

todd wanked linkedin posted:

Cloud Solutions Architect
Microsoft
February 2014 - Present (7 months)
Leading compute, storage and network consumption of Microsoft's Azure Cloud Platform for largest corporate enterprise accounts.

Adbot
ADBOT LOVES YOU

JumpinJackFlash
Nov 15, 2001
lol at Balmer's last minute branding change. just lol

  • Locked thread