It's long past time that there was a discussion on Ethics within the context of software development, particularly since it is no longer the isolated area of expertise that it was prior to, and in the early stages of, the Internet.
Back in 1999, Lawrence Lessig wrote a great book that was revised in 2006: 'Code: And Other Laws of Cyberspace, Version 2.0'. Within the covers, the point was made that code is, in and of itself, a regulatory instrument of the Internet. If you're unfamiliar with it, you can read Lessig's article on it in Harvard Magazine.
Of course, code does regulate how things are done - more so than most people would like to think. Examples of it include what posts you see on Facebook and your search results on Google when you log in (you can log out to bypass it). What you see is 'regulated' - effectively censoring under the guise of giving you what you want. I'm sure that there's a semantic difference someone would wish to argue, but by determining what should be viewed by people you do have de facto censorship.
As I have said and written many times in the past, Law is supposed to be built on Ethics. What ethics are involved in software development? To people who have taught themselves or who went through some short course, the concept of ethics in Software Development might be alien - but there are ethics. In fact, the ACM has published and maintained a Software Engineering Code of Ethics and Professional Practice - and for those who understand the underlying philosophies of Free Software and Open Source.
So there are ethical standards when it comes to software development. They just got more complicated because software itself got more complicated as the personal computer era became the Internet era.