As anyone working in the technology industry can tell you, the term "engineer" is used frequently to describe a variety of roles, including software developers and programmers. This is a phenomenon that The Atlantic explored in a recent article, "Programmers: Stop Calling Yourselves Engineers," and as the title suggests, Ian Bogost's take is that software developers can't truly call themselves engineers in a traditional sense.
I agree. Rather than just trying to squash the trend, however, I think that software developers should be trying to think more like traditional engineers, and should even be held to higher standards.
A key differentiator between software developers and engineers is training. This training relates to both the actual certification that is required to practice, as well as the more structured and methodological approach that is instilled in engineers during their formal education. Crucial to this training -- and one of the skill sets that I think is most needed by software developers -- is ethics.
In a previous blog post, I wrote about how an ethical code is needed for software programmers, similar to those that engineers must adhere to. Software developers need to have a greater sense of how their work is impacting society as a whole, and this becomes increasingly true as more technology companies grow and aim to become platforms. Once a technology becomes a platform, other companies and individuals use it as the building blocks or engines for their products and service offerings.
Take something like Apple iOS as an example. It's a powerful platform that other developers are building programs for -- and not just apps like Angry Birds and Tinder. Life-saving technologies like glucose testing apps or even ultrasound machines are also hosted through iOS, so there needs to be a certain level of expectation that the platform has been constructed properly and will not fail.
Bogost points out in his article, "Today's computer systems pose individual and communal dangers that we'd never accept in more concrete structures like bridges, skyscrapers, power plants, and missile-defense systems." This is very unsettling as every day, we are more and more dependent on these so-called platforms designed and developed by computer programmers who do not comprehend the level of dependence on their products. For them, a bug is un-planned work that needs to be fixed. For their users, it could be a matter of life or death if, for example, the person is unable to read his or her glucose level or the doctor in a remote place can't get the ultrasound machine to work prior to an operation.
Computer scientists and software programmers need to be held to a higher standard of quality and ethics. It's unacceptable for a group of programmers to design, develop, and release a platform, which they want other people to use, with known bugs and performance problems. Imagine if the original engineers of the Ponte Vecchio bridge in Italy would have designed a structure that they knew had problems. How long would the shops on the bridge have lasted? How long will your customers last?
With more and more processes being managed through computer systems -- like mobile banking and healthcare data -- and many more moving in that direction, it's more important than ever that the developers necessary for building these programs have adequate training, higher ethical values, and more felt accountability on the outcome of their work. Its time for software development to be viewed as critical as the development of a new bridge or road, at least for some types of software.
This article is published as part of the IDG Contributor Network. Want to Join?