Credit: Ben Barbante
The tech world has always been long on power and short on thinking about the ramifications of this power. If it can be built, there will always be someone who will build it without contemplating a safer, saner way of doing so, let alone whether the technology should even be built in the first place. The software gets written. Who cares where and how it's used? That's a task for somebody in some corner office.
More troubling: While ethics courses have become a staple of physical-world engineering degrees, they remain a begrudging anomaly in computer science pedagogy. Yet as software takes over more of our life, the ethical ramifications of decisions made by programmers only become greater. Now that our code is in refrigerators, thermostats, smoke alarms, and more, the wrong moves, a lack of foresight, or downright dubious decision-making can haunt humanity everywhere it goes.
[ What's in and what's out in app dev: 15 hot programming trends -- and 15 going cold. | Show off how much you really know about development by acing our Programming IQ test, round 3 and our "Hello, world" programming languages quiz. | Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
What follows are a few of the ethical quandaries confronting developers every day -- whether they know it or not. There are no easy answers, in some measure because the very nature of the work is so abstract. To make matters worse, business has become so inextricably linked with computer technology that it is difficult to balance the needs and motivations of all invested parties in trying to prevent today's business-case feature from becoming tomorrow's Orwellian nightmare.
The trick is to think past the current zeitgeist and anticipate every future utilization of what you build. Pretty simple, huh? Consider this less of a guidebook for making your decisions and more of a starting point for the kind of ethical contemplation we should be doing as a daily part of our jobs.
Ethical dilemma No. 1: Log files -- what to save and how to handle them
Programmers are like pack rats. They keep records of everything, often because it's the only way to debug a system. But log files also track everything users do, and in the wrong hands, they can expose facts users want kept secret.