Нужна ли вам лицензия на разработку компьютерного программного обеспечения?

Обновлено: 21.11.2024

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

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

Что такое лицензия на программное обеспечение?

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

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

Большая часть программного обеспечения подпадает под одну из двух категорий, которые имеют явные различия в том, как они рассматриваются в соответствии с законом об авторском праве:

  • Запатентовано – также называется "закрытый исходный код".
  • Бесплатное программное обеспечение с открытым исходным кодом (FOSS) — называется «открытым исходным кодом».

Лицензии на программное обеспечение FOSS — дают клиенту права, которые включают модификацию и повторное использование кода программного обеспечения, предоставляя фактический исходный код вместе с программным продуктом(ами). Этот тип лицензирования с открытым исходным кодом предоставляет пользователю право изменять функции программного обеспечения и свободу проверки кода программного обеспечения.

Лицензии на проприетарное программное обеспечение — не предоставляют таких полномочий для модификации или повторного использования кода и обычно предоставляют программное обеспечение только с рабочим кодом, а не с исходным кодом. Лицензия на проприетарное программное обеспечение часто включает условия, запрещающие «обратное проектирование» объектного кода с целью получения лицензиатом исходного кода.

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

Если на программное обеспечение не распространяется никакая лицензия, оно обычно классифицируется как:

  • Программное обеспечение, являющееся общественным достоянием — бесплатное для использования и не защищенное авторскими правами
  • Частное нелицензионное программное обеспечение, например бизнес-приложения, на которые все еще распространяется защита авторских прав.

Лицензирование программного обеспечения с открытым исходным кодом и проприетарного программного обеспечения также может предусматривать дополнительные ограничения и условия:

  • Передача права собственности покупателю или сохранение права собственности продавцом.
  • Любое разрешение на копирование, продажу или распространение программного обеспечения
  • Определение того, является ли лицензия покупкой или арендой программного обеспечения.

Как работает лицензирование программного обеспечения?

Новые пользователи программного обеспечения обычно заключают лицензионное соглашение с конечным пользователем (EULA), которое представляет собой юридическое определение отношений между лицензиаром (поставщиком) и лицензиатом (пользователем или предприятием). Лицензионное соглашение — это договор, устанавливающий права покупателя на установку и использование программного обеспечения.

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

Облачные приложения, такие как ПО как услуга (SaaS), часто включают сведения о лицензии в лицензионных соглашениях, включая:

  • Ежемесячная или годовая плата за пользователя
  • Срок действия соглашения
  • Условия расторжения соглашения
  • Возмещение любых расходов в случае отмены во время действия соглашения

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

Какие существуют типы лицензий на программное обеспечение?

Существует пять основных категорий или типов лицензий на программное обеспечение, используемых для различных видов программного обеспечения и различных деловых соглашений. Они охватывают широкий спектр сценариев лицензирования, от бесплатного программного обеспечения (общественное достояние) до платного коммерческого программного обеспечения (проприетарное).

Между этими двумя крайностями есть еще три категории (GNU/LGPL, разрешительная и авторское лево), которые применяются к различным формам проектов с открытым исходным кодом.Несоблюдение условий лицензии на открытый исходный код может привести к раскрытию коммерческой тайны или даже судебному преследованию со стороны разработчиков проекта.

5 типов лицензий на программное обеспечение, о которых вам нужно знать

1. Лицензия общественного достояния

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

По многим причинам предприятия должны проявлять осторожность при использовании общедоступного программного обеспечения в проектах или других важных приложениях:

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

2. GNU/LGPL – Стандартная общественная лицензия ограниченного применения GNU (LGPL)

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

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

3. Разрешающий

Этот тип лицензии является одним из самых распространенных и популярных среди лицензий программного обеспечения с открытым исходным кодом. По разрешительной лицензии, также называемой «Apache» или «в стиле BSD», существует несколько ограничений или требований для распространения или модификации программного обеспечения. Другой разновидностью разрешительной лицензии на программное обеспечение является лицензия MIT.

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

4. Авторское лево

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

Это означает, что если код, включенный в программный продукт, предназначен для «только личного использования», распространяемый новый продукт должен иметь такое же обозначение/ограничение.

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

