【CAREhER ✕ Women Who Code Taipei】系列專訪 Ep.9
Hi and welcome to episode number 9 of 20-20 women lead podcast. I am the host of this episode, Lily Hsu.
In this episode, we’re going to talk about quality assurance, continuous integration, continuous delivery, and Robot Framework. These terms are most often mentioned in software engineering and are introduced very briefly and clearly in this interview.
Our guest, Lisa Lee, is a senior quality assurance program lead at General Motors now in the US. She has more than ten years of experience in quality assurance and has great knowledge about CI/CD flow and Robot Framework. She graduated with a bachelor’s degree in Computer Science and a Master’s degree in Data Analysis. And she also has a project management professional license and an agile leadership license.
As a software engineer, I’m very excited that we can learn a lot from her experiences. So let’s dive into it!
歡迎收聽 20-20 Women Lead Podcast，為了迎接 2020 年，每月 20 號 20 分鐘，讓我們一起認識一位科技女性的故事，學習他們如何創新、挑戰現況、勇於開創屬於自己的路。
Lily: Hello Lisa, it’s great to have you here today.
Lisa: Hi, it's my pleasure.
I heard there are some stereotypes about software engineers, like engineers are very good at repairing computers. I also used to think that the quality assurance engineer is responsible for doing testing manually. Can you give us a brief introduction about the difference between software quality assurance engineer and test engineer? What are the responsibilities of a quality assurance engineer?
Well, speaking of quality assurance, a lot of people think a job for QA is doing the click-click thing, testing or finding bugs and debug them. A lot of time they introduced themselves as: I break the build. It’s not just a stereotype but it’s also the behavior of self-undermining your job as a QA I thought. I often have to remind my team that you are a QA and there is so much more to it. You are not just a tester. Think about it. What and where needs quality? The answer should be everywhere. Your requirement needs quality, your code needs quality, your testing needs quality, your process needs quality. Of course, your product delivery needs quality. A lot of people did not think about this but your team dynamic also needs quality. You don’t want your team to have a lot of drama, not the following process, they all need quality. Testing is just a subset of quality assurance.
I also believe that a good QA team does the testing in parallel within a dev cycle. This means your functional testing can be finished up as soon as the developer commits the code. After that, you are doing an integration check for quality assurance. You make sure everything works together and your web services is integrated with UI perfectly, your database can pass through the data as needed. A lot of people think this is impossible. Well In my experience, I am always proud that the projects I led upholding the principle of “Dev Done, QA Done”. We don’t have any leftovers behind each sprint, to be honest.
I really like the part that you said: “quality is everywhere”. During the preparation for this interview, I found that you have been doing quality assurance for more than a decade. I'm curious what do you think is most rewarding (experience) doing quality assurance? What is the reason for you to continue and become a Senior Quality Assurance Program Lead now? And what do you think about the job value of quality assurance for a company?
That’s a great question. I actually get this question quite often cause people to get confused about my background and it doesn't quite match what I do now. I do have a CS degree. In my late 20s, I acquired my PMP. At IBM, I did a lot of DevOps work. I did have my own startup a long time ago, so I have a lot of business experience as well. But why do I choose to stay in QA? Sometimes it’s a myth to myself as well. People would ask me what you are doing now? it’s QA’s job, why are you doing it?
I see QA as such a sacred job. When I am coaching my team on how the best practice process and it’s important to an execution team, that’s usually where I get all these questions. But let me ask you again, where and what needs quality? The answer is everywhere. I take implementing the best practice as part of my job and probably the most important part. If I am seeing my team not communicating or collaborating with each other which they should. I bring it up to the retro and remind them.
Sometimes as a leader, your job is not delegating these tasks, your job is to resolve the conflicts. So you can make sure that you have a quality team. As I mentioned earlier, I can always hold my team accountable for “Dev Done, QA Done”. It’s because I believe a quality process, doesn’t just provide the team a standard to follow. It also provides the risk production, sorry, the risk reduction. It would be horrible if QA is providing risk production. Whenever one is in the muscle memory of following the best practice, it’s like a car being assembled and streamlined. It should be efficient. Why? Because of the manufactory, it takes their time to startup the SOP so everybody can follow. I’m not a big fan of the process, but I also don’t agree that let the process get in the way. A lot of teams do have their process, but still, they can not optimize their efficiency. Why? Because they didn't think their process can be changed. A good process should be always under reviewing and revising. The team has to go through the battles, to define what’s the best practice for your team. And industry-standard best practice doesn't mean that you can’t make it better anymore. I believe that a good QA will be able to facilitate those important changes and lead them to help a team to achieve quality in every single way.
So I want to dive right into continuous integration and continuous delivery. These two terminologies are abbreviate as CI/CD, most often mentioned in the concept of agile software development. Can you give us an idea of what was the method before implementing CI/CD flow? What kind of problems are fixed after implementing CI/CD? And what role do CI/CD play in the development process?
It’s a very deep question actually. Cause you mention agile, you mention CI/CD. For a starter, I wanted to talk about agile. It’s such a myth for a dev team or for the company even. But the reason agile is becoming popular, it’s because it's a methodology. Remember, agile is not a process. To me it’s a methodology, it's a spirit. That means you can always pick up and go. But to backup agile, you need review, collaboration, and communication. When I do any pieces of training about agile, I always have my team remember, agile is about 3 words: Reviewing, Collaboration, and Communication.
And about CI/CD, why CI/CD is so important? Most people mixed CI and CD, to begin with. Not just that, they also forget about CT, which is continuous testing. An automation CI/CD pipeline is not just about testing, it's the things you do during your dev cycle. Like the code managing part, it’s mostly representing the CI part; scheduling the build deployments, they are more the CD part; they set up your promotion criteria for your build, run your automation test to test it, that is your CT part. And all of them have automation involved.
There’s a concept that I really want to clear up with people that automation isn't for fixing problems. It is providing enhancement for your dev team, you dev process to be more efficient and productive. Think about it. This is an example I like to give. You have a new car and you can drive it. But if you want to run like a race car, you add the notcher oxidize to help your engine to be more robust during the combustion. Would you say your car was broken? And if you don’t do any homework and just buy everything that people tell you to buy for the toolset and put it in your car. Then it’s very possible that you can break your car which was working.
It’s the same for the organizations. Take your time to learn the benefits of the tools. Is it fitting your budget? Is it easy for your employees to learn? Does the current technology stack for your company compatible with your CI/CD toolsets? To be honest, I don’t have a preference for tools. I think there is a reason it's selling. It’s on the market. It's running. Any tools which on the market for CI/CD pipeline does its job these days.
Speaking of test automation, while there are so many tools are running the race on the market. You recommend "Robot Framework", can you give us a quick intro about this tool that's not so familiar by engineers. Can you share more about the trails when you or your team start using Robot Framework and how do you integrate it into your CI/CD pipeline? What're the challenges you have gone through during the implementation?
I wanna work backward for your questions. I want to talk about the challenges through the starter. I think two, at least in my workplace, two of the biggest challenges for test automation is, first, not all QA can be great programmers or they have prior experience of coding, JAVA, C#, or anything. Lots of technical expertise was the first. And second, would be, engineers, seem that they can’t balance the load between the manual test and the automation test. They don't know when should I do an automation test and when should I do the manual test, do I have to pick one? Because we have so much work in sprint time. A lot of times that I can only pick manual tests or I can only take automation testing.
A lot of people just go by their comfortable, which is the manual test. But let me make it clear. Manual tests are not going away because, first of all, your product is made for human beings. You always needed a human to feel your product. Therefore, test automation is supposed to be designed for raising the quality of the delivery. Finding issues earlier and test faster. It is supposed to enhance efficiency and increase productivity for the test cycle. It is not meant for avoiding issues, because you cannot prevent issues. You're not the one to writing code. But you can definitely lower the production risks by running test automation constantly and increase your Data-Driven Test Coverage. Robot Framework is a wrapper that is based on Selenium and Python.
It used a methodology called keyword-driven that provides users using a natural language to write a script. What it means is, I can use natural things to write a script which is the naturist programming languages based on, I can use Chinese to write my automation scripts, I can use German to write my automation scripts. You don’t need much prior knowledge of programming at all. You can pick it up and start writing a test automation tomorrow. The installation and setup take in 15 minutes for someone have not experienced any programming. Because the words were designed in natural languages, your business team can definitely read your script as well. You save time to develop your manual test cases and automation scripts separately. Your robot scripts will be able to accomplish those goals at the same time.
Can you share with us an implement case with the Robot Framework?
At my current company which is General Motor is that for the last 3 years, it has been challenging to create our own framework within Java and selenium. The challenging is like I mentioned early, the lack of expertise in programming. This is the tool we have been helping the other companies wherever I go. If I go to an interview today, I will introduce to them because it’s such a great tool for companies to want to pick up on test automation. So when I introduce this tool to my own company. It’s like an opening situation that we finally realized, creating our own framework can be such a challenging task. So I am working with my company, the leadership to create a POC, which is proof of concept, project. We have participates that have no prior programming experiences that have never done any test automation.
They’re just the traditional QA, the level from junior, middle, and senior. So we are in the middle of implementing this tool, I am very excited and I am very confident that we only going to have good results coming up. But, for my prior experiences working with the smaller scale of companies. I think we spent less than a month to start our test automation using Robot Framework for everybody to learn and set it up with the Jenkins CI/CD pipeline. And the funny thing is that I used to work with a director. He went to VISA, and now, VISA is using the ROBOT Framework. They also have a great implementation case that they integrate with the CI/CD pipeline toolset. It’s used in their daily dev cycle. Robot Framework is designed by the engineers at Nokia, which is another big company that is using the Robot Framework. So with those stories to back it up, again, I am a big fan of this tool, it simplified so much of dependency issues that we need for many programming tools.
What’s the most challenging obstacle happening in your career and how did you overcome it?
A lot of people there so don't know that I’ve lived in Taiwan most of my life until I was 30. And I went to a school in Taiwan which is Chinese Culture University which is not a very high ranking school. In Taiwan, it’s very competitive, if you don't go to a good public school, for your high school or college, you’re done! I guess because I didn’t go to a very good school in Taiwan and that kinda makes my career in Taiwan a little bit challenging and difficult to pursue. I always feel that I won’t be able to get in one of those fortune 500 companies. Then IBM reached out, I was a contractor, they saw me that I have lots to offer which I always in debt to them, and I am really appreciated.
They gave me an opportunity for me to prove what I have to offer. But even working at IBM, I always scared that if I today left IBM where else I would go? Would people still go to look at my education experience or they would actually want to know what I can do? So just one day, I just decided and I picked up all my things and I moved to State with $2,700. I moved to the state and I live in Austin, Texas which is one of the most fastest-growing cities for engineers company and IT companies. With $2700 dollars, there’re not many with many places I could rent. And did I mention that I didn't have a job lined up? Actually, I got two, three offers within the month. One of which is actually IBM, because they saw the experiences I had. I decided to take another offer because I want to experience different company cultures and take on more new challenges. I cannot think of what’s the most challenging obstacles, but I have challenges all the way. I would say this duration of me moving from Taiwan to a foreign country and as an Asian woman, it is never easy.
Since this interview is coming to an end, any advice or suggestion for people who are going to work as an engineer or a newcomer? How can women use the right concept to develop their careers?
I would say if you are trying to become an engineer in IT, or you are college grad and you're looking for a job in IT and I would say I always encourage my team even though they are working in a QA team- go explore. Cause IT is everywhere, now it’s such a big playground for you that any job can be technical these days. I got a lot of QA that come to me and said I feel like QA can not make me much money or gets where I want to stay technical. Well, you know QA can be as technical as you want to. People who work in marketing these days have to learn python and data analytics skills. That’s technical.
As an individual, for your career, never limit yourself and even if your title is an engineer is a QA or developer, you can always reach your hands far. This is my philosophy for my job for my career. I always encourage people to create your job. If someone comes to me and says I want to change the field and do you know why you want to change it? Is it because that you found something takes more interest out of you or is it because you just simply don't like what you're doing right now? Cause not liking your job and wanted to quit is not enough reason. If you don't like your current job, change it. Make it different, make it a job that you will like. As a QA, a program lead, if I only follow what my job title offers me, I would get bored very quickly. But I'm reaching my hands doing CI/CD, test automation, I do a lot of programs for requirement quality and I mentor a lot of Scrum Masters in my workplace. And I create this awesome process for people to follow and I am just a QA. So it’s not a suggestion for just women. It’s for everyone, every individual that creates a job you like. If you do that, I believe that you will have a bright career for you ahead.
As a woman, never listen to or think that men always make more than women. You go for what you want. You as for it. Sitting there complaining that you're not making enough you're not treated equally because you're not asked for it. Sometimes life can surprise you when you ask for something you want.
I love the ending part. Go for what you want and don’t limit yourself. Thank you so much for sharing a lot with us today, Lisa.
It’s really my pleasure!
Thank you for listening to this episode. I’m your host, Lily Hsu.
After talking with Lisa today, I knew more clear about the difference between CI, CD, CT. I also really like her quality assurance spirit and admire her courage to face every challenge. What do you think about today’s content?
For the next month, we will invite Joey Rosenberg, interim CEO of the Women Who Code community. If you want to hear more stories about women in the technology industry, welcome to leave a review to us and don’t forget to listen to our podcast on the 20th of each month. See you next episode.
20-20 Women Lead Podcast 希望能鼓舞科技女性勇於突破，逐漸消彌「科技業」兩性主管的比率差異。 透過訪談，帶聽眾了解，正在/已經踏出與眾不同一步的科技女性所作的事與心路歷程。
在 2020 年前我們將訪問 10 位女性、製作成 10 集、20 分鐘的節目、在每月的 20 號發佈。希望能啟發科技女性，率先採用新的技術、設計嶄新的產品/服務、或創造新的模式。鼓勵女性勇敢踏出「與眾不同」的一步、接受挑戰。