(part 1 is here)
(part 2 is here)
(part 3 is here)
When I joined the CE team in 2000, l knew nothing about embedded systems, and exactly as much about non-Intel processors. Furthermore, I didn’t know what I was supposed to do on the team. The Pocket PC had just come out, but the team was already pretty much set for the next release. Given my recent kernel experience with Windows Millennium, it made some sense for me to work on something similar on CE. I was still in the reluctant test lead role at this time, so they assigned the kernel and file system testers to work for me. The problem was, that they had it covered so well that there wasn’t much left for me to do. They gave me some other stuff to own (like drivers), but they had it covered to. Sure, I got to help out, but I was sort of turning into one of those managers who does nothing but manage.
But I still had some time, and I was looking for something “technical”. One day in a meeting, I discovered that they were going to punt/postpone every single bug and feature in the shell code (shell is the GUI on top of the OS – the basic explorer shell on windows). I volunteered to do the work and for some reason my manager and hid counterpart on the development team agreed. My role became the Kernel/Filesystem/Driver Test Lead / Shell Developer. I can’t recall how I actually survived this dual role.
Working on the shell was fun, but more importantly, it was a turning point in my career. When I agreed to take on the work, I thought it was my stepping stone to a software development position. I worked closely with the dev manager and hit all my deadlines – but I also discovered something important about myself. The workload was fairly light. I was supposed to fix 40 or so bugs and add 4 features. I love fixing bugs (actually, I love the investigation process). I love to figure out why things don’t work. The features on the other hand, were sort of ho-hum. The only thing I remember writing from that time was the feature that calculates the daylight savings time rollover. I’m not sure if my code is still running in windows mobile, but at one time it was. When I finally finished all of the work and had some time to reflect I realized something important.- I didn’t really like being a developer. I was certainly capable, but the core of the work didn’t align with the core of my passions. As soon as I finished my features and fixed my bugs I met with my manager and I told him that I wanted to be a full-time tester; no more development work, and no more management. This was probably the first time in my career I really took testing seriously.
Not too much later, I became a test architect. That title doesn’t really denote a specific role at Microsoft – at the time it was more of a fancy title they gave testers in senior roles. I started meeting with other test architects (we had, and still have, a weekly meeting). There were 6 or so of us at the time and we had a handful of projects we’d work on together. We gave a presentation to Bill Gates in December of 2000 (I remember, because the presentation was on my birthday), and it seemed to go well. At the same time, I began to study testing. I started reading books about testing. I found contradictions, good ideas, bad ideas, and things that made me think of new ideas. I know a tester who says that there are no good books on testing, but I disagree completely. Every book on testing is good as long as you read it critically and use the knowledge in the book to confirm or challenge your own ideas.
So, I studied, I read, I tested. I was having fun experimenting and trying new ideas out. I began blogging while on the CE team – mostly writing about the testing tools we used for Windows CE and sharing some of the utilities and slides I was showing at developers conferences. It was a time of a lot of growth for me, but by 2005, I felt I was ready for something new. I had been in CE for about 5 years, and we were wrapping up CE 5.0. One of the testers I had mentored for several years had the passion and knowledge to be a test architect, and it made sense for me to step out of the way. I wasn’t sure where to go, so I asked Harry Robinson if he had any ideas. Harry was in Engineering Excellence at the time, and I thought he may have some insight into what groups could use someone like me. As it turns out, Harry told me that he was leaving Microsoft, and that I should apply for his open position. So – I did, and in April of 2005, I transferred to the Engineering Excellence team.