В отличие от других профессий (таких как бухгалтерский учет, юриспруденция, медицина и т. Д.), Для программной инженерии не существует общепрофессиональной сертификации.
Я хорошо осведомлен о множестве сертификаций, относящихся к технологиям и методологиям, которые призваны служить доказательством специализации и опыта, но нет ни одного общественного общества / руководящего органа Software Engineering, который бы устанавливал (и имел полномочия юридически оценивать) общепринятые профессиональные стандарты ,
Я понимаю, что программное обеспечение - это динамичный зверь - это отчасти искусство, отчасти наука, - но мне интересно, может ли разработка программного обеспечения стать формальной профессией.
Что нужно изменить, чтобы это произошло, и будет ли это даже хорошо?
(Если кто-нибудь знает о формальных исследованиях по этой теме, я буду очень признателен за ссылки)
Обновить
Я согласен со многими из положительных моментов, поднятых ниже в отношении текущего уровня сертификации в программной инженерии. Мне также очень интересно, что некоторые страны относятся к разработке программного обеспечения как к профессии, а другие - нет.
Тем не менее, кажется, что термин «формальная профессия» и его применение к программной инженерии не совсем понятны. Я думаю, что ключевая проблема в разработке программного обеспечения - и главная причина, по которой это не полноценная профессия - заключается в том, что если вы сертифицированный инженер-программист и, например, какое-то программное обеспечение, которое вы написали для неисправностей лифта и убивает людей, Ваша сертификация и / или членство в официальной профессиональной организации не будут аннулированы.
Несомненно, ваша компания может быть привлечена к ответственности за миллионы, и вы лично можете потерять свою работу и получить плохую рекомендацию, но, вообще говоря, вы лично защищены щитом с ограниченной ответственностью в результате работы в указанной компании. Другими словами, и, насколько мне известно, не существует юридической оценки / правоприменения (в отличие от других формальных профессий и их управляющих обществ), которые уполномочены официально запретить вам торговать после того, как вы сделали колоссальную затею. ,
Мне очень понравился ответ, который затронул тот факт, что разработка программного обеспечения - в его нынешнем виде - это меритократия, которая не должна быть формальной профессией, и что это хорошая вещь, которая не должна меняться. В то же время, я думаю, нам необходимо провести четкое различие между разработчиками программного обеспечения критически важного программного обеспечения и разработчиками разного / некритического программного обеспечения.
Для тех из вас, кто работает / работал над критически важным программным обеспечением - есть ли личная ответственность? Конечно, есть необходимость в формальных последствиях в случае, если инженер-программист совершит дорогостоящую ошибку?
источник
Ответы:
Основываясь на имеющейся информации, я считаю, что Software Engineering уже формальная профессия. Это не может быть широко принято как таковое, но оно соответствует общепринятым критериям характеристик профессии.
Из статьи Википедии о профессии :
Это цитирует Магали Сарфатти Ларсон « Повышение профессионализма: социологический анализ» . Поиск «характеристик профессии» приводит к схожим результатам.
Как Software Engineering сочетается с этими характеристиками?
Профессиональная ассоциация Существует множество профессиональных ассоциаций для разработчиков программного обеспечения. IEEE и более конкретно Computer Society IEEE служат специалистов , работающих в области машиностроения по всему миру, с IEEE Computer Society с особым акцентом на компьютерных и программных инженеров. ACM является другой профессиональной организацией , для специалистов , работающих в вычислительной, как правило , в Северной и Южной Америке. Также существует Британское компьютерное общество , которое обслуживает различные аспекты профессий в области информационных и коммуникационных технологий, как правило, в Великобритании.
Когнитивная база . Свод знаний по программной инженерии спонсируется IEEE, Boeing, Национальным исследовательским советом Канады, Raytheon, Construx Software, Канадским советом профессиональных инженеров, корпорацией MITER, NIST, Rational, SAP (для версии 2004 года). Это было начато специально как шаг к «превращению разработки программного обеспечения в законную инженерную дисциплину и признанную профессию» .
Институционализированное обучение В США программы по информационным технологиям, информатике и разработке программного обеспечения могут быть аккредитованы ABET . В Канаде программы по компьютерным наукам и разработке программного обеспечения аккредитованы CIPS . Эти организации определяют минимальные стандарты и ожидаемые результаты для студентов, заканчивающих аккредитованную программу, чтобы они могли функционировать в профессиональной среде. IEEE также предлагает два экзамена на основе совокупности знаний в области разработки программного обеспечения - сертифицированный экзамен Associate Development Software для студентов (или недавно выпускников) и сертифицированный экзамен Professional Software Development для профессионалов среднего звена.
Лицензирование По состоянию на апрель 2013 года, NCEES предлагает экзамен по профессиональной инженерии в области программной инженерии . Он предлагается в каждом штате в Соединенных Штатах. Тем не менее, экзамен Software Engineering PE в настоящее время предлагается не каждым штатом, и еще меньше людей требуют лицензии. Эта статья, опубликованная в выпуске IEEE Software за ноябрь / декабрь 1999 года, обсуждает лицензионные требования в штате Техас и краткое обсуждение лицензирования в Онтарио и Британской Колумбии, Канаде и Великобритании. В Техасе лицензия требуется только для работы над проектированием, тестированием или внедрением встроенных систем или систем реального времени, которые «требуют детального понимания инженерных электрических или механических компонентов», а также для программных систем для «механических устройств, электрических устройств». и системы питания »- сравнительно небольшой объем работ по разработке программного обеспечения. В штатах, предлагающих лицензирование, наихудший сценарий - дисциплинарные меры, санкции или потеря вашей лицензии в случае подачи жалобы клиентом или работодателем. Однако единственный реальный вред наносится в штатах, которым требуется лицензия - если лицензия не требуется для выполнения работы, ее потеря ничего не значит.
Кодекс этики ACM и IEEE Computer Society создали Кодекс этики и профессиональной практики разработки программного обеспечения . В Соединенных Штатах выпускники аккредитованных ABET инженерных программ, включая программы Software Engineering, также могут присоединиться к Ордену инженера , который поддерживает этический кодекс, который обычно применяется к профессиональным инженерам.
Рабочая автономия, коллегиальный контроль, высокие стандарты профессионального и интеллектуального мастерства. Они часто видны в среде, где разработка программного обеспечения рассматривается как инженерная дисциплина. То есть, не все работодатели (или фрилансеры) относятся к разработке программного обеспечения как к разработке.
источник
Широко созданная и признанная профессиональная организация для разработчиков программного обеспечения / инженеров / архитекторов / и т. Д. Не будет хорошей вещью.
В настоящее время это одна из немногих областей, которые могут выступать в качестве меритократии. Например, мне все равно, какая у вас степень (или у вас она вообще есть), какой у вас стаж работы, какие языки вы знаете и т. Д. Определить, достаточно ли вы хороший разработчик или нет, относительно легко. и в конце дня это единственное, что имеет значение. т.е. можете ли вы добиться цели?
В настоящее время вы оцениваете свои способности, а не какую-то аккредитацию, которую кто-то присудил вам. И это справедливая, хорошая вещь (тм).
источник
Ничего не нужно менять.
Как отметил Томас , разработка программного обеспечения - это уже профессия. Его можно назвать проектированием, программирование, взлом, и / или разработки, но это , как профессия и много людей делают деньги на этом.
Я думаю, что ваш вопрос касается лицензирования.
В настоящее время нет формального лицензирования для разработки программного обеспечения. Любой человек, обладающий достаточным умом и навыками программирования, может быть нанят и оплачен за создание кода, который выполняется на машине или устройстве.
Это не похоже на другие отрасли (в качестве примеров приводятся юриспруденция и медицина). Для этих профессий требуется лицензия. Любой может водить автомобиль, но для легального вождения необходимо иметь лицензию dirvers - еще один пример. Любой может программировать, не требуются лицензия или сертификация.
Теперь я считаю, что лицензирование хорошо в том смысле, что оно доказывает, что кто-то имеет возможность что-то делать (например, водить машину) и знает все тонкости правил (дорожного движения).
Для разработки программного обеспечения может потребоваться аналогичная лицензия, но я не думаю, что она принесет много пользы. На самом деле есть много лицензированных водителей, которые являются ужасными водителями, так что если у вас есть лицензия, это не значит, что вы хороший водитель или программист.
Лицензия создает барьер для входа, что в этой отрасли было бы не очень хорошо, поэтому я не вижу никакой ощутимой выгоды от такого лицензирования.
Компании, которые нанимают разработчиков программного обеспечения, должны определенно проверить способности этого потенциального программиста с помощью «теста программирования» (и я не говорю о типе «шипучего гудения») на основе необходимого набора навыков. Программисты с «сертификацией» хорошо выглядят на бумаге, но их действительно нужно проверить с помощью реальных испытаний для оценки опыта и способностей.
источник
Я думаю, что можно стать сертифицированным разработчиком программного обеспечения, сдав экзамен так же, как адвокат сдает экзамен на адвоката. Я также считаю, что несертифицированные программисты все еще должны иметь возможность работать в качестве программистов. Разница в том, что работодатели смогут рекламировать специально для сертифицированных программистов, если они этого хотят, а сертифицированный программист получит определенные гарантии подотчетности, а также более высокую цену.
Я согласен с постером, который говорит, что разработка программного обеспечения - это беспорядок, без ответственности. Я не думаю, что так должно быть. Есть разработчики, которые хотят делать хорошее программное обеспечение и готовы нести за него ответственность. Нам просто нужен способ отличиться.
Я занимаюсь разработкой программного обеспечения более 20 лет. Я не утверждаю, что это само по себе делает меня отличным разработчиком, но я думаю, что я довольно хороший разработчик. Проблема в том, что мне приходится постоянно демонстрировать, почему я лучший разработчик, чем каждый ребенок, который в свободное время изучал программирование и хочет получить ту же работу, что и я. Не говоря уже о легионах «оффшорных» разработчиков, которые обещают сделать ту же работу за небольшую часть денег. Прямо сейчас это требует больших усилий. Я должен предоставить рабочие образцы, рекомендации, пройти тесты, пройти собеседование. Я мог легко пережить плохой день, ошибиться на экзамене и получить дисквалификацию. Я бы просто сказал: «Да, я сертифицированный разработчик, и вот мой сертификат». Мне все равно придется давать интервью, но, по крайней мере, я буду конкурировать только с другими сертифицированными разработчиками.
источник
Это никогда не будет, по крайней мере, не полностью. Программное обеспечение является средой, как краска. Есть люди, которые выполняют промышленные работы по покраске больших конструкций, есть люди, которые разрабатывают новые краски, чтобы выполнить их в соответствии с высокими стандартами, но есть также люди, которые покупают краску, чтобы делать мелкие работы, такие как покраска своего сарая, и другие, которые могут смешаться их собственная краска, но просто используйте ее, чтобы рисовать картины кошек.
Точно так же, хотя я мог видеть будущее, в котором критическое для безопасности и / или финансовое программное обеспечение нуждается в аккредитованных инженерах, работающих над ним, никогда не будет необходимости в людях, производящих программное обеспечение для искусства или развлечений. Что нужно изменить, чтобы получить безопасное или финансовое программное обеспечение, необходимое для аккредитованных инженеров? Ну, как и в случае с другими профессиями, для принятия закона требуется закон.
источник
Программное обеспечение не профессия, и никогда не будет таковой.
«Профессия возникает тогда, когда любая профессия или профессия трансформируются посредством разработки формальных квалификаций, основанных на образовании, ученичестве и экзаменах, появлении регулирующих органов, уполномоченных принимать и дисциплинировать членов, и некоторой степени монопольных прав».
Это описание не соответствует программному обеспечению.
Прежде всего, любой, кто интересуется программным обеспечением, может выйти и попытаться найти работу по разработке программного обеспечения. Многие из этих людей имеют высшее образование, совершенно не связанное с компьютерным программированием, а многие вообще не имеют никакого образования. Ничто не мешает ни одной из этих групп стать программистами.
Программное обеспечение не может стать профессией, потому что «лицензированные» участники несут ответственность за ущерб, который они наносят, и за их халатность. 80-90% разработчиков потеряют работу в течение нескольких лет.
В целом, качество программного обеспечения ужасно, подвержено ошибкам и просто не очень хорошо сделано. Это достойно быть профессией? Вы предвидите эту остановку, потому что люди получают лицензию? Если профессиональная организация не будет отстаивать высокие стандарты и профессиональное качество, то в этом нет никакого смысла. Это идет вразрез с отраслевой практикой. Написание качественного, надежного и работающего программного обеспечения противоречит принципам большинства компаний, потому что время выхода на рынок, стоимость, это достаточно хорошо, не хотят ломать что-либо еще, пытаясь исправить неисправное программное обеспечение, рассматривается как более важнее, чем программное обеспечение профессионального уровня.
Также по поводу злоупотребления служебным положением. Как вы собираетесь доказать, что один разработчик против другого виноват. В программном обеспечении это способ легко указывать пальцем, и оба разработчика "правы". Кто виноват, когда этот разработчик использует недокументированный API, скрытый в недрах ОС, а затем поставщик ОС меняет свою функцию или удаляет ее?
Удачи с этим регулирующим органом. Давайте посмотрим, как конгресс откажется от Microsoft, когда Microsoft попросит их убить этот законопроект, потому что он позволит им только нанять «лицензированных» разработчиков. Без этого регулирующего органа, кто собирается вступить в организацию, которая имеет право дисциплинировать вас и взимать с вас пошлины, особенно если нет такой дополнительной ценности, как получение монопольных прав без регулирующего органа.
Что касается, было бы хорошо требовать лицензирования? Абсолютно для тех, кто может получить аккредитацию. Ваша зарплата резко возрастет с вашей новой найденной монополией.
Тем не менее, для всех остальных ... использование компьютерных технологий в бизнесе, вероятно, сократится вместе с быстрыми темпами развития, которые мы наблюдаем в настоящее время. Безусловно, будут препятствия для новых достижений программного обеспечения, таких как языки и методологии проектирования. В конце концов, кто захочет искать новые способы ведения дел, которые потребуют годы переподготовки для сохранения вашей лицензии. Большинство лицензированных разработчиков предпочтут оставить все как есть в этом отношении.
источник