How do we, as committers of a project and actors of its community, make our product more ethical? There are a couple of easy steps:
- Adopting a code of conduct: there are ready-to-use codes available, like the Contributor Covenant. GitHub also proposes a default template when creating a new project.
- Enforcing the code of conduct, and providing easy means for people to raise ethical issues.
- Setting up a transparent and publicly available governance model for the project.
- Nurishing quality- and ethical- initiatives within the projects, whatever they may be.
Other more time-consuming aspects may include software quality attributes, like reliability, maintainability or usability, community-related commitment to diversity and support, and user data protection.
Adopt a code of conduct
Enforce ethics in the project
Morality cannot be legislated, but behavior can be regulated.
-- Dr. Martin Luther King, Jr., UCLA, 1965
Having a code of conduct is simply not enough. It needs to be enforced, and procedures are to be created to report safely harassment and unethical behaviour.
See the word of the covenant licence team on this topic. It is also worth noting that it may be needed to include a mechanism for addressing grievances to prevent abuse of the code of conduct -- see http://citizencodeofconduct.org/ section 8.