Windows 95 Nostalgia

I feel like today’s a good day to share a few stories about my first few months at Microsoft, and the (very) small part I played in shipping Windows 95.

My start at Microsoft is a story on its own, and probably worth recapping here in an abbreviated form. I started at Microsoft in January 1995 as a contractor testing networking components  for the Japanese , Chinese, and Korean versions of Windows 95. I knew some programming and even a bit of Japanese (I later became almost proficient, but have forgotten a lot of it now). I also knew, for better or for worse, a lot about Netware and about hardware troubleshooting, and that got me in the door (and got me hired full time 5 months later).

Other than confirming that mainline functionality (including upgrade paths) were correct, there were two big parts of my job that were unique to testing CKJ (Chinese, Korean, Japanese) versions of Windows. The first was that at the time, there were a dozen or so LAN cards (this was long before networking was integrated onto a motherboard) that were unique to Japan, and I was (solely) responsible for ensuring these cards worked across a variety of scenarios (upgrades from Windows, upgrades from LanMan, clean installs, NetWare support, protocol support, etc.). One interesting anecdote from this work was that I found that one of the cards had a bug in its configuration file causing it to not work in one of the upgrade scenarios. Given the time it typically took to go to the manufacturer to make a fix and get it back we decided to make the fix on our end. Because I knew the fix (a one liner), I made the change, checked it in, and that one liner became the first line of “code” I wrote for a shipping product at Microsoft.

The other interesting part of testing CKJ Windows was that Windows 95 was not Unicode; it was a mixed byte system where some (most) characters were made up of two bytes. Each language had a reserved set of bytes specified as Lead Bytes, that indicated that that byte, along with the subsequent byte were part of a single double-byte character. Programs that parsed strings had to parse the string using functions aware of this mechanism, or they would fail. Often, we found UI where we could put the cursor in the middle of a character. The interesting twist for networking was that the second byte could be 0x7c (‘|’), or 0x5c (‘\’). As you can imagine, these characters caused a lot of havoc when used in computer names, network shares, paths, and files, and I found many bugs testing with these characters (more explanation on double-byte characters, along with one of my favorite related bugs is described here).

While I didn’t do nearly as much for the product as many people on the team who had worked on the product for years, I think I made an impact, and I learned so many things and learned from so many different people.

Similar Posts

  • One down, two to go…

    it’s 6:30-ish pm, and I’m killing time waiting for my sound check for tomorrow’s keynote, and thought I’d do a quick brain dump of today’s tutorial session. Today’s session was “Alan Page: On Testing” – which is a pretty wide open topic. For the slide handouts, I slapped together slides from a bunch of things…

  • Let’s Do This!

    A lot of people want to see changes happen. Some of those want to make change happen. Whether it’s introducing a new tool to a software team, changing a process, or shifting a culture, many people have tried to make changes happen. And many of those have failed. I’ve known “Jeff” for nearly 20 years….

  • Testing for Brown M&Ms

    One thing I’ve learned in my testing career is that where there are bugs, there are more bugs. Some of my colleague Nachi’s research shows that components with a high number of pre-release bugs has a corresponding share of the post-release bugs. The heuristic works well on a smaller scale too – if I find…

  • Five for Friday – October 4, 2019

    I recently re-read (skimmed) Steve McConnell’s Software Estimation, Demystifying the Black Art. When I met with Microsoft Press to pitch HWTSAM, they gave a hot-off-the press new copy, and while some of the book feels “old school”, it’s still filled with foundational estimation knowledge. I work at home, and absolutely need a quiet PC –…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.