Building a Career in Software Quality
From Anita Borg Institute Wiki
Background information on testing: 1800s - The term bug has been found used by Benjamin Franklin. 1947 - Grace Hopper found first software bug. A moth! 1962 JUL 22 - Mariner I Spacecraft diverted from its path due to a software bug. 1985 - Terac-25 Radiation Therapy operates in two modes low-powered and high-powered. One requires the use of metal plate. Due to a bug three patients died and others were incredibly sick. Also faulted to bad software practices: no code review, no testing of hardware + software. 1993 - Intel Pentium Floating Point Divide bug cost $475 million dollars.
Michelle Dauphiny - Principal Test Lead, Microsoft (10 years, took 4 years off to be with her kids) Susan Johnson - Director of QA, CA Technologies (30 years) - When she started, the field of software quality didn't exist. Claire Ngo - Senior SDET, Amazon (8 years) - Ratio of devs to test is vastly skewed toward devs - Started as a developer and did everything code, test, put into production Pooja Kedia - Senior Software QA Manager, Symantec (8 years) - Started in QA interested in moving to development, but stayed caused loved testing
Can I grow as an individual contributor? CN: As an IC, you get to work on problems. When you start, you need help from more experienced people to tell you what to do, require coaching. As an SDET II, you are responsible for going out and asking for the help you need. As an SDET III, lead a team to provide technical leadership (as opposed to managing). Ensure good test coverage for the product. Do detailed design for the team and delegate some tasks to junior members. As Senior SDET, work a lot more with manager on strategy. Since so few tests, we act as consultants to devs on best practices. SJ: At CA there is also similar track for our ICs.
How far can you go as a manager in the testing path? MD: She went through the PM interview loop, bombed half. At the end of the interview, interviewer commented, "She keeps trying to break things and have others put it back together." Microsoft brought her back for test interview loop, and sailed through that one. Opportunities are endless. Test Director has been with the company for fifteen years.
PK: We have QA Directors and Senior QA Directors. You will move on from QA (at Symantec), but that is not a celiing of QA as you will still use those skills.
What is necessary to be a good tester? SJ: Communication is key. CN: You need same technical skill set. But you need a different mindset. To find motivation for that, you need to care a lot, a lot about quality. Try every possible way to make it break to prove that it's working (or disprove). Look from user perspective: usability, requirements, design. At Amazon, it is easy as customer-centric. MD: Talking with development manager about yin/yang of testers/developers. He and I came to conclusion, the job of devs increase feature set. Testers decrease entropy so that you don't through out product and hope that it sticks to the wall. Testers make sure right feature set and functions properly to the users' expectations.
Best to stick to one group and get deep exposure there or move around teams and get breadth? PK: Started deep, then went broader. One feature, then more the product, then different products. The more broader I went, I grew in management. CN: As IC, I go deep. That is my interest, I did not go back and forth with management. But I have had multiple experiences from working on flight software to now e-commerce. SJ: For Quality Assurance, you need to be open to possibilities and listen.
What kind of tools are available for learning? Internal, test specific conferences, books besides peers and managers? SJ: I think you learn on the job. Conferences are great and have learned a lot here at my first GHC. But I have learned most on the job, writing the testing requirements and getting buy in from partners. You don't want product in the wild and customers to find bugs, as they will say, "QA should have found that." MD: On the job: Important to be an expert on the tools and technologies you are using today. Personal network with SDETs around the company and outside. Testing is something that you can take on the go. After an ordeal at the airport with a lack of ID where TSA was verifying someone's identity, prompted me to think about how someone could get around this. This lead to me thinking about customer identity in our software. There aren't a ton of trainings and conferences. Microsoft has tons of testers and we write code to test code. Many companies still do a lot of manual testing.
At a company that doesn't invest in testing, how do you convince management to change this? MD: It almost always comes down to dollars. I have been pitching an automation framework to my upper level managers. I had report work on this on the side, and 4 bugs found have saved us $1 million in last six months. Our operation staff didn't have to deal with those over and over. It was easy to get buy in and also proved worth of report. Important to get buy-in from partners as well to help convince management. PK: Show metrics of worth. MD: As women, we're not good at tooting our own horn; metrics depersonalize this. CN: It can take a long time to convince management, in meantime ask right questions to prompt the devs to consider QA. SJ: Code reviews have been mentioned, but do make sure test case reviews are done.
Characteristics of tools: SJ: At CA we're currently doing Agile, which makes automation costly. It is only done when it is most needed. Do need to review automation down the line. MD: We often come from dev backgrounds, so come in thinking about new automation. Good place to start. Don't build something that stands on its own and isn't in the main flow, it won't be used. A lot of times, testing systems don't get scrutiny products does. Good thing to do is build a system that other teams can use.
How do you argue against "move to dev"? Also, I find myself bring critique skills home. Help! PK: I dealt with that at the beginning. I even tried being a dev for a while, but I returned to testing. I built my brand as being skilled at QA. For the second question, developing your soft skills will help. (As said in beginning of talk about devs don't want to be told they've built buggy code.) You want to have good relationship with the dev. CN: I work with a team of superstar developers and have high unit test coverage. I came in and _still_ found bugs in their software. It's because QA comes from a very different perspective. MD: In my workgroup, no one is confused as my role. PMs: "Is the spec ready for your manager? Is the spec ready for your manager? Is the spec ready for Michelle?" I didn't become a critical person because I'm a tester, I became a tester because I am a critical person.
Is it true that equally experienced dev and tester that a dev gets paid more? PK: Symantec based on market need. MD: When I hired in at 1997, devs got hired at one level and I got hired at level below. Microsoft did work to fix this and now as a lead, and I'm at the same level as my PM and Dev counterparts. SJ: When I started, we were paid less, but this is also been fixed. CN: At Amazon, it is equal. Note: Senior ICs can make more than their managers. PK: Also, at Symantec that can occur.
Have you every been perceived as technically behind due to your tester role? CN: We have tough interview loops. The testing interview loop doesn't just check for technical skills, but also testing skills. SJ: That was possibly true five years ago. Now I have people coming in who testing is their career. PK: Fifteen years ago I saw it as a stepping stone (but then I stayed cause I loved it). Now in our interview loops, we look to find out if people coming in are trying to build skills to become devs. MD: Interviewing for current job, had to prove worth for other roles in addition to testing. In last year, has had opportunities to go to Oslo, Norway and Beijing, China to help develop test teams. It was eye opening to them learning the importance of testing.
Comment from Developer in audience from NetApp: As a developer, I am very specialized; our testers have a much broader knowledge. Testing isn't taught at university. Developers come out of university with knowledge of maybe Java and C++ framework and creating unit tests for the code developed while in school. But not with skills of how to test. So hold your head high, because the QA field is _incredibly_ important and absolutely required for quality software.