When we think of the major forces shaping our civilization, what most often comes to mind are big governments and corporations or breakthroughs in science and technology. I usually consider these forces of change mostly by their results, like improvements in city transportation or cures for disease, rather than the dynamic relationships between people who really drive it all forward.
Lately, there have been quite a few inquiries flying around the web about the differences (or lack thereof) between software developers and testers. It's become somewhat difficult to know if the two are converging, diverging, secret lovers or bitter enemies. But when I took a look at these fundamental roles in software production from a broader perspective, I began to see the dynamic between developer and tester as a most crucial element shaping the future of software. Let me explain...
Like all of life, software production arose out of a primordial ooze. This one was a messy mixture of data geeks, gear heads, and brilliant visionaries mostly operating out of their garages. Back in the heyday of early computer science, the "developer" and "tester" roles hadn't really evolved yet. We often forget, in our debate about their differences in personality, skills, and video game preferences, that these job functions-so essential to our world today-are relatively new and still forming in many ways.
The fact that so much has happened in such a short period of time is mind boggling in itself. In one generation, we have brought a large portion of humanity into an interconnected web of information, entertainment, and unprecedented opportunity literally held in the palms of our hands. So, why do I see the developer/tester relationship so fundamental to having made that happen? It's not just the obvious-one creates the stuff, the other makes sure it works for the people and purpose it was meant for-it's how they each are growing in response to the other, how they are inexorably linked and dependent on each other, and how as one is revealed to be essential for the world we are creating, the other is necessarily seen in a new light.
Right now, a new light is being shone on the importance of the software tester, and for good reason. Major software security issues are threatening critical sectors. Software defects rack up huge expenses for individuals, businesses, and countries every year. As our civilization increasingly relies on the enormous gifts of software technology, making sure those programs and products do what they are supposed to will become more and more essential.
The importance of quality software follows our reliance and interest in using software. And the more people trust software as a fundamental aspects of their lives, work, entertainment, and education, the more software will continue to grow and evolve. So, the tester/developer relationship is one that can't be separated, and (as we've seen in the past few years) is only growing towards greater collaboration. Yet, the distinction between the two roles, I feel, will continue to be clarified as the importance of both the developer and tester continues to be recognized.
Sign up for CIO Asia eNewsletters.