Статья
Версия для печати
Обсудить на форуме
Кодекс этики и профессиональной деятельности в области программной инженерии (версия 5.2)


Рекомендован ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices и совместно одобрен ACM и IEEE-CS в качестве стандарта обучения и работы в области программной инженерии.

Software Engineering Code of Ethics and Professional Practice


ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices

Краткая версия


Введение


  Краткая версия кодекса довольно абстрактно резюмирует основные положения; в полной версии приведены детальные примеры того, как эти положения меняют наш образ действий как профессионалов в области программной инженерии. Без основных положений детали становятся формальными и скучными; без деталей основные положения звучат высокопарно, но превращаются в пустой звук; вместе же основные положения и детали образуют цельный кодекс.

  Программные инженеры должны стремиться к тому, чтобы сделать анализ, разработку спецификаций, проектирование, реализацию, тестирование и поддержку программного обеспечения полезной и уважаемой профессией. В соответствии с их высокой ответственностью за благополучие, безопасность и процветание общества программные инженеры должны твердо придерживаться следующих восьми Принципов:

  • ОБЩЕСТВО – Программные инженеры должны действовать неукоснительно в интересах общества.
  • КЛИЕНТ И РАБОТОДАТЕЛЬ – Программные инженеры должны действовать согласно интересам клиента и работодателя, если они не противоречат интересам общества.
  • ПРОДУКТ – Программные инженеры должны обеспечивать соответствие качества своих продуктов и их модификаций наивысшим возможным профессиональным стандартам.
  • ОЦЕНКИ – Программные инженеры должны поддерживать целостность и независимость своих профессиональных оценок.
  • МЕНЕДЖМЕНТ – Программные инженеры-менеджеры и ведущие сотрудники должны придерживаться этических подходов к управлению разработкой и поддержкой программного обеспечения и продвигать эти подходы.
  • ПРОФЕССИЯ – Программные инженеры должны поднимать престиж и репутацию своей профессии в интересах общества.
  • КОЛЛЕГИ – Программные инженеры должны быть справедливы по отношению к своим коллегам, помогать им и поддерживать.
  • ЛИЧНАЯ ОТВЕТСТВЕННОСТЬ – Программные инженеры должны непрерывно учиться навыкам своей профессии и способствовать продвижению этического подхода к своей деятельности.

Полная версия


Введение


  Компьютеры играют центральную и все возрастающую роль в торговле, промышленности, управлении, медицине, образовании, досуге и в жизни общества в целом. Программные инженеры – это те, кто вносит свой вклад, либо непосредственно, либо через обучение, в анализ, разработку спецификаций, проектирование, реализацию, сертификацию, поддержку и тестирование программных систем. Играя важную роль в разработке программных систем, программные инженеры имеют значительные возможности творить добро или причинять зло, позволять другим творить добро или причинять зло, либо влиять на тех, кто творит добро или причиняет зло. Чтобы обеспечить, насколько это возможно, что их усилия будут использованы в благих целях, программные инженеры должны неуклонно превращать программную инженерию в полезную и уважаемую профессию. Для этого программисты должны твердо придерживаться следующего Кодекса профессиональной этики.

  Кодекс содержит восемь Принципов, влияющих на линию поведения и выбор решения программными инженерами, включая практиков, преподавателей, менеджеров и высшее руководство, а также учащихся и студентов. Принципы определяют этику отношений между отдельными инженерами, группами и организациями, а также связанные с этим обязательства. В каждый Принцип включены иллюстрации некоторых обязательств, налагаемых этими отношениями. Эти обязательства основываются на гуманности профессии программного инженера, особом внимании по отношению к людям, на которых оказывает влияние деятельность программных инженеров, и уникальности этой деятельности. Кодекс провозглашает эти обязательства для всех, кто относит себя к программным инженерам или собирается им стать.

  Отдельные части Кодекса не могут быть использованы изолированно от других для оправдания упущений и проступков. Перечень Принципов и Положений не является исчерпывающим. Положения не могут рассматриваться как разделяющие профессиональное поведение на приемлемое и неприемлемое во всех реальных ситуациях. Кодекс не является простым этическим алгоритмом, генерирующим этичные решения. В некоторых ситуациях стандарты могут противоречить друг другу или другим стандартам. Такие ситуации требуют от программного инженера действий в соответствии с духом Кодекса профессиональной этики в зависимости от конкретных обстоятельств.

  Следует вдумчиво использовать основные положения этики, а не слепо полагаться на ее подробные указания. Эти Принципы побуждают программных инженеров осознать, на кого оказывает влияние выполняемая ими работа; разобраться, относятся ли они и их коллеги к окружающим с должным уважением; принять во внимание, как общество, будучи информированным должным образом, отнеслось бы к их решениям; наконец, оценить, соответствуют ли их профессиональные действия идеалам программной инженерии. Во всех этих оценках забота о благополучии, безопасности и процветании общества первична; то есть, «Интересы общества» являются центральными в данном Кодексе.

  Динамичный и требовательный контекст программной инженерии требует кодекса, который можно приспособить к новым ситуациям по мере их появления. Однако даже в таком общем виде Кодекс обеспечивает поддержку программным инженерам и их руководителям, которые нуждаются в правильном выборе действий в специфических условиях, путем документирования профессиональных этических установок. Кодекс обеспечивает этическую базу, к которой могу обращаться как отдельные члены команд, так и команды в целом. Кодекс позволяет определить действия, которые этически неуместно требовать от программных инженеров или их команд.

  Данный кодекс предназначен не только для оценки спорных действий; он имеет также важное образовательное значение. Поскольку в нем выражено общее мнение относительно этической стороны профессии, он является средством, позволяющим довести до сведения как общества, так и профессионалов этические обязательства всех программных инженеров.


