Введение

Профессионализм в области разработки программного обеспечения – это движение, направленное на признание разработки программного обеспечения профессией, включающее такие аспекты, как программы получения образования и сертификации, профессиональные объединения, профессиональная этика и государственное лицензирование. В настоящее время эта область является лицензируемой дисциплиной в штате Техас (США, Совет профессиональных инженеров Техаса, с 2013 года), в Engineers Australia (аккредитация образовательных программ с 2001 года, но не лицензирование) и во многих провинциях Давао.

История

В 1993 году IEEE и ACM начали совместные усилия под названием JCESEP, которые в 1998 году трансформировались в SWECC с целью изучения возможности придания программной инженерии статуса профессии. В мае 1999 года ACM вышла из SWECC, возражая против поддержки ею инициатив по профессионализации в Техасе, предусматривающих государственное лицензирование инженеров-программистов. ACM пришла к выводу, что уровень знаний и практики в области разработки программного обеспечения недостаточно высок для лицензирования, и что лицензирование могло бы давать ложное ощущение компетентности, даже если база знаний была бы полностью сформирована. IEEE продолжала поддерживать включение программной инженерии в состав традиционной инженерии. В Канаде Канадское общество специалистов по обработке информации разработало процесс сертификации специалистов по информационным системам. Кроме того, к концу 1990-х годов (в 1999 году в Британской Колумбии) дисциплина программной инженерии была официально признана профессиональной инженерной дисциплиной. Это вызвало разногласия между провинциальными инженерными ассоциациями и компаниями, называющими своих разработчиков инженерами-программистами, несмотря на отсутствие у этих разработчиков лицензии какой-либо инженерной ассоциации. В 1999 году была сформирована комиссия по программной инженерии в рамках соглашения между Engineering Canada и Мемориальным университетом Ньюфаундленда относительно использования университетом термина "программная инженерия" в названии программы по компьютерным наукам. Были выражены опасения, что ненадлежащее использование названия "программная инженерия" для описания неинженерных программ может привести к путанице среди студентов и общественности и, в конечном итоге, угрожать общественной безопасности. Комиссия дала рекомендации о создании Совета по аккредитации программной инженерии, но рабочая группа, созданная для реализации этих рекомендаций, не смогла добиться согласия между различными заинтересованными сторонами относительно конкретных предложений, что привело к созданию отдельных советов по аккредитации.

Этика

Этика в области разработки программного обеспечения – это обширная область. В некотором смысле она возникла как нереалистичная попытка рассматривать ошибки как неэтичные. В последнее время она определяется как применение философии, принципов и практик компьютерных наук и инженерии к проектированию и разработке программных систем. В связи с этим инженерным уклоном и растущим использованием программного обеспечения в системах, критически важных для выполнения задач и безопасности людей, где сбой может привести к значительным финансовым потерям, но, что более важно, к гибели людей, как в случае с системой Therac 25, множество этических кодексов было разработано различными обществами, ассоциациями и организациями. Эти организации, такие как ACM, IEEE, EGBC и Институт сертификации специалистов в области вычислительной техники (ICCP), имеют формальные этические кодексы. Соблюдение этического кодекса является обязательным условием для членства или получения сертификации. Согласно ICCP, нарушение кодекса может привести к отзыву сертификата. Кроме того, все инженерные общества требуют соответствия своим этическим кодексам; нарушение кодекса влечет за собой лишение лицензии на осуществление инженерной деятельности в юрисдикции данного общества. Эти кодексы этики обычно имеют много общего. Как правило, они подчеркивают необходимость действовать в соответствии с интересами клиента, работодателя и, что наиболее важно, общества. Они также определяют необходимость профессионализма и продвижения этического подхода к профессии. Кодекс этики в области разработки программного обеспечения был одобрен ACM и IEEE CS в качестве стандарта для обучения и практики разработки программного обеспечения.

Примеры кодексов поведения

Ниже приведены примеры кодексов этики для профессиональных инженеров. Эти два примера были выбраны, поскольку в обеих юрисдикциях существует квалификация для профессиональных инженеров-программистов. Инженеры и геоученые Британской Колумбии (EGBC): Все члены ассоциации, согласно кодексу этики, должны гарантировать, что правительство и общественность могут полагаться на профессиональных инженеров и геоученых Британской Колумбии, которые всегда действуют справедливо, вежливо и добросовестно по отношению к своим работодателям, сотрудникам и клиентам, а также поддерживают правдивость, честность и надежность, и защищают человеческую жизнь и окружающую среду. Это лишь один из многих способов, с помощью которых профессиональные инженеры и геоученые Британской Колумбии сохраняют свою конкурентоспособность на современном мировом рынке. Ассоциация профессиональных инженеров и геоученых Альберты (APEGA): В отличие от Британской Колумбии, правительство Альберты предоставило инженерам, геоученым и геофизикам право самоуправления. Все члены APEGA обязаны нести юридическую и этическую ответственность за свою работу и руководствоваться интересами общества. APEGA является стандартом и руководством по профессиональной практике, направленным на защиту общественных интересов в области инженерии, геоученых и геофизики в Альберте.

