Acm software engineering code of ethics and professional practice




















Robust security should be a primary consideration when designing and implementing systems. Computing professionals should perform due diligence to ensure the system functions as intended, and take appropriate action to secure resources against accidental and intentional misuse, modification, and denial of service. As threats can arise and change after a system is deployed, computing professionals should integrate mitigation techniques and policies, such as monitoring, patching, and vulnerability reporting.

Computing professionals should also take steps to ensure parties affected by data breaches are notified in a timely and clear manner, providing appropriate guidance and remediation. To ensure the system achieves its intended purpose, security features should be designed to be as intuitive and easy to use as possible. Computing professionals should discourage security precautions that are too confusing, are situationally inappropriate, or otherwise inhibit legitimate use.

In cases where misuse or harm are predictable or unavoidable, the best option may be to not implement the system. Leadership may either be a formal designation or arise informally from influence over others.

In this section, "leader" means any member of an organization or group who has influence, educational responsibilities, or managerial responsibilities. While these principles apply to all computing professionals, leaders bear a heightened responsibility to uphold and promote them, both within and through their organizations.

People—including users, customers, colleagues, and others affected directly or indirectly—should always be the central concern in computing. The public good should always be an explicit consideration when evaluating tasks associated with research, requirements analysis, design, implementation, testing, validation, deployment, maintenance, retirement, and disposal.

Computing professionals should keep this focus no matter which methodologies or techniques they use in their practice. Technical organizations and groups affect broader society, and their leaders should accept the associated responsibilities. Organizations—through procedures and attitudes oriented toward quality, transparency, and the welfare of society—reduce harm to the public and raise awareness of the influence of technology in our lives.

Therefore, leaders should encourage full participation of computing professionals in meeting relevant social responsibilities and discourage tendencies to do otherwise. Leaders should ensure that they enhance, not degrade, the quality of working life. Leaders should consider the personal and professional development, accessibility requirements, physical safety, psychological well-being, and human dignity of all workers. Appropriate human-computer ergonomic standards should be used in the workplace.

Leaders should pursue clearly defined organizational policies that are consistent with the Code and effectively communicate them to relevant stakeholders. In addition, leaders should encourage and reward compliance with those policies, and take appropriate action when policies are violated.

Designing or implementing processes that deliberately or negligently violate, or tend to enable the violation of, the Code's principles is ethically unacceptable. Educational opportunities are essential for all organization and group members. Leaders should ensure that opportunities are available to computing professionals to help them improve their knowledge and skills in professionalism, in the practice of ethics, and in their technical specialties.

These opportunities should include experiences that familiarize computing professionals with the consequences and limitations of particular types of systems. Computing professionals should be fully aware of the dangers of oversimplified approaches, the improbability of anticipating every possible operating condition, the inevitability of software errors, the interactions of systems and their contexts, and other issues related to the complexity of their profession—and thus be confident in taking on responsibilities for the work that they do.

Interface changes, the removal of features, and even software updates have an impact on the productivity of users and the quality of their work. Leaders should take care when changing or discontinuing support for system features on which people still depend. Leaders should thoroughly investigate viable alternatives to removing support for a legacy system.

If these alternatives are unacceptably risky or impractical, the developer should assist stakeholders' graceful migration from the system to an alternative. Users should be notified of the risks of continued use of the unsupported system long before support ends. Computing professionals should assist system users in monitoring the operational viability of their computing systems, and help them understand that timely replacement of inappropriate or outdated features or entire systems may be needed.

Even the simplest computer systems have the potential to impact all aspects of society when integrated with everyday activities such as commerce, travel, government, healthcare, and education.

When organizations and groups develop systems that become an important part of the infrastructure of society, their leaders have an added responsibility to be good stewards of these systems. Part of that stewardship requires establishing policies for fair system access, including for those who may have been excluded. That stewardship also requires that computing professionals monitor the level of integration of their systems into the infrastructure of society. As the level of adoption changes, the ethical responsibilities of the organization or group are likely to change as well.

Continual monitoring of how society is using a system will allow the organization or group to remain consistent with their ethical obligations outlined in the Code. When appropriate standards of care do not exist, computing professionals have a duty to ensure they are developed.

The future of computing depends on both technical and ethical excellence. Computing professionals should adhere to the principles of the Code and contribute to improving them. Computing professionals who recognize breaches of the Code should take actions to resolve the ethical issues they recognize, including, when reasonable, expressing their concern to the person or persons thought to be violating the Code. Significant contributions to the Code were also made by the broader international ACM membership.