Принципы



Принцип 1: ОБЩЕСТВО.


  ОБЩЕСТВО – Программные инженеры должны действовать неукоснительно в интересах общества. В частности, программные инженеры должны:

  • Нести полную ответственность за свою работу.
  • Ограничивать интересы программных инженеров, работодателей, клиентов и пользователей пользой для общества в целом.
  • Одобрять программное обеспечение лишь в случае, если они твердо убеждены в том, что оно безопасно, соответствует спецификациям, прошло соответствующее тестирование и не угрожает качеству жизни, не нарушает приватность и не вредит окружающей среде. Результат работы должен безусловно служить на благо обществу.
  • Доводить до сведения уполномоченных лиц и организаций действительную или потенциальную опасность для пользователей, общества или окружающей среды, которая, по их мнению, связана с использованием программного обеспечения или сопутствующей ему документации.
  • Принимать участие в работе над проблемами, вызывающими тревогу в обществе, касающимися программного обеспечения, его инсталляции, развития, поддержки или документирования.
  • Быть честным и не допускать лжи во всех высказываниях, особенно публичных, в отношении программного обеспечения или связанных с ним документации, методик и инструментов.
  • Обращать внимание на проблемы, связанные с физическими недостатками, распределением ресурсов, экономической отсталости и другими факторами, способными ограничить доступ к пользованию программным обеспечением.
  • Быть готовым добровольно использовать свое профессиональное мастерство для общего блага и способствовать распространению знаний о своей профессии.


Принцип 2: КЛИЕНТ И РАБОТОДАТЕЛЬ


  Программные инженеры должны действовать согласно интересам клиента и работодателя, если они не противоречат интересам общества. В частности, программные инженеры должны:

  • Предоставлять услуги в пределах своей компетентности, быть честными и не скрывать ограниченности своего образования и опыта.
  • Не использовать программное обеспечение, полученное либо заведомо нелегальным, либо неэтичным путем.
  • Пользоваться собственностью клиента или работодателя только надлежащим образом и с их ведома.
  • Убедиться, что все используемые ими документы, которые должны быть утверждены, действительно утверждены уполномоченным лицом.
  • Хранить в тайне любую конфиденциальную информацию, полученную при исполнении профессиональных обязанностей, если это не противоречит интересам общества и законодательству.
  • Идентифицировать, документировать, собирать факты и немедленно оповещать клиента или работодателя, если, по их мнению, проект близок к провалу, оказывается чересчур дорогим, нарушает закон об интеллектуальной собственности или может повлечь другие проблемы
  • Идентифицировать, документировать и докладывать работодателю или клиенту о социальных проблемах, связанных с программной и сопутствующей документацией, о которых им стало известно.
  • Не принимать предложений побочной работы, которая может нанести ущерб работе, выполняемой для основного работодателя.
  • Не действовать против интересов работодателя или клиента, за исключением случаев, когда это противоречит более высоким этическим соображениям; в этом случае следует информировать работодателя или другое уполномоченное лицо об этих соображениях.


