Being the hardware junkie that I am, one of the neat things about my job is the hardware I get to play with. On the Windows development side of things pretty much everyone has multiple machines. They are used for various tasks such as:

 

  1. Selfhosting – this is the ”eating your own dogfood” you have heard so much about. Every few weeks, a build is selected as an IDW (Individual Developers Workstation) candidate and all fixes that may be necessary to do daily work are ported to that build. After a certain percentage of the selfhost vote is positive the build is declared IDW quality. All the non milestone builds (i.e. RC, Beta) that are released externally are produced by this process (Server goes through a similar but more rigorous process called IDS).
  2. Stress – this is the torture test that runs on windows every night,  basically to search for deadlocks, test low memory conditions, operations under heavy io (disk and network)
  3. Test – this is where private builds are installed and private testing is done (where you test your own work before it goes into the main build).
  4. Safe- for those times when you get “self-toasted” while selfhosting, it’s nice to have a machine to work on (email) while investigating the failure or reinstalling.
  5. Debugger – in order to do kernel debugging on windows you have 3 options either serial,1394,or USB 2.0 to connect your debugger machine to the debugee. It’s not uncommon to have a debugger attached to 16 machines or more with the help of a multi-port serial card.

 

One of the unique things about computers at Microsoft is that there is no mandated standard desktop machine, it’s pretty much left up to the individual product unit, to decide on what machines they want. The internal IT department at Microsoft does come up with recommended standard desktops, which they benchmark and rate, but are not mandated to buy.

 

This leads to a pretty diverse set of hardware ( from white box machines to major vendors) which gives us a large amount of hardware coverage.

 

As far as the machines on my desk here is the list:

 

Main dev machines:

1.      Compaq Presario R3000 (AMD64 3200+ with 1GB ram) (laptop)

2.      HP xw9300 (Dual AMD Opteron 200 2.4/ 2 GB ram)

Self Host Machines:

1.      HP xw4100 (P4 3.2 with 512MB Ram)

2.      HP tc1000 tablet (Transmeta 1Ghz with 768MB Ram)

Test Machines:

1.      2 HP d530 (2.8Ghz 1GB ram)

2.      Compaq Presario (AMD64 3200+ with 1GB ram).

 

I run virtual server on the d530’s which allow me to run 4 instances of longhorn under kernel debugger without all the cables and the need for a separate debugger