5. Собственность

Эти лицензии на программное обеспечение запрещают копирование, изменение или распространение программного обеспечения. Это самый строгий тип лицензии на программное обеспечение, защищающий разработчика или владельца от несанкционированного использования программного обеспечения.

Что такое лицензионное соглашение на программное обеспечение?

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

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

Для чего используются лицензии на программное обеспечение?

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

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

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

Лицензии на программное обеспечение определяют полное соглашение между лицензиаром и лицензиатом. Цель состоит в том, чтобы прояснить отношения как с юридической, так и с технической точки зрения, чтобы не было сюрпризов или догадок относительно ответственности, пока действует соглашение.

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

Сколько стоит лицензия на программное обеспечение?

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

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

Управление лицензиями на программное обеспечение

Управление лицензиями на программное обеспечение и соглашениями о программном обеспечении можно упростить, внедрив инструмент управления, который отслеживает все лицензии, даты вступления в силу и проблемы с соблюдением требований.

Snyk Open Source License Compliance позволяет компаниям эффективно отслеживать лицензии с открытым исходным кодом в проектах, независимо от типа используемых лицензий.

Часто задаваемые вопросы о лицензировании программного обеспечения

Вот некоторые из часто задаваемых вопросов о лицензировании программного обеспечения:

Какой тип лицензии на программное обеспечение лучше всего?

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

Может ли компания иметь несколько типов лицензий на программное обеспечение?

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

Что такое лицензия MIT? Ответы на 10 самых популярных вопросов

Это одно из самых простых лицензионных соглашений с открытым исходным кодом. Цель заключалась в том, чтобы текст был понятен обычным пользователям и чтобы избежать обширных судебных разбирательств, которые могут возникнуть в связи с другими аналогичными лицензиями на бесплатное программное обеспечение с открытым исходным кодом (FOSS). Лицензирование программного обеспечения с открытым исходным кодом стало обязательным в 1980-х годах. До этого большинство программистов охотно делились.

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

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

Какая подготовка требуется, чтобы стать инженером-программистом?

Инженеры-программисты обычно имеют опыт программирования. Многие программисты сами изучают новые языки программирования и приобретают новые навыки, но хороший теоретический опыт в области компьютерных наук или разработки программного обеспечения может быть важным преимуществом.

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

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

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

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

Существуют ли какие-либо требования к сертификации или лицензированию?

К разработчикам программного обеспечения не предъявляются лицензионные требования, однако существует множество добровольных сертификатов, которые инженеры могут получить в зависимости от своих интересов. Компьютерное общество IEEE предлагает два сертификата для инженеров-программистов: сертификат сертифицированного специалиста по разработке программного обеспечения и сертификат сертифицированного специалиста по разработке программного обеспечения. Чтобы получить сертификат CSDA, инженеры должны сдать сертификационный экзамен, но чтобы получить сертификат CSDP, они должны соответствовать требованиям к опыту и образованию в дополнение к сдаче экзамена.

Институт разработки программного обеспечения Карнеги-Меллона также предлагает сертификаты, в том числе сертификат Personal Software Process Developer. Персональный программный процесс — это подход к разработке программного обеспечения, разработанный Институтом программной инженерии. Инженеры-программисты, прошедшие обучение PSP, могут получить этот сертификат, сдав экзамен.

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

Сколько времени нужно, чтобы стать инженером-программистом?

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

Сколько зарабатывает инженер-программист?

Средняя годовая заработная плата разработчиков программного обеспечения, включая инженеров, в США в 2012 году составляла 90 060 долларов США. Десять процентов разработчиков с самым низким доходом заработали в том году менее 55 190 долларов США, а 10 % лучших заработали более 138 880 долларов США.

Каковы перспективы трудоустройства?

По прогнозам Бюро трудовой статистики, занятость разработчиков программного обеспечения в США вырастет на 22 % в период с 2012 по 2020 год, что намного быстрее, чем в среднем по всем профессиям. Это очень востребованная работа, поэтому должно быть много возможностей для квалифицированных инженеров-программистов. BLS прогнозирует, что у разработчиков, которые будут в курсе последних достижений в области языков программирования и инструментов разработки, будут лучшие перспективы трудоустройства.

