Should Programming Classes be Covering Software Testing, Too?
You might have noticed the recent publicity blitz on behalf of code.org. Or, you might be living under a rock. Code.org was formed earlier this year with the goal of providing young people with mentorship and education in the computer science industry. There are a number of organizations like code.org – Girls Who Code, coderdojo.com, and codecademy.com, just to name a few - and their goal is admirable.
Software has become a necessity, rather than a luxury. Software powers everything from our banks to our schools, from shopping to socializing, and we now have a dependency on it that is as strong as our dependency on power grids and fossil fuel. And, just like those resources, we have an urgent need to find and harvest the talent to keep that infrastructure running.
I have said it before and will say it again (and probably again, even): There is no better time to be in software than now. The amount of innovation and imagination in tech circles is boundless, largely powered by the “open” movements in various areas of the industry: open source, open data, open API’s.
Money is once again flowing freely from investors who are interested in funding the “next great thing” and, while many software enterprise organizations are still tightening their belts and hiring overseas, more young talent graduates every day and leads us where we didn’t think to go on our own.
From the local level to the global level, organizations like code.org recognize the need for educating and advocating in the high-tech industry. Their celebrity sponsors are sounding the call for more involvement and it will be interesting to see how people respond.
I found one recent article by Kim Burgess called Teach Kids To Farm, in which she explores her father’s perspective as a developer-turned-farmer. I won’t go into the details because you should read her post for yourself, but I will say that I found it food for thought - pun intended.
At various times, we have heard the call for more teachers, more nurses, more doctors and more family farmers. This is the first time I've heard the rallying cry for more developers, but it's coming at a time when we have a shortage of some skills (try to hire a Java developer these days) and a greater dependency on software than ever before. In fact, those teachers/nurses/doctors/farmers are all tapping into technology just to accomplish their daily tasks.
In my opinion, if there is anything missing from this initiative, it is a focus on the sister discipline of software testing.
It’s an area that is often underrated by some organizations, that is, until they try to use a buggy tool or an unstable API. If we are going to rely so heavily on software as the infrastructure for the finance, medical, government, and education sectors, it’s important that we build quality software those industries can rely on. I would prefer that my doctor have bug-free access to my medical records and that my banking transactions get posted accurately. And, with all due respect to programmers, I like to think that those applications are thoroughly inspected by professional testers before they hit production.
Software testing has been on a path toward convergence with programming for some time, especially when it comes to test automation. At the same time, many vendors have tried to create tools that allow non-programmers to exercise code in ways they would not know how to do by themselves. It’s surprising how slowly this discipline has evolved over the last two decades - often because it has all the overhead of code maintenance without any associated direct revenue.
And yet, the benefits of having well-maintained automated tests in a continuous integration environment can’t be understated. At the same time, software testers provide much-needed input and perspective from exploratory testing and user acceptance testing. In my opinion, nothing can replace the “human perspective” as part of the quality assurance cycle.
So, sponsors and mentors, let’s put our shoulders behind movements like code.org, but let’s also put some energy into building the next generation of software testers as well.