Принцип 3: ПРОДУКТ


  Программные инженеры должны обеспечивать соответствие качества своих продуктов и их модификаций наивысшим возможным профессиональным стандартам. В частности, программные инженеры должны:

  • Стремиться к высокому качеству, приемлемой стоимости и разумным срокам выполнения проектов, доводя существенные альтернативы до сведения работодателя и клиента, заручившись их согласием с выбором, а также ставя пользователей и общество в известность о них.
  • Обеспечивать адекватность и достижимость целей и направленности для всех проектов, над которыми они работают или намереваются работать.
  • Выявлять, определять и принимать меры в отношении проблем, связанных с проектом, над которым они работают, и имеющих отношение к этике, экономике, культуре, законности и окружающей среде.
  • Гарантировать, что их образование, подготовка и опыт достаточны для всех проектов, над которыми они работают или намереваются работать.
  • Гарантировать, что во всех проектах, над которыми они работают или намереваются работать, используются надлежащие методики.
  • Работать, следуя наиболее подходящим профессиональным стандартам и отступая от них лишь в тех случаях, когда это оправдано по этическим либо техническим причинам.
  • Стремиться к полному пониманию спецификаций программного обеспечения, над которым они работают.
  • Гарантировать, что спецификации на программное обеспечение, над которым они работают, хорошо документированы, соответствуют требованиям пользователей и утверждены должным образом.
  • Гарантировать реалистичность количественных оценок стоимости, сроков выполнения, трудозатрат, качества и затрат по всем проектам, над которыми они работают или намереваются работать, а также неопределенности этих оценок.
  • Гарантировать адекватность тестирования, отладки и ревизий программного обеспечения и сопутствующей документации, над которыми они работают.
  • Гарантировать адекватность документации, включая обнаруженные проблемы и их одобренные решения, для всех проектов, над которыми они работают.
  • Разрабатывать программное обеспечение и сопутствующую документацию, относясь с уважением к приватности в отношении тех, чьи интересы затрагивает данное программное обеспечение.
  • Использовать только надежные данные, полученные приемлемыми с точки зрения морали и закона средствами, и использовать их только надлежащим образом.
  • Поддерживать целостность данных, подверженных устареванию и потере актуальности.
  • Относиться ко всем видам поддержки программного обеспечения с тем же профессионализмом, что и к новым разработкам.


Принцип 4: ОЦЕНКИ


  Программные инженеры должны поддерживать целостность и независимость своих профессиональных оценок. В частности, программные инженеры должны:

  • Направлять все технические суждения на службу человеческим ценностям.
  • Рекомендовать лишь те документы, которые либо разработаны под их контролем, либо те, которые находятся в области их компетентности и с содержанием которых они согласны.
  • Соблюдать профессиональную объективность по отношению к программному обеспечению или сопутствующей документации, которые их попросили оценить.
  • Не принимать участия в финансовых махинациях, таких как подкуп, двойная оплата и прочие незаконные финансовые действия.
  • Раскрывать всем заинтересованным сторонам конфликты интересов, которых невозможно избежать разумными средствами.
  • Отказываться от участия в качестве члена команды или советника в частных, правительственных или профессиональных мероприятиях, связанных с программным обеспечением, из-за которых может быть нанесен потенциальный ущерб их собственным интересам, интересам их работодателей или клиентов.


Принцип 5: МЕНЕДЖМЕНТ


  Программные инженеры-менеджеры и ведущие сотрудники должны придерживаться этических подходов к управлению разработкой и поддержкой программного обеспечения и продвигать эти подходы. В частности, руководители и ведущие специалисты в области программной инженерии должны:

  • Гарантировать качественное управление всеми проектами, над которыми они работают, включая эффективные процедуры повышения качества и уменьшения риска.
  • Гарантировать, что программные инженеры обучены стандартам перед тем, как намереваются следовать им.
  • Гарантировать, что программные инженеры знают политики и процедуры работодателя в отношении защиты паролей, файлов и конфиденциальной информации, касающейся работодателя или иных лиц.
  • Распределять работу только после выяснения образования и опыта сотрудника, учитывая его желание совершенствовать свои образование и опыт.
  • Гарантировать реалистичность количественных оценок стоимости, сроков выполнения, трудозатрат, качества и прибыли по всем проектам, над которыми они работают или намереваются работать, а также неопределенности этих оценок.
  • Привлекать к работе программных инженеров только после того, как им предоставлено полное и точное описание условий работы.
  • Предлагать справедливое вознаграждение за труд.
  • Не препятствовать беспричинно назначению сотрудника на должность, для которой он имеет подходящую квалификацию.
  • Гарантировать справедливое соглашение относительно прав собственности на любое программное обеспечение, технологию, исследования, рукописи и прочую интеллектуальную собственность, в которую программный инженер внес свой вклад.
  • Должным образом сообщать об ответственности за нарушение политики работодателя или данного Кодекса.
  • Не требовать от программного инженера ничего противоречащего данному Кодексу.
  • Не наказывать никого, что выражает озабоченность в связи с этическими проблемами, связанными с проектом.