Каковы долгосрочные карьерные перспективы инженеров-программистов?

Набравшись опыта, инженеры-программисты могут перейти на руководящие должности с большей ответственностью и контролем над направлением проекта разработки. Некоторые инженеры-программисты создают собственные компании на основе разработанного ими нового приложения или услуги, которую они могут предоставить.

Как мне найти работу инженера-программиста?

Вакансии в области разработки программного обеспечения можно найти на обычных сайтах с объявлениями о вакансиях, на ярмарках вакансий и встречах в сфере ИТ или на сайтах фрилансеров. Сайты фрилансеров свяжут вас с клиентами и работодателями, которые хотят, чтобы работа по контракту выполнялась. Даже если вы ищете постоянную работу, вы можете использовать внештатные вакансии для создания своего портфолио работ.

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

Под лицензированием понимается выдача лицензии, которая дает «разрешение на практику». Такие лицензии обычно выдаются для регулирования какой-либо деятельности, которая считается опасной или представляет угрозу для человека или общества или связана с высокий уровень специальной подготовки. Что касается лицензированных инженеров-программистов, человек должен будет пройти тест, демонстрирующий определенный «свод знаний», который считается необходимым для инженера-программиста, и выполнить некоторые другие основные требования (такие как наличие высшего образования в соответствующей области, д.), чтобы называть себя программистом. Тогда только лицензированные инженеры смогут по закону занимать определенные должности в компаниях, которым, по мнению лицензионного совета, должен помогать лицензированный инженер-программист, подобно тому, как преподавательские должности в вашей местной государственной школе могут помогать только лицензированные учителя.

Если вас все еще интересует лицензирование в целом, вот несколько примеров лицензирования на практике для других дисциплин:

Поэтому не имеет смысла «лицензия на разработку программного обеспечения», если вы не хотите, чтобы все, от вашего домашнего компьютера до данных в местной больнице, терпело сбой.

ПЛЮСЫ ЛИЦЕНЗИРОВАНИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:

  • Создает стандартную планку для каждого лицензированного специалиста, гарантирует некоторый минимальный стандарт.
  • Гарантирует, что инженеры-программисты обладают базовым «сводом знаний»
  • Повышает личную ответственность за код (например, если лицензированный специалист руководит командой программистов, конечный продукт должен быть одобрен «штампом одобрения» лицензированного специалиста, что налагает большую ответственность и, следовательно, ответственность на лицензированного профессионалов. Повышение личной ответственности должно повысить качество конечного продукта.)

МИНУСЫ ЛИЦЕНЗИРОВАНИЕ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ :

  • Базовый «свод знаний» звучит хорошо на практике, но его невозможно реализовать по двум причинам:
  1. Разработка программного обеспечения – это настолько обширная дисциплина, что любой объем знаний будет слишком обширным, чтобы один человек мог полностью понять ее. Как описывает Роберт Гласс, разработка программного обеспечения — это не только наука, но и искусство, поэтому такие правила, как «не строить дом на линии разлома», никогда не бывают такими четкими.
  2. Из-за того, что разработка программного обеспечения является еще незрелой областью, разработка программного обеспечения сама по себе постоянно меняется. Являются ли инженеры-программисты продвинутыми программами, специалистами по оборудованию или менеджерами? Если роль инженера-программиста четко не определена, как может быть его ожидаемый «свод знаний»?

Пример: Роберт Лиф из AdaMed. На конференции, посвященной обсуждению потенциала лицензирования разработки программного обеспечения, г-н Лиф упомянул, что причина, по которой мы все не можем использовать один общий язык программирования, заключается в том, что этот язык должен подходить для проблемный домен. Итак, какими языками должен владеть инженер-программист? Это действительно произвольные вызовы. (лицензированный профессиональный инженер-программист)

Примеры лицензирования:

