Профессионализм программной инженерии - это стремление сделать программную инженерию профессией, включая такие аспекты, как программы получения степени и сертификации, профессиональные ассоциации, профессиональная этика и государственное лицензирование. Эта область является лицензированной дисциплиной в Техасе в Соединенных Штатах (Техасский совет профессиональных инженеров, с 2013 г.), в Австралии (аккредитация на курсы с 2001 г., не лицензирование) и во многих провинциях Канады.
В 1993 году IEEE и ACM начали совместную работу под названием, которая в 1998 году превратилась в исследование превращения программной инженерии в профессию. ACM вышла из SWECC в мае 1999 года, протестуя против поддержки усилий Техаса по профессионализации, в связи с наличием государственных лицензий для инженеров-программистов. ACM определила, что уровень знаний и практики в области разработки программного обеспечения был слишком незрелым, чтобы гарантировать лицензирование, и что лицензирование дало бы ложные гарантии компетентности, даже если бы совокупность знаний была зрелой. IEEE продолжал поддерживать превращение программной инженерии в отрасль традиционной инженерии.
В Канаде Канадское общество обработки информации установило процесс сертификации специалистов по информационным системам. Кроме того, к концу 1990-х (1999 г. в Британской Колумбии) была официально создана дисциплина программная инженерия как профессиональная инженерная дисциплина. Это вызвало разногласия между провинциальными инженерными ассоциациями и компаниями, которые называют своих разработчиков инженерами-программистами, даже несмотря на то, что эти разработчики не получили лицензий от какой-либо инженерной ассоциации.
В 1999 году была сформирована группа разработчиков программного обеспечения. урегулирования между Engineering Canada и Мемориальным университетом Ньюфаундленда по поводу использования школой термина «программная инженерия» в названии программы по информатике. Были высказаны опасения по поводу неуместного использования названия «программная инженерия» для описания неинженерных программ, что может привести к путанице среди студентов и общественности и, в конечном итоге, поставить под угрозу общественную безопасность. Комиссия выпустила рекомендации по созданию Совета по аккредитации программной инженерии, но целевая группа, созданная для выполнения рекомендаций, не смогла убедить различные заинтересованные стороны согласиться с конкретными предложениями, что привело к созданию отдельных комиссий по аккредитации.
Программная инженерия этика - обширная область. В некотором смысле это началось как нереалистичная попытка определить ошибки как неэтичные. Совсем недавно это было определено как применение философии, принципов и практики как компьютерных наук, так и инженерии к проектированию и разработке программных систем. Из-за такой инженерной направленности и более широкого использования программного обеспечения в критически важных системах и системах, критически важных для человека, где отказ может привести к большим потерям капитала, но, что более важно, жизням, таким как система Therac-25, многие этические кодексы имеют был разработан рядом обществ, ассоциаций и организаций. Эти организации, такие как ACM, IEEE, APEGBC и Институт сертификации специалистов по вычислительной технике (ICCP), имеют формальные этические кодексы. Соблюдение этического кодекса необходимо как условие членства или сертификации. Согласно ICCP, нарушение кода может привести к аннулированию сертификата. Кроме того, все инженерные общества требуют соблюдения своих этических кодексов; нарушение кодекса влечет за собой отзыв лицензии на занятие инженерной деятельностью в юрисдикции общества.
Эти этические кодексы обычно имеют много общего. Обычно они связывают необходимость действовать в соответствии с интересами клиента, интересами работодателя и, что наиболее важно, интересами общества. Они также подчеркивают необходимость действовать профессионально и продвигать этический подход к профессии.
Этический кодекс программной инженерии был одобрен ACM и IEEE-CS как стандарт для обучения и практики программной инженерии.
Ниже приведены примеры кодексов поведения профессиональных инженеров. Эти 2 были выбраны, потому что в обеих юрисдикциях есть статус профессиональных инженеров-программистов.
Билл Джой утверждал, что «лучшее программное обеспечение» может позволить только его привилегированным конечные пользователи делают реальность более мощной, а не гуманной, и в конечном итоге убегают сами с собой, чтобы «будущее не нуждалось в нас». Он открыто подверг сомнению цели программной инженерии в этом отношении, спрашивая, почему она не пытается быть более этичной, а не более эффективной. В своей книге Кодекс и другие законы киберпространства Лоуренс Лессиг утверждает, что компьютерный код может регулировать поведение во многом так же, как и юридический кодекс. Лессиг и Джой призывают людей задуматься о последствиях разрабатываемого программного обеспечения не только в функциональном плане, но и в том, как оно влияет на публику и общество в целом.
В целом, из-за молодости программной инженерии многие этические кодексы и ценности были заимствованы из других областей, таких как машиностроение и гражданское строительство. Однако есть много этических вопросов, с которыми не сталкивались даже эти, гораздо более старые дисциплины. Вопросы об этическом влиянии интернет-приложений, которые имеют глобальный охват, никогда не возникали до недавнего времени, и другие этические вопросы все еще возникают. Это означает, что этические кодексы для разработки программного обеспечения находятся в стадии разработки и будут меняться и обновляться по мере возникновения новых вопросов.
Американское Национальное общество профессиональных инженеров предлагает типовой закон и лоббирует законодательные органы для принятия правил лицензирования профессий. Типовой закон требует:
В некоторых штатах требуется непрерывное образование.
В Техасе штат Техас стал первым профессиональным инженером-программистом в США 4 сентября 1998 г. или 9 октября 1998 г. По состоянию на май 2002 г. Техас выдал 44 профессиональных инженерных лицензии для инженеров-программистов. В 2001 году Рочестерский технологический институт присвоил первые степени бакалавра программной инженерии. За ним последовали и другие университеты.
Профессиональное лицензирование подвергается критике по многим причинам.
С 2002 года компьютерное сообщество IEEE предлагало сертификационный экзамен Certified Software Development Professional (CSDP) (в 2015 году это был заменен несколькими аналогичными сертификатами). Группа экспертов из промышленности и научных кругов разработала экзамен и провела его. Дональд Багерт, а позже Стивен Токи возглавили аттестационную комиссию. В основе содержания экзамена лежит руководство SWEBOK (Свод знаний программной инженерии ) с дополнительным упором на профессиональные практики и области знаний в области экономики программной инженерии. Мотивацией было создание структуры на международном уровне для областей знаний программной инженерии.
Человеку необходимо предоставить лицензию «профессионального инженера», чтобы иметь право на практиковать профессиональную разработку программного обеспечения в качестве профессионального инженера в Онтарио. Чтобы получить лицензию профессиональных инженеров Онтарио (PEO), вы должны:
Тем не менее, хорошо отметить, что многие выпускники программ инженерии программного обеспечения не могут получить лицензию PEO, поскольку работа, на которую они претендуют после окончания учебы в качестве начального уровня, не связана с инженерией, т.е.. работа в компании-разработчике программного обеспечения, написание кода или тестирование кода не квалифицирует их, поскольку их опыт работы не соответствует руководящим принципам опыта работы, установленным PEO. Кроме того, программы программной инженерии в Онтарио и других провинциях включают серию курсов по электротехнике, электронике и вычислительной технике, которые позволяют выпускникам даже работать в этих областях.
Человеку необходимо предоставить лицензию «инженера», чтобы иметь право заниматься профессиональной разработкой программного обеспечения в Квебеке. Чтобы получить лицензию Квебекского ордена инженеров (по-французски: Ordre des ingénieurs du Québec - OIQ), вы должны:
Термин «инженер» в Канаде ограничен теми, кто окончил квалификационную инженерную программу. Программы «Разработка программного обеспечения» некоторых университетов находятся в ведении инженерного факультета и поэтому соответствуют требованиям, например, Университет Ватерлоо. Другие, такие как Университет Торонто, имеют «программную инженерию» на факультете информатики, что не соответствует требованиям. Это различие связано с тем, как регулируется профессия. Дипломы в области инженерии должны быть аккредитованы национальной комиссией и иметь определенные требования, позволяющие выпускнику продолжить карьеру профессионального инженера. Степени "Компьютерные науки", даже те, которые имеют специальность в области разработки программного обеспечения, не должны соответствовать этим требованиям, поэтому факультеты компьютерных наук, как правило, могут преподавать более широкий спектр тем, а студенты могут получить высшее образование без специальных курсов, необходимых для продолжения карьеры профессионального инженера.