Принцип 6: ПРОФЕССИЯ


  Программные инженеры должны поднимать престиж и репутацию своей профессии в интересах общества. В частности, программные инженеры должны:

  • Способствовать созданию в организации атмосферы, способствующей этичному поведению.
  • Распространять знания в области программной инженерии.
  • Расширять знания в области программной инженерии путем участия в профессиональных организациях и собраниях, а также своими публикациями.
  • Поддерживать других коллег, стремящихся следовать данному Кодексу.
  • Не ставить собственные интересы выше профессиональных интересов, интересов клиента или работодателя.
  • Подчиняться всем законам, регулирующим их работу, за исключением особых ситуаций, когда это противоречит интересам общества.
  • Быть точным в оценках программного обеспечения, над которым они работают, избегая не только заведомо лживых обещаний, но и обещаний, которые справедливо могут быть восприняты как спекулятивные, необоснованные, вводящие в заблуждение, сбивающие с толку или сомнительные.
  • Принимать ответственность за обнаружение, исправление и оповещение об ошибках в программном обеспечении и связанной с ним документации, над которыми он работает.
  • Поставить в известность клиентов, работодателей и руководство о том, что программные инженеры следуют данному Кодексу этики, и о последствиях этого.
  • Избегать организаций, которые находятся в конфликте с данным Кодексом.
  • Осознавать, что нарушения данного Кодекса несовместимы с принадлежностью к профессиональным программным инженерам.
  • Выражать свою озабоченность в случае существенного нарушения данного Кодекса людям, причастным к этому, за исключением случаев, когда это невозможно, приводит к серьезным конфликтам или опасно.
  • Сообщать о случаях существенного нарушения данного Кодекса в соответствующие инстанции, если очевидно, что диалог с причастными к этому людьми невозможен, приводит к серьезным конфликтам или опасен.


Принцип 7: КОЛЛЕГИ


  Программные инженеры должны быть справедливы по отношению к своим коллегам, помогать им и поддерживать. В частности, программные инженеры должны:

  • Призывать коллег придерживаться данного Кодекса.
  • Помогать коллегам в профессиональном росте.
  • Уважать работу других, но воздерживаться от необоснованного доверия к ней.
  • Обозревать работу других объективно, непредубежденно, документируя должным образом.
  • Прислушиваться к мнению, озабоченности или жалобам коллег.
  • Помогать коллегам в освоении текущих рабочих стандартов, включая политики и процедуры защиты паролей, файлов и другой конфиденциальной информации, а также мер безопасности в целом.
  • Не вмешиваться без необходимости в рабочие дела коллег; однако, искренняя забота об интересах работодателя, клиента или общества могут вынудить программного инженера поставить под сомнение компетентность коллеги.
  • В ситуациях, выходящих за пределы их собственной компетентности, спрашивать мнение других профессионалов, компетентных в данной области.


Принцип 8: ЛИЧНАЯ ОТВЕТСТВЕННОСТЬ


  Программные инженеры должны постоянно учиться навыкам своей профессии и способствовать продвижению этического подхода к своей деятельности. В частности, программные инженеры должны непрерывно стремиться к следующему:

  • Углублять свои знания в области анализа, спецификации, проектирования, разработки, поддержки и тестирования программного обеспечения и сопутствующей документации, а также управления процессом разработки.
  • Совершенствовать свои способности к созданию безопасного, надежного и функционального качественного программного обеспечения по разумной цене и в разумные сроки.
  • Совершенствовать свои способности к производству точной, информативной, качественно написанной документации.
  • Совершенствовать знание программного обеспечения и сопутствующей документации, над которой они работают, а также среды, в которой они будут использоваться.
  • Совершенствовать знания подходящих стандартов и законов, регулирующих программное обеспечение и сопутствующую документацию, над которыми они работают.
  • Совершенствовать знание данного Кодекса, его интерпретацию и использование в своей работе.
  • Не допускать несправедливого обращения с кем-либо по причине не относящихся к делу предубеждений.
  • Не подстрекать других к действиям, нарушающим данный Кодекс.
  • Осознавать, что личное нарушение данного Кодекса несовместимо с принадлежностью к профессиональным программным инженерам.


Перевод: (c) Alf, 03/09/2006
Версия для печати
Обсудить на форуме