США: Техас, в настоящее время единственный штат в США, предлагающий лицензирование разработки программного обеспечения, созданный в 1998 году. Можно стать профессиональным инженером, имея только специальность в области разработки программного обеспечения. Первая половина теста — это электротехника, вторая половина — в основном аппаратное обеспечение — не очень много программирования, и, следовательно, не очень ориентированное на программное обеспечение, и поэтому не очень полезное. Дэйв Дорчестер, вице-председатель Техасского совета профессиональных инженеров, отмечает: «Действительно, официальные лица из многих штатов и некоторых других стран сказали нам, что они ждут, чтобы увидеть, как все это воплотится в жизнь». Таким образом, случай в Техасе рассматривался как «пилотная программа» по лицензированию разработки программного обеспечения, хотя и не распространился на какой-либо другой штат или страну. Насколько тогда это могло быть эффективно?

IEEE/ACM: С 1993 года IEEE Computer Society и ACM активно продвигали разработку программного обеспечения как профессию и законную инженерную дисциплину, в частности, через свой Координационный комитет по разработке программного обеспечения (SWECC). Однако ACM отказался от этой идеи и перешел на другую сторону, заявив, что лицензирование — это неправильно.

Международно: Профессионал по информационным системам (ISP) или Informaticien Professionalnel Agréé (IPA на французском языке) — это профессиональный статус, присвоенный Канадским обществом обработки информации (CIPS). Введенное в 1989 году, профессиональное обозначение признано законодательством в большинстве провинций Канады. Однако это не требуется по закону, поэтому это больше похоже на сертификацию, чем на лицензию.

Вывод, который мы сделали:

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

Информация о CSDP (что требуется для получения сертификата):

<р>1. На момент подачи заявки кандидат имеет степень бакалавра или эквивалентную университетскую степень и имеет не менее 9000 часов опыта разработки программного обеспечения как минимум в шести (6) из одиннадцати (11) областей знаний SE (десять областей SWEBOK и Профессионализм и инженерия). экономика).

<р>2. Кандидаты должны подписаться под Кодексом этики и профессиональной практики разработчиков программного обеспечения

<р>3. Кандидаты должны сдать экзамен, демонстрирующий владение областями знаний

Лицензирование профессиональных инженеров-программистов: не упустите возможность

В своей колонке Communications за июль 2013 г. президент ACM Винт Серф вновь коснулся споров о лицензировании профессиональных разработчиков программного обеспечения в США. против. Официально ACM выступил против, а IEEE поддержал такое лицензирование. Однако даже внутри обеих организаций есть существенная поддержка и оппозиция. 1,2,3,5 Я думаю, что президент Серф был прав, предположив, что из-за резкого роста взаимодействующего программного обеспечения как на устройствах, так и в приложениях, которые существенно влияют на жизнь людей, и, что более важно, из-за лицензирования, мы достигли переломный момент.

Я являюсь давним (более 25 лет) членом как ACM, так и IEEE, и я возглавляю комитет, который разработал и поддерживает лицензионный экзамен для использования в штатах. Я также участвовал в оказании помощи лицензионным советам штатов в решении вопросов, связанных с введением в действие процесса лицензирования. Несмотря на это, я не был давним сторонником лицензирования разработчиков программного обеспечения. Я выступал против этого совсем недавно, в 2005 году, отмечая множество проблем. 5 Но две вещи изменили мое мнение. Первой была книга о бурной истории внедрения медицинского лицензирования в США8, ​​истории, которая во многом аналогична истории лицензирования разработчиков программного обеспечения. Вторая включала в себя глубокие беседы с Деннисом Фрэйли и Доном Багертом, которые много лет писали в поддержку лицензирования определенных разработчиков программного обеспечения. Я пришел к убеждению, что необходимо продвигать процесс лицензирования и участвовать в решении этих проблем внутри сообщества лицензированных профессиональных инженеров.

Я не буду пересматривать плюсы и минусы лицензирования, как уже отмечалось, существует достаточно литературы по этому поводу, и что бы вы ни думали, лицензирование определенных разработчиков программного обеспечения теперь является обязательным в 40 штатах США, и другие штаты, вероятно, последуют этому примеру. Вместо этого я хотел бы кратко обобщить текущую ситуацию, описать некоторые проблемы внедрения, а затем предложить ACM и его членам принять более активное участие.

Мнения, выраженные здесь, являются моими собственными и не представляют никакой другой организации, с которой я связан.

