Hung Nguyen, the CEO, president, and founder of LogiGear, sat down with our very own Cameron Philipp-Edmonds to discuss how far technology has come in the last twenty years, where it might end up twenty years from now, and what role testing plays in it all.
Cameron Philipp-Edmonds: Today we have Hung Nguyen, the CEO, president, and founder of LogiGear. He will be speaking on technology and test trends of the future.
Hung cofounded LogiGear in 1994 and is responsible for the company's strategic direction and executive business management. He leads the company's innovative approach to software testing, test automation, testing tool solutions, and testing education programs. Mr. Nguyen is a coauthor of a top-selling book in the software testing field titled Testing Computer Software.
His experience over the past two decades includes leadership roles in software development, quality, product, and business management at Spinnaker, Power Up, Electronic Arts, Palm Computing, and other leading companies. He holds a bachelor's of science in quality assurance from Cogswell Polytechnical College and has completed the Stanford Graduate School of Business's Executive Program.
Is there anything you’d like to add to that biography?
Hung Nguyen: I'm a jazz musician as well.
Cameron: That's awesome. Do you have a favorite jazz musician?
Hung: Oh, I have many. Several, but Miles Davis would be one.
Cameron: That is cool. All right, the first question we have for you today is: Technology has changed a lot in twenty years. What do you feel are some of the highlights of these past twenty years?
Hung: There are several dimensions to technology today. As I recall we used to go from using a very heavy desktop to using a laptop, and nowadays we're talking about tablets, smartphones, and all the mobile devices. From a connectivity standpoint, we're happy to have connections to local networks like LAN and WAN, and then standard Internet, and then Wi-Fi, 4G LTE, and the services now available, as well cloud computing. If you look at communication tools, we go from the boardrooms to digital meetings. For instance, you and I can do this Skype interview and record it. We don't have to go to a physical meeting; we can do virtual meetings.
Also, we used to have prints of hard copies. Now we use Adobe Acrobat and other software and we can access it all through mobile devices. There used to be folks that would keep track of everything that is going on. Now, everything is just going on the net. We have social networks, social network apps, and of course location-based technology and big data, just to name a few of what has been happening over the past twenty years.
Cameron: OK, what about the evolution of software development and testing? What are the highlights of the last twenty years for that?
Hung: We have aspects that led to a better development lifecycle and configuration management. We have agile. We do continuous integration, we do zero downtime deployment, and we have a lot of automation. From a people standpoint we have teams of people all over the world distributed across borders, time zones, and households. And of course we also have crowdsourcing and outsourcing.
From the engineering standpoint we have a better process of work and management control, the ability to test automated systems, improved education, and things like that. We have better auto-update mechanisms. For example, you have a phone—iPhone, Android—and the apps that I am using push upgrades and updates—unlike the old age, where you have to look and see and you have to wait for six months, or even twelve months, to get that upgrade. All of that has changed.
We have better tools. We have full-speed Internet, virtual machines, and different commercial software. We have CRM, automated testing, exploratory testing, and others that are very available as well. If you talk about testing and test automation, testing practices push the software development lifecycles a lot earlier. We have test-driven development—tests for everything. And everyone becomes a tester. Developers become testers, or it happens with the people who created software. Everybody is. So developers are testers, users are testers, and testers are testers. So there is a wider range of people who are doing testing. Testing is very well recognized.
We also have nowadays a lot of cloud-based resources and visualization. Those help get better software and infrastructure for testing and deployment. It also replaced a lot of dependency to use traditional server configurations.
Exploratory testing is very well recognized and very well accepted now in addition to automated testing. We now understand that there is a great challenge in dealing with rate of change for test automation—there is a necessity. You need to look at how we can improve the organization and handle all the things so we can keep up. That is very well known today.
Cameron: Right. That is very cohesive and impressive to be able to fit twenty years into that short of time. Very well done!
If you were to go back to 1993, a year before you cofounded LogiGear, what advice would you give yourself?
Hung: I actually am pretty happy about it, although there were a lot of ups and downs. I kind of really enjoyed all of the ups and downs—up some times, I got kicked in the butt many times, so no regrets. Having said that, I think when I speak of the work and the passion that I have been part of over the past years—also having the opportunity to work with Hans Buwalda and a lot of very smart and talented people—I wish that I maybe had known some things earlier so that I could have solved some problems earlier. That is the thing that I want to talk about. I got a lot of tests automated, and I wish that I had understood that the creation of the testing has to be quicker and easier—also, it should have been automated. Today, the creation of the automated test is still a manual effort.
The second part of that is the updating of the test must be easier, and that should also be automated. We are still not there yet, and we are still realizing that.
The third part is you have to do a lot of coding—or know who to write the right code, or good practices in writing code—even though when the programming language is simple, English-like, all of those need to be reviewed. And the review process must be easy and quick. The big problem before every release, and I want to mention this, is that we run thousands of automated tests at a time, and then when you have all of these failures, oftentimes they are false positives, and it can be a mess just to clean them up. The analysis of these failed tests or false positives should be quick and easy, and it should also be automated as well.
The final feeling is that I wish there was a lot more work put into the sharing of the test. The sharing of the tests must be quick and easy too. Those are the things that I wish I had known. I wish I had known a lot more of those, and then I’d have a solution to all of them by now. But that’s the thing with test automation and software development: It moves at such a fast rate that it’s hard to say what I would have changed.
Cameron: OK. What current trends and testing do you feel are, as of today, the strongest or most successful, and which ones have the biggest flaws, do you think?
Hung: Some of the technologies today—and take testing using cloud-based resources, for example—are now really accommodating to the management and testing of a lot of test environments and have made it all more accessible. So those are really good. Also testing in an agile environment—the agile movement is great, but in my own opinion, we still have a lot of work to do on how to test effectively in an agile development lifecycle. Good testing practices and agile can be combined, and that can be a lot of fun, figuring out how to do that. Another one is the shift from tools to method, such as test automation framework, xUnit framework, and test-driven development. One of the things that I am most passionate about in testing is the test-design-centric automation. At the end of the day, even though we sell tools, you know very well the tool can benefit from embedding a better test design method in it. That's what we did. I believe one of the greater methods is to help designing the automated tests well.
With respect to the flaws: I think testing maturity model, based on capability maturity model. You don't solve technology problems with process, especially heavyweight process. If I had to name another one, I think that it is very important that we get some good metrics. We need some good metrics, whether they are business-oriented metrics or software-oriented metrics. You have to use it as part of your test philosophy so you can improve ROI, your test efficiency—and the big selling point is being able to improve your methods for good testing.
Cameron: OK. Looking forward twenty years, where do you see testing and software development? I know it is kind of hard to project that far in the future, especially with how far we have come in the past twenty years, but where do you see technology in twenty years?
Hung: I think that I’m so far away from a lot of the day-to-day software development activities that I cannot really tell about what is happening or what is going to happen. But I think that software and the development of software will be a lot faster. I think the technology will be there to help us do that, and we might get updates by the software updating itself.
However, sticking to something that I know well, I think over the next twenty years, in respect to testing and test automation, I think test automation and testing will be done better. Software testing and test automation methods will be better codified, including some standardization of a “test” or “test case” for portability across platforms and production environments, automated test design practices, and test automation lifecycle practices. Availability of test development and test automation common platforms—test and user community can share or publish their work, much like Shutterstock.com, where photographers can share or publish their work.
Automated test design techniques will better come alive. In the next twenty years those are going to be well codified. We will have a better one-push-button test automation. Today it feels that test automation is very primitive and we’re not there yet, but I think we will get there, with close to 100 percent test automation. To accomplish that, there will be a lot of experimenting and challenges that you will have to overcome.
Cameron: I think you are right. Those are very good guesses, and I hope they are right. Where do you see yourself in twenty years?
Hung: Probably playing jazz full-time. And, you know, touring around the world with my fellow musicians.
Cameron: All right.
Hung: I probably have another five years in my software testing life that I want to do. Beyond that, I will probably say playing music. Maybe I have another book in myself to write, but it is probably not about testing. It will be something like The Strange Life of Hung Nguyen.
Cameron: OK. Do you have any wisdom or advice you would pass on to the next generation of developers and testers?
Hung: Yes. Yes! Looking back and sitting here, there are a number of things. The first thing is you really have to have passion for the work that you do in developing or testing software. Passion and enthusiasm give you unlimited energy. If you don't have that, you need to find your source. You also have to have a lot of strength and know your strength—what I mean by that is you have to know what you do well. If you are a very good analytical person, then be that person and do test analysis. If you’re a math person or whatever strength that you might have, build on that.
Next, find someone that did really well what you want to do and model after them. Then, you also need to find and create a framework that you can learn, you can adapt, and—also very important—you can unlearn from as well. This is an ongoing process—there is ongoing learning; you have to have a very good framework to put them in. Then, create a well-mapped plan to execute for motivation. You need motivation—make it a habit. You have to have it. Be resilient! Stay with it! There is going to be some tough times, but it is learning—it is not going to be the destination that you are looking for. Finally, find some good people with whom to be around ... Fellowship. Team up with the best people, the people that do the things you like to do and would like to do the things you want to do, and hang around with them. That is the best way to share and that is the best way to learn. Those are the things I keep in my entire career, and it really helps me enjoy what I do: sharing what I am doing. I do not know what to expect, but I think that I am happy at the same time.
Cameron: All right, fantastic. Once again, this is the ever-passionate, ever-innovative, and ever-resilient Hung Nguyen. He is the CEO, president, and cofounder of LogiGear, and he has been speaking today with us about technology trends of the future. Thank you so much.
Hung: Thank you.
Good discussion and lot of great points.