Мнения по этике

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

Независимые экзамены на получение лицензии и сертификации

С 2002 года IEEE Computer Society предлагала сертификационный экзамен Certified Software Development Professional (CSDP) (в 2015 году он был заменен несколькими аналогичными сертификациями). Экзамен был разработан и поддерживался группой экспертов из промышленности и академических кругов. Дональд Багерт, а позднее Стивен Токи возглавляли комитет по сертификации. Содержание экзамена основывалось на руководстве SWEBOK (Software Engineering Body of Knowledge) с дополнительным упором на области знаний "Профессиональная практика" и "Экономика программного обеспечения" (KAs). Целью было создание международной структуры для областей знаний в области разработки программного обеспечения.

Канада

В Канаде использование профессионального наименования «инженер» контролируется в каждой провинции саморегулируемыми профессиональными инженерными организациями, которые также отвечают за обеспечение соблюдения действующего законодательства. Цель этого контроля – удостовериться, что любой, кто называет себя инженером, имеет подтвержденное образование соответствующего аккредитованного уровня, а его профессиональная деятельность подчиняется кодексу этики и контролю со стороны коллег. Использование наименования «инженер» в Канаде незаконно без соответствующей лицензии. Специалистам в области информационных технологий, имеющим дипломы в других областях (например, в области компьютерных наук или информационных систем), запрещено использовать наименование «инженер-программист» или включать его в свою должность, в зависимости от провинции или территории их проживания. В некоторых случаях дела о незаконном использовании охраняемого наименования «инженер» доходили до суда. Большинство канадцев, получающих профессиональную лицензию в области разработки программного обеспечения, изучают программную инженерию, компьютерную инженерию или электротехнику. Зачастую эти специалисты уже имеют квалификацию для получения лицензии инженера в своей области, но предпочитают лицензироваться как инженеры-программисты, чтобы отделить себя от специалистов в области компьютерных наук. В Британской Колумбии ограниченную лицензию выдают Инженеры и геоученые Британской Колумбии. EGBC взимает плату с обладателей ограниченной лицензии.

Руководство по разработке программного обеспечения (SEng) канадскими провинциями

Термин "инженер" в Канаде используется исключительно для тех, кто закончил аккредитованную инженерную программу. Некоторые университеты предлагают программы по "инженерии программного обеспечения" в рамках инженерного факультета и, следовательно, соответствуют требованиям, например, Университет Ватерлоо. Другие, такие как Университет Торонто, предлагают "инженерию программного обеспечения" на факультете информатики, что не дает права на получение квалификации инженера. Это различие связано с тем, как регулируется данная профессия. Степень "Инженер" должна быть аккредитована национальным органом и соответствовать определенным требованиям, чтобы выпускник мог строить карьеру профессионального инженера. Степень "Информатика", даже со специализацией в области разработки программного обеспечения, не обязана соответствовать этим требованиям, поэтому факультеты информатики обычно могут преподавать более широкий спектр дисциплин, а студенты могут закончить обучение без прохождения конкретных курсов, необходимых для карьеры профессионального инженера.

Европа

По всей Европе инженеры с соответствующей квалификацией могут получить профессиональную квалификацию Европейского инженера.

Франция

Во Франции термин «инженер» не является охраняемым титулом и может использоваться любым человеком, даже тем, кто не имеет академической степени. Однако, титул Ingénieur Diplomé (дипломированный инженер) — это официальный академический титул, охраняемый государством и связанный с Diplôme d'Ingénieur, являющимся одной из самых престижных академических степеней во Франции.

Исландия

Использование титула tölvunarfræðingur (компьютерный ученый) защищено законом в Исландии. Программная инженерия преподается в кафедрах компьютерных наук исландских университетов. Согласно исландскому законодательству, для использования этого титула необходимо получить разрешение министра промышленности, если степень была получена за рубежом. Титул присваивается лицам, получившим степень бакалавра компьютерных наук в аккредитованном высшем учебном заведении.

Новая Зеландия

В Новой Зеландии Институт профессиональных инженеров Новой Зеландии (IPENZ), который лицензирует и регулирует деятельность дипломированных инженеров страны (CPEng), признает разработку программного обеспечения законной областью профессиональной инженерной деятельности и принимает заявки от инженеров-программистов на получение статуса дипломированного инженера при условии наличия у них высшего образования по утвержденным дисциплинам. Разработка программного обеспечения включается, а информатика – как правило, нет.