This Code may be published without permission as long as it is not changed in any way and it carries the copyright notice.

Copyright c by the Association for Computing Machinery. The revised Code of Ethics addresses the significant advances in computing technology since the version, as well as the growing pervasiveness of computing in all aspects of society.

To promote the Code throughout the computing community, ACM created a booklet, which includes the Code, case studies that illustrate how the Code can be applied to situations that arise in everyday practice and suggestions on how the Code can be used in educational settings and in companies and organizations.

The ACM Committee on Professional Ethics COPE is responsible for promoting ethical conduct among computing professionals by publicizing the Code of Ethics and by offering interpretations of the Code; planning and reviewing activities to educate membership in ethical decision making on issues of professional conduct; and reviewing and recommending updates to the Code of Ethics and its guidelines.

It includes case studies demonstrating how the principles can be applied to specific ethical challenges, and an Ask an Ethicist advice column to help computing professionals navigate the sometimes challenging choices that can arise in the course of their work. Ask an Ethicist invites ethics questions related to computing or technology. Have an interesting question, puzzle or conundrum? With the release of the updated Code of Ethics, ACM has created companion case studies that demonstrate how the principles of the Code can be applied to specific ethical challenges.

Principles involving compliance with the Code are given in Section 4. The Code is not an algorithm for solving ethical problems; rather it serves as a basis for ethical decision-making. When thinking through a particular issue, a computing professional may find that multiple principles should be taken into account, and that different principles will have different relevance to the issue.

Questions related to these kinds of issues can best be answered by thoughtful consideration of the fundamental ethical principles, understanding that the public good is the paramount consideration. The entire computing profession benefits when the ethical decision-making process is accountable to and transparent to all stakeholders. Open discussions about ethical issues promote this accountability and transparency.

This principle, which concerns the quality of life of all people, affirms an obligation of computing professionals, both individually and collectively, to use their skills for the benefit of society, its members, and the environment surrounding them. An essential aim of computing professionals is to minimize negative consequences of computing, including threats to health, safety, personal security, and privacy.

When the interests of multiple groups conflict, the needs of those less advantaged should be given increased attention and priority.

Computing professionals should consider whether the results of their efforts will respect diversity, will be used in socially responsible ways, will meet social needs, and will be broadly accessible. They are encouraged to actively contribute to society by engaging in pro bono or volunteer work that benefits the public good. In addition to a safe social environment, human well-being requires a safe natural environment.

Therefore, computing professionals should promote environmental sustainability both locally and globally. Examples of harm include unjustified physical or mental injury, unjustified destruction or disclosure of information, and unjustified damage to property, reputation, and the environment.

This list is not exhaustive. Well-intended actions, including those that accomplish assigned duties, may lead to harm. When that harm is unintended, those responsible are obliged to undo or mitigate the harm as much as possible. Avoiding harm begins with careful consideration of potential impacts on all those affected by decisions. When harm is an intentional part of the system, those responsible are obligated to ensure that the harm is ethically justified.

In either case, ensure that all harm is minimized. To minimize the possibility of indirectly or unintentionally harming others, computing professionals should follow generally accepted best practices unless there is a compelling ethical reason to do otherwise. Additionally, the consequences of data aggregation and emergent properties of systems should be carefully analyzed.

Those involved with pervasive or infrastructure systems should also consider Principle 3. A computing professional has an additional obligation to report any signs of system risks that might result in harm. However, capricious or misguided reporting of risks can itself be harmful.

Before reporting risks, a computing professional should carefully assess relevant aspects of the situation. Honesty is an essential component of trustworthiness. A computing professional should be transparent and provide full disclosure of all pertinent system capabilities, limitations, and potential problems to the appropriate parties. Making deliberately false or misleading claims, fabricating or falsifying data, offering or accepting bribes, and other dishonest conduct are violations of the Code.

Computing professionals should be honest about their qualifications, and about any limitations in their competence to complete a task. Computing professionals should be forthright about any circumstances that might lead to either real or perceived conflicts of interest or otherwise tend to undermine the independence of their judgment. Furthermore, commitments should be honored. The values of equality, tolerance, respect for others, and justice govern this principle. Fairness requires that even careful decision processes provide some avenue for redress of grievances.

Computing professionals should foster fair participation of all people, including those of underrepresented groups. Prejudicial discrimination on the basis of age, color, disability, ethnicity, family status, gender identity, labor union membership, military status, nationality, race, religion or belief, sex, sexual orientation, or any other inappropriate factor is an explicit violation of the Code.

