Every profession, in order to be professional (oh, I love recursion), must work with ethical principles. Software engineering is not the exception. Why? Because, without a code of ethics (CoE from now on).
In my particular case, I’ve chosen the ACM CoE. It talks about the relationship of the software engineer with several people. You can find it here. But, here’s a summary:
Public (people who use your software): Your products need to be consistent on what the public wants.
Client and employer (the ones who pay): The product must also satisfy their demands, without forgetting about the public.
Product (what you build): Produce quality products. Don’t write shitty code.
Judgment (what you think and do): Keep dignity and integrity.
Management (your subordinates): Pass this code and be sure it’s followed up.
Profession (what you do): Act professional, as in every other job.
Colleagues (other programmers with which you may or may not work): Support them, they are allies.
One self: Keep learning. Never stop studying.
If you want a summary of the summary, here’s this twitter:
ACM CoE Twitter summary: Code for the people & the client, code well, don't be an asshole & keep learning. #TC1019
A code of ethics is a set of rules used as a guide for companies to demonstrate the expected behavior from the employees. The main purpose of these regulations is to conduct employee’s actions in accordance with values and ethical standards (Business Dictionary, 2016). In software engineering, it is almost the same rules that are applied to every software company with just a few variations.
This code of ethics was created by the Association for Computing Machinery in association with the Institute for Electrical and Electronics Engineers. It is divided in the following eight principles:
Public: Act consistently with the public interest. Software engineers shall accept full responsibly of their work. Also, commit to making its software error free and usable.
Client and employer: Know their limitants and act in a manner that is in the best interest of their client and employer.
Product: Engineers must ensure that their products meet the highest professional standards possible
Judgment: Maintain integrity and independence in their professional judgment
Management: Ensure good management and maintenance according to an ethical approach
Profession: shall advance the integrity and reputation of the profession consistent with the public interest
Colleagues: Software engineers shall be fair and supportive with their colleagues.
Self: Engineers must promote an ethical environment and participate in a lifelong learning
Association for Computing Machinery. (1999). Software Engineering Code of Ethics and Professional Practice. August 8th, 2016, from ACM. Website: http://www.acm.org/about/se-code
El software esta relacionado directamente con el producto final y esto ocasiona que si tu código está hecho para perjudicar de alguna manera al usuario es
La ingeniería de software puede influenciar el producto en una gran cantidad, esto puede ocasionar daño de alguna manera con los usuarios y una pérdida de confianza con la empresa.
Ya que los usuarios son las personas que van a estar utilizando el software hay una gran relación entre la ética y la calidad del software, una persona que tiene un aparato mal diseñado o mal testeado le puede ocasionar un gran daño y esto tiene que ver con la calidad, pero si la persona que crea el producto lo hace con la mentalidad de dañar al usuario esto es un problema ético, por eso hay una relación entre la ética y la calidad.
La parte de la calidad se puede solucionar probando, no dando nada por hecho y siempre teniendo en cuenta a los usuarios, pero la parte de la ética eso depende de las personas que creen el software, al ver esto la Association for Computing Machinery creo un código de conducta que tienen que seguir las personas para evitar los problemas éticos.
A code of ethics is so essential in the software engineering. This code is needed to be followed in order to create a good environment between customers and employers. The ACM code of ethics is divided in eight main concepts : public, client and employer, product, judgement, management, profession, colleagues, and self.
I agree with almost all of these main concepts. I think that a code of ethics is needed in software engineering because we all need to establish some rules in order to act as an integral person while working. We are here to improve and develop new ways to live. If we are the future, we need to create a great future.