Текущая ситуация

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

  • Имеет степень бакалавра в области разработки программного обеспечения по программе, аккредитованной ABET.
  • Сдача экзамена по основам инженерии (FE).
  • Наличие соответствующего опыта работы (обычно не менее четырех лет) под руководством лицензированного профессионального инженера (PE).
  • Сдача экзамена по принципам и практике разработки программного обеспечения (P&P).

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

Мой волонтерский комитет разработал экзамен P&P. Усилия по разработке поддерживались консорциумом некоммерческих организаций, включая Национальное общество профессиональных инженеров, Техасский совет профессиональных инженеров и IEEE (через его Совет США и Компьютерное общество). Национальный совет экзаменаторов инженеров и геодезистов (NCEES) является некоммерческой организацией, которая наблюдает за разработкой и администрированием всех экзаменов для советов штатов.Несколько членов комитета по разработке экзаменов являются членами ACM, хотя и действовали в частном порядке. Обсуждение процесса разработки экзамена можно найти в Laplante. 6

В апреле 2013 года был предложен первый экзамен Principal and Practices. Экзамен сдавали двенадцать человек, а шесть сдали экзамен. Вероятно, небольшое количество экзаменуемых было связано с тем, что экзамен FE должен быть сдан до того, как можно будет сдать экзамен P&P.

Лицензирование некоторых разработчиков программного обеспечения теперь является обязательным в 40 штатах США, и, вероятно, последуют и другие штаты.

Экзамен FE состоит из 180 вопросов с несколькими вариантами ответов, и именно этот экзамен, кажется, вызывает наибольшее сопротивление и страх, когда я обсуждаю лицензирование. Утренняя сессия одинакова для всех инженерных дисциплин: 120 вопросов по математике, вероятности и статистике, химии, компьютерам, этике, деловой практике, экономике, механике, сопротивлению материалов, свойствам материалов, гидромеханике, электричеству и магнетизму и термодинамике. Инженеры-программисты сдают тот же дневной экзамен, что и инженеры-электрики и компьютерщики. Этот экзамен состоит из 60 вопросов, касающихся электрических цепей, питания, электромагнетизма, систем управления, связи, обработки сигналов, электроники, цифровых и компьютерных систем.

Большинство дневных тем будет изучаться учащимся программы разработки программного обеспечения, аккредитованной ABET (в США их 21), или программы информатики. Тем не менее, некоторые темы утренних сессий такие студенты обычно не увидят. Тем не менее, можно придумать обстоятельства, при которых концепции свойств материалов, механики жидкости и термодинамики были бы актуальны для инженера-программиста, работающего в области очистки воды, производства и распределения электроэнергии или автомобильных и железнодорожных систем. Кроме того, эти области составляют небольшую часть теста и могут быть изучены самостоятельно в рамках обзорных курсов. Экзамен FE был недавно пересмотрен NCEES и будет продолжать развиваться, чтобы более точно отражать растущие различия в инженерных программах ABET. Это возможность для специалистов по программному обеспечению и преподавателей получить лицензию и работать над реформированием экзамена FE и степени инженера-программиста ABET.

Альтернативные варианты и промышленное исключение

Некоторые советы штатов отменяют определенные требования, например, связанные с образованием и опытом, или предусматривают альтернативное удовлетворение. Например, многие правила правления позволяют обменивать образование на опыт и наоборот, скажем, наличие соответствующей степени магистра может засчитываться как один год опыта; доктор философии можно было рассчитывать на два года опыта. Дополнительные годы опыта могут смягчить получение степени в области разработки программного обеспечения, не аккредитованной ABET, или связанной с ней степени (например, компьютерных наук), несвязанной степени, степени младшего специалиста или отсутствия степени вообще. В некоторых случаях «признанная репутация» может использоваться для обращения в правление с ходатайством о лицензировании или освобождении от определенных критериев. У ACM есть возможность лоббировать советы штатов, чтобы они признали широкий набор степеней (например, компьютерные науки, математика, информационные системы) как соответствующие, присудили кредит для определенных профессиональных сертификатов, а также ввели или расширили критерии дедушки.

По иронии судьбы, я обнаружил, что некоторым людям, которые возражают против лицензирования, возможно, не нужна лицензия.