Harassment, including sexual harassment, bullying, and other abuses of power and authority, is a form of discrimination that, amongst other harms, limits fair access to the virtual and physical spaces where such harassment takes place. The Code is not a simple ethical algorithm that generates ethical decisions. In some situations standards may be in tension with each other or with standards from other sources.

These situations require the software engineer to use ethical judgment to act in a manner which is most consistent with the spirit of the Code of Ethics and Professional Practice, given the circumstances. Ethical tensions can best be addressed by thoughtful consideration of fundamental principles, rather than blind reliance on detailed regulations. These Principles should influence software engineers to consider broadly who is affected by their work; to examine if they and their colleagues are treating other human beings with due respect; to consider how the public, if reasonably well informed, would view their decisions; to analyze how the least empowered will be affected by their decisions; and to consider whether their acts would be judged worthy of the ideal professional working as a software engineer.

The dynamic and demanding context of software engineering requires a code that is adaptable and relevant to new situations as they occur. However, even in this generality, the Code provides support for software engineers and managers of software engineers who need to take positive action in a specific case by documenting the ethical stance of the profession. The Code provides an ethical foundation to which individuals within teams and the team as a whole can appeal.

The Code helps to define those actions that are ethically improper to request of a software engineer or teams of software engineers. The Code is not simply for adjudicating the nature of questionable acts; it also has an important educational function.

As this Code expresses the consensus of the profession on ethical issues, it is a means to educate both the public and aspiring professionals about the ethical obligations of all software engineers. Software engineers shall act consistently with the public interest. In particular, software engineers shall, as appropriate:. Moderate the interests of the software engineer, the employer, the client and the users with the public good.

Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good. Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents. Cooperate in efforts to address matters of grave public concern caused by software, its installation, maintenance, support or documentation.

Be fair and avoid deception in all statements, particularly public ones, concerning software or related documents, methods and tools.

Consider issues of physical disabilities, allocation of resources, economic disadvantage and other factors that can diminish access to the benefits of software.

Be encouraged to volunteer professional skills to good causes and contribute to public education concerning the discipline. Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest.

Provide service in their areas of competence, being honest and forthright about any limitations of their experience and education. Ensure that any document upon which they rely has been approved, when required, by someone authorized to approve it.

Keep private any confidential information gained in their professional work, where such confidentiality is consistent with the public interest and consistent with the law.

Identify, document, collect evidence and report to the client or the employer promptly if, in their opinion, a project is likely to fail, to prove too expensive, to violate intellectual property law, or otherwise to be problematic.

Identify, document, and report significant issues of social concern, of which they are aware, in software or related documents, to the employer or the client. Promote no interest adverse to their employer or client, unless a higher ethical concern is being compromised; in that case, inform the employer or another appropriate authority of the ethical concern. Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. Strive for high quality, acceptable cost and a reasonable schedule, ensuring significant tradeoffs are clear to and accepted by the employer and the client, and are available for consideration by the user and the public.

Ensure proper and achievable goals and objectives for any project on which they work or propose. Identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects.

Ensure that they are qualified for any project on which they work or propose to work by an appropriate combination of education and training, and experience. Ensure an appropriate method is used for any project on which they work or propose to work. Our conferences, workshops and symposia unite innovators like you to push computing technology forward and to continue the legacy that unites us as like-minded thinkers and makers.

They provide seminars, lectures, learning forums and networking opportunities with peers and experts across the computing spectrum. ACM recognizes excellence through its eminent awards for technical and professional achievements and contributions in computer science and information technology.

It also names as Fellows and Distinguished Members those members who, in addition to professional accomplishments, have made significant contributions to ACM's mission. Our E-Learning collections offer complimentary access to more than 55, online books and videos from top content publishers. Members enjoy exclusive offers and discounts on IT industry certifications and vendor-specific training.

ACM provides independent, nonpartisan, and technology-neutral research and resources to policy leaders, stakeholders, and the public about public policy issues, drawn from the deep technical expertise of the computing community.

Anyone, from any background, should feel encouraged to participate and contribute to ACM. ACM is committed to creating an environment that welcomes new ideas and perspectives, and where hostility or other antisocial behaviors are not tolerated.

ACM is a volunteer-led and member-driven organization. Everything ACM accomplishes is through the efforts of people like you. A wide range of activities keeps ACM moving: organizing conferences, editing journals, reviewing papers and participating on boards and committees, to name a few. Find out all the ways that you can volunteer with ACM.



0コメント

  • 1000 / 1000