I had an opportunity to do one of the lightning keynotes at STARWEST 2018 where I talked about the start of my career, and how I got to speak at testing conferences.
Fresh out of college I was a Naval Architect, designing ships and submarines for the U.S. Navy. I was building model ships, often 15+ feet long and thousands of pounds, and testing how much power it took to tow them down a ⅝-mile-long swimming pool. My title was Naval Architect when people asked what that was I would generalize it to Engineer, but I was a Tester.
Along with the physical models of ships we were building, my team also created computer models of ships for computer simulations. That meant we had a lot of computing capability around, which led us to play around with the Web in its very early days, which led me to move into the software industry. I got a call one day offering me double my salary, and I decided it was time for a career change.
I became a Software Developer at a dotcom right before the internet bubble and stayed all the way through the bubble bursting. And all through that time I continued as a developer, with my IDE open every day, writing code in Perl, then Java, then too many languages to keep track of. But I started to fall in love with tools to help me develop, to help me check the quality of my code, and to help me test.
Before I knew it, I was a tools guy, focused on continuous integration, then continuous delivery, and now DevOps. And through it all, I still considered myself a developer, and I still do. I like building. Whether it is writing application code, or integration code, or even just assembling a pipeline my focus is more on building than breaking.
But I also still consider myself an engineer. Engineers apply scientific methods, experimentation and analysis, to the solution of problems. They evaluate needs, options, and tradeoffs, and considering their impact on the end product, which to me means quality. And since you use testing to evaluate quality, that leads to testing being a vital role in any engineering discipline. I don’t think you can truly be an engineer without having some commitment to testing.
In many disciplines, testers are referred to as Test Engineers. In the software world, the “Engineer” is routinely dropped and often forgotten. But just as I don’t think a Software Engineer can ignore testing, neither do I believe that a Software Tester can ignore Engineering. Again, scientific method, experimentation and analysis are the tools of the professional software tester.
I don’t think like many testers, thinking “how can I break this?” but I do need to think of “what did we forget?” and “did we consider what would happen if…?” So while I might not consider myself a really good tester, or a strong tester, I do think listing Tester among my roles is valid.