Во многих штатах есть "промышленные исключения", которые разрешают заниматься инженерной практикой без лицензии в таких областях, как электрические или телекоммуникационные предприятия, а также предприятия, производящие продукцию. Недавно NCEES собрал группу для изучения того, как штаты справляются с этими исключениями. Группа обнаружила, что «несколько штатов на самом деле освобождают многие категории инженеров от лицензирования. Например, инженерные факультеты специально освобождаются от лицензирования только в нескольких юрисдикциях. Государственные и местные органы власти освобождаются от инженерных лицензий только в одной юрисдикции. только в 11 юрисдикциях». 7 Группа также рекомендовала советам штатов сократить количество исключений. Рекомендация NCEES представляет угрозу: сужение списка исключений приведет к увеличению числа специалистов, которым необходимо получить лицензию. Но это также возможность для ACM и его членов принять участие в обсуждении, чтобы побудить советы штатов разумно расширить исключения.

Проблемы реализации

Необходимо решить сложные вопросы реализации. Один важный вопрос заключается в определении «полутени», то есть к каким системам должны применяться законы о лицензировании? Другие вопросы включают: как мы относимся к цепочке взаимодействий, хранению и ответственности за взаимодействующие системы; какие роли могут играть лицензированные профессиональные инженеры; какие артефакты должны быть опломбированы ЧП; и какие роли могут играть неспециалисты по программному обеспечению?Ответы на эти вопросы должны быть всеобъемлющими и последовательными во всех штатах. Эти проблемы существовали и в других лицензированных инженерных дисциплинах, и ответы появились со временем и опытом.

Еще один нерешенный вопрос, общий для лицензирования всех инженерных дисциплин, — международное признание. Существуют некоторые соглашения, которые могут выступать в качестве строительных блоков, но нет единообразия в том, как советы штатов относятся к лицензированным специалистам из других стран и в том, как другие страны признают лицензированных инженеров США. 4 ACM и его члены могут помочь в решении этих проблем.

Вперед

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

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

Государственным советам по лицензированию профессиональных инженеров, в состав которых обычно входят инженеры-строители, требуется помощь в понимании реализации программного обеспечения, понимании полутени, разработке альтернативных путей лицензирования, создании критериев передачи прав на использование и уточнении набора отраслевых исключений. Именно трудности в решении этих вопросов обычно являются основанием для возбуждения дела против лицензирования. Но лицензирование — это реальность, и профессиональные организации, такие как ACM, ASQ и IEEE, должны взять на себя инициативу, помогая советам штатов ответить на эти вопросы. В противном случае на нормотворчество будут влиять юристы, лоббисты и инженеры других специальностей.

Ссылки

<р>1. Багерт, Д.Дж. Лидерство в лицензировании разработчиков программного обеспечения. Общ. ACM 42, 4 (апрель 1999 г.), 2729.

<р>2. Фрэйли, Д.Дж. Лицензирование инженеров-программистов. Общ. ACM 42, 12 (декабрь 1999 г.), 2930.

<р>3. Найт, Дж. К. и Левесон, Н. Г. Должны ли инженеры-программисты иметь лицензию? Общ. ACM 45, 11 (ноябрь 2002 г.), 8790.

<р>4. Лапланте, П.А. Международный взгляд на лицензирование инженеров-программистов в США. Technology and Society 32, 1 (январь 2013 г.), 28, 30.

<р>5. Лапланте, П.А. Профессиональное лицензирование и социальная трансформация инженеров-программистов. Технологии и общество, 24, 2 (февраль 2005 г.), 40, 45.

<р>6. Лаплант, П.А., Калиновский, Б., и Торнтон, М. Спецификация экзамена по принципам и практике для поддержки лицензирования разработки программного обеспечения в Соединенных Штатах Америки. Software Quality Professional 15, 1 (январь 2013 г.), 415.

<р>8. Старр, П. Социальная трансформация американской медицины. Бейсик, Нью-Йорк, 1982 г.

Автор

Филлип А. Лапланте (plaplante@psu.edu) – профессор программной инженерии в Университете штата Пенсильвания.

Авторские права принадлежат автору.

Цифровая библиотека публикуется Ассоциацией вычислительной техники. Авторские права © 2014 ACM, Inc.

Читайте также: