All to often I find software does not function the logical way it should. That to use the software efficiently I have to think like the programmer(s) or figure out what they were thinking when they wrote teh program..
The old saying about walking a mile in someone else's shoes.... people do this all the time in using software.
Computer are made of earth and run thought processes of the programmer(s) thus making them a stone image of the beast otherwise known as man.
But this is not the only place the thought processes of a few are imposed upon many more, for religion, government etc,,, all use abstraction as most certainly so does programmers. And its in understanding this that we also have the metaphorical key to the bottomless pit. For that key is the understanding of the gears and bearing of how we process abstractions and why we came to create them.
The main ethical issue regarding software is the false constraints those in the field of programming subject the users to. Who doesn't know how barbarically constrained the Windows Command line is? But it is done that way under the philosophy established by Bill Gates "the way to become wealthy is to make people need you"
Ethics went out the windows when Bill Gates yelled "Piracy" over a matter of people being very tired of waiting for what they had paid for and Bills BASIC itself, was a port of those who created it.
The only way to bring Ethics back into the field of programming si to not only make it all open source and to disallow software patents (which itself is complete fraud) but to properly approach software development the way it should had been done to begin with. In the way that is natural in teh creation and use fo abstraction, without false constraints.
To understanding this is indeed possible see http://abstractionphysics.net/