Приказ N 259 от 29.12.2020 об утверждении профессиональных стандартов "351401 Web разработчик" и "351203 Программист"
МИНИСТЕРСТВО ЭКОНОМИКИ И ИНФРАСТРУКТУРЫ
П Р И К А З
об утверждении профессиональных стандартов
"351401 Web разработчик" и "351203 Программист"
№ 259 от 29.12.2020
(в силу 15.02.2021)
Мониторул Офичиал ал Р. Молдова № 9-12 ст. 30 от 15.01.2021
* * *
Утратил силу: 12.08.2026
Министерства экономического развития и цифровизации N 131 от 07.08.2026
В соответствии с п.19 Методологии разработки профессиональных стандартов, утвержденной Постановлением Правительства № 678/2020, а также на основании Положения об организации и функционировании Министерства экономики и инфраструктуры, утвержденного Постановлением Правительства № 690/2017,
ПРИКАЗЫВАЮ:
1. Утвердить профессиональные стандарты:
"351401 Web разработчик" (профессиональное техническое образование), согласно приложению № 1;
"351203 Программист" (профессиональное техническое образование), согласно приложению № 2.
2. Управлению политики и регулирования в области информационного общества и цифровой экономики обеспечить опубликование профессиональных стандартов в Официальном мониторе Республики Молдова.
3. Контроль над исполнением данного приказа беру на себя.
| МИНИСТР | Анатол УСАТЫЙ |
№ 259. Кишинэу, 29 декабря 2020 г. |
Приложение № 1
к Приказу Министерства
экономики и инфраструктуры
№ 259 от 29 декабря 2020 г.
|
ПРОФЕССИОНАЛЬНЫЙ СТАНДАРТ Web разработчик (профессиональное техническое образование) Код КЗРМ: 351401 Уровень НРКРМ: 4 Координаторы: 1. Veronica Midari – эксперт по разработке ПС, Центр инноваций и политик, доктор экономических наук; 2. Petru Todos – координатор проекта, Технический университет Молдовы, доктор технических наук. Рабочая группа по разработке профиля профессии: 1. Veaceslav Barbarii – "Amdaris" SRL, разработчик программного обеспечения (.NET); 2. Eugeniu Cebanu – "Amdaris" SRL, старший разработчик программного обеспечения; 3. Ion Vîrlan – Национальный Банк Молдовы, ведущий инженер, web разработчик (Java); 4. Vladimir Căruntu – "Regular Expressions" SRL, front-end разработчик; 5. Magilina Galcu – "El Compasso-Artitech" SRL Румыния, старший разработчик; 6. Ion Vasilov – "Pentalog CHI" SRL, менеджер проектов разработки программного обеспечения; 7. Irinel Moldovan – "Arhipelago Interactive" SRL Румыния, техник web-сайтов. Рабочая группа по разработке профессионального стандарта: 1. Andrei Hohan – "Fiatest" SRL Румыния, директор, эксперт по разработке ПС, консультант в области ИКТ и информационной безопасности; 2. George Antoci – "BSD Management" SRL, менеджер проекта, консультант в области ИКТ и информационной безопасности; 3. Maria Cucu – "Fiatest" SRL Румыния, эксперт по разработке ПС, эксперт управление качеством в проектах ИКТ; 4. Alina Popa – "Fiatest" SRL Румыния, эксперт по разработке ПС, эксперт по управлению проектами ИКТ; 5. Anatol Oprea – "T2" SRL Румыния, исполнительный директор, менеджер по разработке программного обеспечения; 6. Eugeniu Cebanu – "Amdaris" SRL, старший разработчик программного обеспечения. Оценка и валидация: 1. Ghenadie Cernei – BC "Moldova Agroindbank" SA, директор электронных услуг, председатель комиссии; 2. Ion Aremescu – Î.M. "Enterprise Business Solutions" SRL, директор, web разработчик, член комиссии; 3. Nicolae Godina – Î.M. "Enterprise Business Solutions" SRL, web разработчик, член комиссии. |
Описание деятельности
Определение рода занятий:
Web разработчик (профессиональное техническое образование) участвует в разработке web-сайтов часть front-end, с вовлечением в процесс создания дизайна интерфейсов сайта (user interface design), разработки запрошенных клиентом функций (user experience design), а также на стороне back-end с использованием программирования скриптов, использования программных библиотек, поддержания связи с сервером, изучения поведения web-сайта, устранения неполадок web-сайта.
Обладает знаниями языков web-программирования, языков таблиц стилей, программного обеспечения для творчества, программного обеспечения для редактирования и дизайна графики, прокси-серверов, методологий обеспечения качества, баз данных, операционных систем, протоколов связи, анализа журналов активности (логи), панелей управления (Plesk, cPanel, WHM), информационной безопасность.
В некоторых компаниях деятельность по разработке web-сайтов делится на часть интерфейса сайта (клиентская сторона) и часть разработки алгоритма сайта (серверная часть). Участвующих разработчиков можно разделить на: Front-end разработчиков и Back-end разработчиков соответственно.
Одна из современных подходов, которому должны следовать web разработчики - это "Зеленая ИТ-экономика". Этот принцип направлен на минимизацию негативного воздействия ИТ-операций на окружающую среду за счет разработки, производства, эксплуатации и утилизации компьютерных технологий и связанных с ними продуктов экологически безопасным образом.
Требуемые условия труда (физическая, социально-организационная среда): web разработчик работает в команде со специалистами по ИКТ в офисах, оснащенных компьютерами, подключенными к сети. Способ работы удаленно становится все более популярным.
Профессиональные риски:
- Риски здоровья и психического здоровья, связанные с малоподвижным образом жизни.
- Риски, связанные с перегрузкой зрительной системы.
Об упомянутых рисках следует информировать разработчиков, а также других людей, работающих в сфере ИКТ. Работодатели должны взять на себя обработку профессиональных рисков.
Перспективы рынка труда определяются растущим спросом и важностью цифровых технологий, которые облегчают профессиональное и личное взаимодействие на основе цифровых платформ, web-сайтов, блогов, видео-блогов как в профессиональных, так и в развлекательных целях. Быстро растущая цифровая экономика во всем мире будет продолжать диверсифицировать и способствовать разнообразию и продвижению взаимодействия, и развитию web-сетей. Таким образом, эта область в перспективе будет крайне востребована, специалисты будут востребованы, с возможностью карьерного роста и горизонтального формированию навыков в смежных областях.
Инструменты, используемые в рабочем процессе:
Основные языки программирования, и разработки скриптов, востребованные на рынке труда: JavaScript, TypeScript, PHP, Python, Java, PERL, VB, C#, JSP, Elm, Kotlin (Android), Swift (iOS), PL/SQL.
Библиотеки и Фреймворки: Bootstrap, JQuery, Laravel, Redux, Highcharts, JPGraph, Django, React.js, Angular.js, ASP.NET, Vue.js, Spring, Node.js.
Основные инструменты ИКТ, используемые для тестирования и устранения неполадок программ и программного кода: WebStorm, POSTMAN, CSS Lint, CHrome DevTools, Firefox Developer Tools, Safari Develop Meniu, JSON Formatter and Validator, Cross browser testing tools, Node.js Inspector, SoapUI, Jmeter, Sentry, Robot Framework.
Инструменты отладки интегрируемые в среды разработки: Eclipse, IntelliJ, Visual Studio, Visual Studio Code, Android Studio Debuggers, Xcode.
Инструменты для управления версиями и конфигурацией программного обеспечения: Git, SVN, Microsoft Team Foundation Server, Ansible, NPM.
Инструменты для Continuous Integration / Continuous Delivery: Jenkins, GitLab.
Прочие инструменты: HTML (язык гипертекстовой разметки), CSS (язык управления таблицами стилей).
Будущие тенденции в этой области:
- Развитие области web обуславливает переход от разработки простых и статических web-страниц к созданию сложных и динамических web-приложений, таких как электронная коммерция, обучение на электронных платформах, социальных сетях, сайтах способных выполнять вычисления, диаграммы, выводить сложные данные, меняющиеся с течением времени. Опытный web-разработчик может выполнять задачи, связанные с web-приложениями, используя технологии как на стороне сервера, так и на стороне клиента, а также может участвовать в разработке гибридных приложений.
- В области ИКТ все чаще появляется тенденция к разделению профессии web-разработчика на конкретные функции (направления): UI-дизайнер, UX-дизайнер, Front-end разработчик на разных технологиях (JavaSricpt, ReactJS, VueJs, Angular и др.), Back-end разработчик на разные языки программирования.
- Возрастающая важность web-разработчиков из-за текущей тенденции переноса настольных приложений в среду web и предоставления пользователям доступа к данным независимо от компьютера и места работы. Очевидно растущая популярность и спрос на динамические сайты со сложными и настраиваемыми функциями. Для разработки таких продуктов требуются как внутренние, так и внутренние навыки. В результате web-разработчики с более широкими навыками, которые могут охватывать интерфейсный и внутренний сегменты, имеют лучшие возможности для трудоустройства и роста.
- Концепция "зеленой экономики" приобретает все большее значение во всех сферах, включая ИКТ. Её принципы вызывают растущую озабоченность, поскольку они оказывают влияние на бизнес, общество и значительное влияние на окружающую среду. Зеленая экономика в ИКТ направлена на сокращение энергопотребления, связанного с использованием оборудования и программного обеспечения, например: повышение энерго-эффективности оборудования и центров обработки данных, консолидация серверов с использованием программного обеспечения виртуализации и сокращение загрязнения от отходов, связанных с использованным оборудованием.
Конкретные данные:
Основные блоки деятельностей, за которые отвечает web-разработчик, следующие:
- Участвует в планировании/ проектировании web-приложения: после определения технических требований к приложению, основанных на целях и требованиях клиента и проектирования web-приложения менеджером и архитектором программного обеспечения, web-разработчик участвует в создании общей структуры web-сайта (приложения), идентификация элементов контента, определение технических характеристик согласно общей структуре, выбор платформы хранения для баз данных, определение протоколов связи, выбор инструментов и языка программирования для реализации проекта.
- Участвует в разработке web-приложения: после определения функциональных процессов на основе технических спецификаций, выбора языков программирования и технологий на стороне клиента и сервера менеджером и архитектором программного обеспечения, web-разработчик участвует в написании кода и повторно используемых библиотек, перенос требований (необходимостей) заинтересованных сторон в код внешнего интерфейса (front-end), установке соединение между front-end и back-end на основе подключения к серверу, интеграции решение для хранения данных (databases, key-value stores, blob stores, и т.д.), определении структуру базы данных для извлечения информации, управлении динамическим контентом сайта, внедрении требований безопасности и защиты данных.
Этот этап работы в деятельности специалиста является ключевым. Способность специалиста разрабатывать код сайта для взаимодействовать с базами данных очень важна. Основные инструменты, которыми оперирует специалист: для статических сайтов применяются HTML, CSS, JavaSript; для динамических сайтов применяются языки программирования Ruby, Java, Python, PHP, Perl, Erlang, C# и др. и специальные языки для систем управления базами данных, включая различные диалекты SQL.
- Участвует в тестировании web-приложения: проверяет совместимость сайта на разных типах браузеров, при разных разрешениях и пропорциях просмотра экрана, проверяет совместимости сайта с различными операционными системами, тестирует пользовательский интерфейс web-приложения, тестирует функциональности внутренних и внешних ссылок, тестирует доступность web-приложения для различных пользователей, тестирует web-приложения путем выполнения тестов безопасности и целостности данных, обеспечивает соответствие результатов функциональным и нефункциональным спецификациям, участвует в анализе кода для обеспечения того что внедренные функции рабочие, надежны, могут обслуживаться и поддерживаться.
- Участвует в внедрении web-приложения: в зависимости от сложности приложения, независимо или ограниченно вместе с инженерами по разработке и эксплуатации (DevOps), настраивая аппаратную и программную платформу в соответствии с требованиями, устанавливая и тестируя сайт (приложение и сервисы) на хост-сервере, проверка состояния системы безопасности, регистрация сайта в поисковых системах и системах продвижения.
Общие навыки, которые должен иметь веб-разработчик, следующие:
- Понятие пользовательского опыта (UX),
- Концепция графического проектирования,
- Компьютерное программирование:
• методы и принципы разработки программного обеспечения,
• парадигма программирования (объектно-ориентированное программирование, функциональное программирование),
• языки программирования,
• интегрированные среды разработки.
- Элементы веб-программирования: HTML5, CSS3, JavaScript, PCRE.
- Знание основных элементов веб-приложений: архитектуры REST, архитектуры клиент-сервер, сетевых протоколов, JSON, XML и xPath, конфигурация web-серверов.
- Инструменты для выявления ошибок в ИКТ (отладка).
- Операционные системы (Windows, Linux и др.),
- Безопасные протоколы связи (SSH, TLS / SSL и др.),
- Анализ журналов активности и следов аудита,
- Панели управления (Plesk, cPanel, WHM),
- Инструменты для управления версиями и конфигурацией программного обеспечения (SVN, Git, TFS и т.д.).
- Инструменты цифрового маркетинга.
- Знание английского языка на уровне понимания технической документации необходимо для профессиональной деятельности и развития.
- Знание принципов зеленой экономики в сфере ИКТ (Green IT).
Фонд профессионального стандарта
Web разработчик (профессиональное техническое образование)
Общие (пересекающиеся) компетенции (ОК)
ОК1. Командная работа: понимание ролей и действий, характерных для командной работы; применение внутренних правил командной работы.
ОК2. Общение на работе: устное и письменное общение на родном/ иностранном языке; эффективная коммуникация с рабочей группой и с клиентами, чтобы выполнять деятельность на уровне производительности, требуемом на рабочем месте.
ОК3. Решение проблем и принятие решений: использование необходимых процессов для решения ситуаций, которые отклоняются от нормы, или ситуаций, в которых были выявлены возможности для улучшения, в которых решение не очевидно.
ОК4. Профессиональное развитие: доступ, обработка и усвоение новых знаний и навыков, открытость к обучению на протяжении всей жизни, навыки автономного обучения, основанные на самосовершенствовании и самодисциплине.
ОК5. Следование профессиональным ценностям и этики, и их развитие: ответственное и этичное поведение для обеспечения репутации профессии; объединение и использование знаний, навыков и отношения для достижения результатов, посредством соблюдения минимального набора принципов, ценностей и правил поведения, характерных для профессиональной морали.
ОК6. Использование информационных и коммуникационных технологий: эффективное использование оборудования (например, настольных компьютеров, ноутбуков, планшетов, компонентов ПК), программного обеспечения (например, операционных систем, приложений, программного обеспечения для коммуникации, совместной работы и планирования) и устройств связи (например, телефония, беспроводные и сетевые устройства и беспроводные системы).
ОК7. Применение принципов качества: соблюдение рабочих инструкций, процедур, стандартов качества; выполнение корректирующих и предупреждающих действий для обеспечения выполнения требований к качеству.
ОК8. Применение принципов кибер-безопасности при разработке программного обеспечения: знание и применение механизмов защиты конфиденциальности, целостности и доступности обрабатываемых, хранимых и передаваемых данных.
ОК9. Обеспечение соблюдения требований безопасности и здоровья на рабочем месте: применение требований к организации работы, защите жизни, физической и психической неприкосновенности, здоровья рабочих и других лиц, вовлеченных в рабочий процесс.
| Атрибуции/ рабочие задачи | Профессиональные компетенции и взаимосвязь с рабочими задачами | Критерии для проведения действий, связанных с профессиональными компетенциями |
| 1. Участие в планировании web-приложения:
1.a Анализ технических спецификаций, определенных менеджером и архитектором программного обеспечения, на основе целей и функциональных требований, определенных клиентом; 2. Моделирование пользовательского опыта (User Experience) 2.a Разработка функциональных возможностей пользовательского интерфейса, включая взаимодействия, макеты и стили страниц; 3. Разработка веб-приложений: 3.a Участие в разработке модулей кода на языках программирования, с использованием интегрированных сред разработки; 4. Интеграция компонентов web-приложения: 4.a Создание соединений между интерфейсным компонентом и внутренними компонентами в соответствии с требованиями интеграции; 5. Тестирование web-приложения: 5.a Участие в определении тестовых сценариев; 6. Реализация web-приложения в функциональной (производственной) среде: 6.a Участие в промежуточных и окончательных процессах обеспечения качества; 7. Документирование web-приложения: 7.a Комментирование разработанного кода; 8. Участие в устранении несоответствий, связанных с web-приложением: 8.a Выявление причины отказов компонентов системы; |
1. Анализ функциональных и нефункциональных требований (1.a, 1.b, 1.c, 4.d) |
1.1. Предоставляет отзыв о полноте и адекватности исходных функциональных спецификаций, в том числе о несоответствиях между требованиями клиентов, техническими спецификациями и возможностями используемых платформ, если необходимо; 1.2. Тщательно документирует технологические варианты реализации функциональных и нефункциональных требований и согласованное решение; 1.3. Тщательно документирует требования интеграции со сторонними системами, и спецификации предоставленных/ используемых программируемых интерфейсов, включая передаваемые данные и процедуры обмена данными. |
| 2.Техническое проектирование разработки приложения (1.d, 1.e, 1.f, 1.g, 4.e) |
2.1. Соблюдает утвержденные процедуры выбора технологий и технических решений для разработки, внедрения и интеграции приложений; 2.2. Правильно и полной мере документирует функциональные процессы приложения, выполненной на основе технического задания; 2.3. Определяет и документирует распределение технических требований по компонентам проекта. |
|
| 3. Разработка графических пользовательских интерфейсов (User Experience) (2.a, 2.b, 2.c, 2.d, 2.h, 2.i) |
3.1. Разрабатывает функции пользовательского интерфейса, включая взаимодействия, макеты страниц и стили, используя согласованные и утвержденные инструменты и Фреймворки; 3.2. Понимает как применяются требования к спецификациям приложения и утвержденному графическому дизайну и реализует их на практике; 3.3. Тщательно документирует подтверждение графического дизайна и функционирования на обозначенных терминалов и разрешениях; 3.4. Обеспечивает в процессе разработки соблюдение требований к производительности, эргономике и правильному функционированию интерфейсов приложений; 3.5. Адаптирует графический интерфейс согласно утвержденному заказчиком графическому проекту; 3.6. Обеспечивает настройку/ изменение интерфейсов приложения для обеспечения функциональности на всех целевых устройствах, согласно необходимостям; 3.7. Реализует интерфейсы приложения с соблюдением требований обеспечения доступности приложения для различных категорий пользователей, включая пользователей с ограниченными возможностями. |
|
| 4. Разработка функционального, оптимизированного и многоразового кода (3.a, 3.b, 3.c, 3.d, 3.e, 3.f) |
4.1. Разрабатывает назначенные программные компоненты с использованием утвержденных инструментов и Фреймворков; 4.2. Описывает разработанный код с достаточной информацией для облегчения тестирования, интеграции и повторного использования разработанных программных модулей; 4.3. Применять передовые методы оптимизации приложений для повышения скорости отклика и масштабируемости; 4.4. Повторно использует функциональные модули и библиотеки, когда они доступны; 4.5. Тщательно документирует соответствие разработанного кода действующим требованиям. |
|
| 5. Проверка разработок на основе отзывов, полученных от заказчика (2.e, 2.f, 2.g) |
5.1. Тщательно документирует валидацию дизайна приложения с внутренним или внешним заказчиком, в соответствии с утвержденными процедурами; 5.2. Предоставляет пользователям всю информацию, необходимую для выполнения теста использования; 5.3. Тщательно документирует исправление замечаний на основании пользовательского приемочного тестирования (User Acceptance Testing - UAT). |
|
| 6. Внедрение интеграционных механизмов (4.a, 4.c, 4.e, 4.f) |
6.1. Понимает и соблюдает требования по интеграции при реализации взаимодействия компонента front-end с компонентами back-end; 6.2. Применяет функции, доступные в интерфейсах / web-сервисах для подключения к back-end компонентам; 6.3. Предоставляет информацию, необходимую для проектирования и оценки структуры базы данных для доступа к данным с сервера в оптимальной форме. |
|
| 7. Обеспечение качества в процессе разработки (5.a, 5.b, 5.c, 5.d, 5.f, 5.g, 5.h, 6.a) |
7.1. Определяет полные и соответствующие тестовые примеры для применимых спецификаций и требований; 7.2. Оценивает, корректно и в полной мере документирует совместимость приложения с указанными терминалами и разрешениями; 7.3. Документирует результаты функционального тестирования внутренних и внешних ссылок сайта; 7.4. Документирует результаты теста доступности we-приложения для различных пользователей; 7.5. Документирует устранение несоответствий результатов спецификациям и наблюдениям, полученным в результате эксплуатационных тестов; 7.6. Применять инструменты по обеспечению качества и утвержденные методы анализа кода, чтобы обеспечить требования к реализованным характеристикам; 7.7. Применяет соответствующие процедуры и политики в отношении обеспечения качества в процессах разработки. |
|
| 8. Документация web-приложения (7.a, 7.b, 7.c, 7.d, 7.e, 7.f) |
8.1. Обеспечивает корректное и полноценное документирование разработанных библиотек, согласно применимых требованиям; 8.2. Документирует изменения, сделанные в результате запросов на изменение и управления версиями; 8.3. Документирует корректно и в полной мере функциональную архитектуру приложения, согласно требованиям и с применением подлежащих техник; 8.4. Обеспечивает полноценное и корректное документирование интерфейсов разрабатываемых (компонентов) модулей; 8.5. Оперативно реагирует на запросы сотрудников, назначенных для составления операционной и эксплуатационной документации, и предоставляет полную и актуальную информацию. |
|
| 9. Обеспечение обслуживания приложения (6.f, 6.g, 8.a, 8.b, 8.c, 8.d) |
9.1. Определяет и сообщает параметры конфигурации, необходимые для работы проекта у конечного пользователя и для установки на производственных серверах; 9.2. Определяет и сообщает параметры конфигурации, необходимые для обновления приложения; 9.3. Применяет профессиональные знания и опыт других членов команды и правильно определяет источник отказов компонентов системы; 9.4. Тщательно документирует устранение несоответствий, ошибок, уязвимостей и проблем в соответствии с утвержденными процедурами; 9.5. Корректировки, сделанные на основе внутренних и внешних отзывов, своевременны, актуальны и эффективны; 9.6. Тщательно документирует устранение уязвимостей, выявленных в результате тестов безопасности, и передает информацию всем заинтересованным сторонам для валидации исправлений. |
|
| 10. Обеспечение безопасности данных (6.b, 6.c, 6.d, 6.e, 8.d) |
10.1. Внедряет механизмы контроля доступа к функциям и данным в соответствии с утвержденными техническими требованиями и правилами безопасной разработки; 10.2. Внедряет механизмы защиты хранимых данных в соответствии с утвержденными техническими требованиями и правилами безопасной разработки; 10.3. Знает специфические требования к защите персональных данных и правильно их применять на рабочем месте; 10.4. Применяет механизмы для ограничения хранения персональных данных в соответствии с утвержденными техническими требованиями, принципами защиты персональных данных и заключению ответственного за защиту данных, если применимо; 10.5. Участвует в устранении уязвимостей, выявленных в результате тестов безопасности, и обеспечивает их документацию; 10.6. Реализует механизмы идентификации и авторизации доступа в соответствии с утвержденными техническими требованиями и правилами безопасной разработки. |
|
| 11. Обеспечение поддержки пользователей (5.e, 6.h) |
11.1. Участвует в процессе обучение пользователей, использованию приложения, специфическим функциональным возможности, созданию отчетов и т.д. 11.2. Корректно и полноценно информирует пользователей об ограничениях и мерах предосторожности использования, необходимых для обеспечения надлежащего функционирования разработанного приложения; 11.3. Эффективно и оперативно участвует в процессе оказания поддержки пользователям и разрешении инцидентов или запросов на обслуживание; 11.4. Корректно и полноценно предоставляет пользователям информацию необходимую для пользовательского приемочного тестирования (UAT). |
|
| 12. Взаимодействие с командой разработчиков (1.a, 1.g, 4.b, 6.a, 7.f) |
12.1. Оперативно сообщает команде разработчиков о возникших проблемах; 12.2. Общается с рабочей группой для поиска оптимальных решений, оперативно представляет информацию в зоне своей ответственности; 12.3. Участвует в рабочих встречах с клиентом и правильно, полно и качественно представляет информацию; 12.4. Соблюдает согласованное планирование, следует установленным проектным вехам; 12.5. Правильно и последовательно отчитывается во время регулярных встреч по проекту, точно и лаконично сообщая, чего он достиг со времени последней встречи, что он запланировал на следующий период и с какими проблемами он столкнулся; 12.6. Эффективно использует утвержденные средства и процедуры связи; 12.7. Использует инструменты управления разработкой, версиями и внедрением в соответствии с утвержденными процедурами. |
|
| 13. Применение принципов зеленой экономики в сфере ИКТ (Green IT) (3.g) |
13.1. Определяет оптимальные решения по снижению воздействия использования разработанного приложения на окружающую среду; 13.2. Документирует оценочное влияние разработанного кода на соответствующие экологические цели: потребление энергии, выбросы углерода, в зависимости от ситуации; 13.3. Консультирует заказчика о преимуществах и благоприятных возможностях использования Green IT. |
Приложение № 2
к Приказу Министерства
экономики и инфраструктуры
№ 259 от 29 декабря 2020 г.
|
ПРОФЕССИОНАЛЬНЫЙ СТАНДАРТ Программист (профессиональное техническое образование) Код КЗРМ: 351203 Уровень НРКРМ: 4 Координаторы: 1. Veronica Midari – эксперт по разработке ПС, Центр инноваций и политик, доктор экономических наук; 2. Petru Todos – координатор проекта, Технический университет Молдовы, доктор технических наук. Рабочая группа по разработке профиля профессии: 1. Ecaterina Vizdoaga – "Amdaris" SRL специалист по качеству и стандартам; 2. Gabriel Gliboceanu – "Halley Soft" SRL, программист; 3. Ion Terzi – "Halley Soft" SRL, программист; 4. Vasile Țîcău – "Halley Soft" SRL, руководитель отдела разработки программного обеспечения; 5. Anatolie Prisăcaru – программист-фрилансер Румыния; 6. Natalia Căruntu – "Regular Expressions" SRL, программист; 7. Ion Vasilov – "Pentalog CHI" SRL, менеджер проекта разработки программного обеспечения; 8. Sorin Victor Tacpa – "Life Solutions" SRL Румыния, программист; 9. Valentin Cristian Zaharia – "Life Solutions" SRL Румыния, программист. Рабочая группа по разработке профессионального стандарта: 1. Andrei Hohan – "Fiatest" SRL Румыния, директор, эксперт по разработке ПС, консультант в области ИКТ и информационной безопасности; 2. George Antoci – "BSD Management" SRL, менеджер проекта, консультант в области ИКТ и информационной безопасности; 3. Maria Cucu – "Fiatest" SRL Румыния, эксперт по разработке ПС, эксперт управление качеством в проектах ИКТ; 4. Alina Popa – "Fiatest" SRL Румыния, эксперт по разработке ПС, эксперт по управлению проектами ИКТ; 5. Anatol Oprea – "T2" SRL Румыния, исполнительный директор, менеджер по разработке программного обеспечения; 6. Eugeniu Cebanu – "Amdaris" SRL, старший разработчик программного обеспечения; 7. Vladimir Căruntu - "Regular Expressions" SRL, front-end разработчик. Оценка и валидация: 1. Valentin Brăgaru – "Readcast" SRL, исполнительный директор, разработчик программного обеспечения, председатель комиссии; 2. Alexandru Bîrca – "S&T Mold" SRL, старший разработчик программного обеспечения, член комиссии; 3. Dumitru Gînu – ÎCS "Computaris International" SRL, старший разработчик программного обеспечения, член комиссии. |
Описание деятельности
Определение рода занятий:
Программисты (профессиональное техническое образование) работают в команде и оказывают помощь разработчикам программного обеспечения/ программистам более высокой квалификации в внедрение приложений ИКТ (программного обеспечения) на основе предоставленных моделей с использованием языков, инструментов, платформ и навыков, характерных для области приложений.
На этапе проектирования программы (системы) выполняется первоначальное планирование способа разработки программного обеспечения. Создаются модели и диаграммы, подробно описывающих, как будет написан код. Обычно они разрабатываются архитектором программного обеспечения и менеджером проекта. Программист (профессиональное техническое образование) вовлечен в написании и отладку кода, проектировании интерфейса приложения или системы, оказанием поддержки команде программистов.
Программист вместе со всей командой по разработки пишет и тестирует код, позволяющий работать приложениям и программам. Кроме того, программисты тестируют созданные приложения и программы, чтобы убедиться, что они дают ожидаемые результаты. Если они не работают должным образом, программисты проверяют код на наличие ошибок и устраняют их или участвуют в их исправлении.
Одна из современных подходов, которому должны следовать программисты - это "Зеленая ИТ-экономика". Этот принцип направлен на минимизацию негативного воздействия ИТ-операций на окружающую среду за счет разработки, производства, эксплуатации и утилизации компьютерных технологий и связанных с ними продуктов экологически безопасным образом.
Требуемые условия труда (физическая, социально-организационная среда): Программист работает в команде со специалистами по ИКТ в офисах, оснащенных компьютерами, подключенными к сети. Способ работы удаленно становится все более популярным.
Профессиональные риски:
- Риски здоровья и психического здоровья, связанные с малоподвижным образом жизни.
- Риски, связанные с перегрузкой зрительной системы.
Об упомянутых рисках следует информировать программистов, а также других людей, работающих в сфере ИКТ. Работодатели должны взять на себя обработку профессиональных рисков.
Перспективы рынка труда для программиста определяется востребованностью и важностью цифровых технологий. Цифровые технологии являются решающим фактором экономического роста, национальной безопасности и международной конкурентоспособности. Цифровая экономика оказывает огромное влияние на экономику и социальное благополучие граждан. Таким образом, эта область в перспективе будет востребованной, специалисты востребованы, способными расти в своей карьере и формировать горизонтально навыки в смежных областях.
Инструменты, используемые в рабочем процессе:
Языки программирования и разработки скриптов: C, C #, C ++, Java, JavaScript, PHP, Python, Ruby, ASP.
Фреймворки: Angular, React, Vue, jQuery, Node.JS, Spring, Thorntail, Payara.
База данных: реляционные (MySQL, PostgreSQL, Microsoft SQL Server, MariaDB, Oracle) нереляционные (MongoDB, Cassandra, Redis, CouchDB).
Инструменты управления базами данных и их версиями: FlyAway, Liquibase.
Интегрированные среды разработки: JetBarains Toolbox App (full set), Eclipse, Visual Studio Code, NetBeans.
Инструменты для Big Data: ELK Stack (Beats, Elasticsearch, Logstash, Kibana), Hadoop.
Основные инструменты ИКТ, используемые для тестирования и устранения неполадок программ и программного кода: Selenium, XRAY, Jmeter, Sonar, Cucumber, Postman, SoapUI, Chrome / другие браузеры и веб-инспектор.
Инструменты отладки, интегрированные в среды разработки: Eclipse, IntelliJ, Visual Studio, Visual Studio Code, Android Studio Debuggers, Xcode.
Инструменты контроля версий, управление конфигурацией программного обеспечения: Git, SVN, Microsoft Team Foundation Server (TFS).
Инструменты для настройки инфраструктуры и развертывания программных модулей: Docker container, Azure Resource Management, CloudFormation, Kubernetes, Terraform, Octopus, Ansible, OpenShift, Rancher.
Инструменты Continuous Integration / Continuous Delivery: Jenkins, GitLab.
Будущие тенденции в этой области:
- Концепция "зеленой экономики" приобретает все большее значение во всех сферах, включая ИКТ. Её принципы вызывают все большую озабоченность, поскольку они оказывают влияние на бизнес, общество и оказывают значительное влияние на окружающую среду. Зеленая экономика в ИКТ направлена на сокращение потребления энергии, связанного с использованием оборудования, программного обеспечения, например: повышение энерго-эффективности оборудования и центров обработки данных, консолидация серверов с использованием программного обеспечения виртуализации и сокращение загрязнения от отходов, связанных с использованным оборудованием.
- Continuous Integration (непрерывная интеграция) / Continuous Delivery (непрерывная доставка) / Continuous Deployment (непрерывное развертывание) - CI/CD/CD. Практики CI/CD/CD нацелены на эффективное объединение действий по разработки, операций и услуг ИТ. CI/CD/CD помогает программистам и тестировщикам (лица ответственные за тестирование) и DevOps (инженеры по Разработке и Оперированию) доставлять и вводить в эксплуатацию программное обеспечение быстро и безопасно, в структурированном виде. В отличие от традиционного жизненного цикла разработки программного обеспечения, процесс CI/CD/CD основан на частых обновлениях - еженедельных или ежедневных. Обновления в производственной среде происходят без видимого влияния на работу. Работа в команде становится ключевым элементом в этой области.
Конкретные данные:
Основными блоками деятельности, за которые отвечает программист, в соответствии с требованиями рынка труда, являются следующие:
- Участвует в планировании/ разработке программного продукта: анализ и определение технических требований к программному продукту в соответствии с целями и требованиями клиента, выбор инструментов и языка программирования для реализации приложения.
- Содействует процессу разработки программного продукта: определение функциональных процессов программного продукта на основе технических спецификаций, использование языков и технологий программирования для разработки приложения, использование библиотек кода, написание кода в соответствии с согласованными инструкциями, спецификациями и стандартами, реализация требований безопасности и защиты данных, реализация механизмов интеграции приложения с системами поддержки.
Этот этап работы в деятельности специалиста является ключевым. Очень важно умение специалиста разрабатывать код программного продукта.
Участвует в тестировании программного продукта: сотрудничает с системными аналитиками и эксплуатационными группами для выявления и устранения неполадок существующих приложений, при отладке выявляет ошибки и устраняет их, обеспечивает соответствие результатов функциональным и нефункциональным спецификациям, участвует в анализе кода для обеспечения того что внедренные функции рабочие, надежны, могут обслуживаться и поддерживаться.
Программисты сталкиваются с широким спектром проблем, от программных ошибок (bugs) до обновлений системы. Чтобы справиться с этими проблемами, программист должен собрать все соответствующие данные и проанализировать их, чтобы определить соответствующий план действий.
- Участвует или обеспечивает разработку/ обновление документации на программный продукт: разрабатывает специальную документацию с необходимыми инструкциями и пояснениями. Документация разрабатывается программистом при создании или модификации программного продукта.
Специалист готовит документацию на разработанные продукты с описанием их функций и состава. Она должна быть понятна широкой аудиторией, без технических знаний и соответствовать определенным требованиям и стандартам.
- Осуществляет сопровождение программного продукта: выполняет обновления и изменения системы. Периодически необходимо обновлять как физические устройства, так и программные продукты существующих систем, включая промежуточное программное обеспечение и прикладные программы, работающие в системе. Программист (профессиональное техническое образование) выполняет эти обновления (обычно на стороне программного обеспечения), следя за тем, чтобы они были правильно реализованы и правильно работают.
- Программист выполняет настройку программного обеспечения: программы часто требуют определенных изменений или настроек, необходимых для работы на определенных операционных системах или платформах. Программист должен настроить программное обеспечение в соответствии с этими требованиями без ущерба для производительности других программ или системы в целом.
Общие компетенции, необходимые в работе Программиста:
- Компьютерное программирование:
• методы и принципы разработки программного обеспечения,
• парадигмы программирования (объектно-ориентированное программирование, функциональное / процедурное программирование),
• языки программирования.
- Использование инструментов моделирования (UML) или других, используемых бизнесом.
- Использование интегрированных сред разработки.
- Пользование инструментами идентификации ошибок (debugging).
- Знание и применение моделей проектирования.
- Базовые знания структур данных, баз данных и потоков данных.
- Применение инструментов для управления версиями, управления конфигурацией программного обеспечения и управления проектами.
- Использование инструментов для настройки инфраструктуры и развертывания (deployment) программных модулей.
- Сервис-ориентированное моделирование (Infrastructure as a Service - IaaS, Service as a Service - SaaS, Platform as a Service - PaaS).
- Применение принципов зеленой экономики в сфере ИКТ (Green IT).
Фонд профессионального стандарта
Программист (профессиональное техническое образование)
Общие (пересекающиеся) компетенции (ОК)
ОК1. Командная работа: понимание ролей и действий, характерных для командной работы; применение внутренних правил командной работы.
ОК2. Общение на работе: устное и письменное общение на родном/ иностранном языке; эффективная коммуникация с рабочей группой и с клиентами, чтобы выполнять деятельность на уровне производительности, требуемом на рабочем месте.
ОК3. Решение проблем и принятие решений: использование необходимых процессов для решения ситуаций, которые отклоняются от нормы, или ситуаций, в которых были выявлены возможности для улучшения, в которых решение не очевидно.
ОК4. Профессиональное развитие: доступ, обработка и усвоение новых знаний и навыков, открытость к обучению на протяжении всей жизни, навыки автономного обучения, основанные на самосовершенствовании и самодисциплине.
ОК5. Следование профессиональным ценностям и этики, и их развитие: ответственное и этичное поведение для обеспечения репутации профессии; объединение и использование знаний, навыков и отношения для достижения результатов, посредством соблюдения минимального набора принципов, ценностей и правил поведения, характерных для профессиональной морали.
ОК6. Использование информационных и коммуникационных технологий: эффективное использование оборудования (например, настольных компьютеров, ноутбуков, планшетов, компонентов ПК), программного обеспечения (например, операционных систем, приложений, программного обеспечения для коммуникации, совместной работы и планирования) и устройств связи (например, телефония, беспроводные и сетевые устройства и беспроводные системы).
ОК7. Применение принципов качества: соблюдение рабочих инструкций, процедур, стандартов качества; выполнение корректирующих и предупреждающих действий для обеспечения выполнения требований к качеству.
ОК8. Применение принципов кибер-безопасности при разработке программного обеспечения: знание и применение механизмов защиты конфиденциальности, целостности и доступности обрабатываемых, хранимых и передаваемых данных.
ОК9. Обеспечение соблюдения требований безопасности и здоровья на рабочем месте: применение требований к организации работы, защите жизни, физической и психической неприкосновенности, здоровья рабочих и других лиц, вовлеченных в рабочий процесс.
| Атрибуции/ рабочие задачи | Профессиональные компетенции и взаимосвязь с рабочими задачами | Критерии для проведения действий, связанных с профессиональными компетенциями |
| 1. Участвующие в планировании приложения программного/ продукта: 1.a Анализ технических требований к приложению/ программному продукту, определенных менеджером проекта и архитектором программного обеспечения, исходя из целей и требований клиента; 2. Разработка программы / программного продукта: 2.a Участие в трансформации проекта со спецификациями программного обеспечения в высокопроизводительный код на выбранном языке и с применением выбранных инструментов; 3. Тестирование приложения / программного продукта: 3.a Участие в определении тестовых случаев (Test Case); 4. Документация по применению: 4.a Комментирование разработанного кода; 5. Обеспечение поддержки пользователей приложения: 5.a Содействие процессу настройки платформы физических устройств (оборудования) и системных программных продуктов (программного обеспечения) в соответствии с требованиями приложения (например, подготовка файлов конфигурации и т.д.); 6. Участие в управлении несоответствиями, связанных с приложением: 6.a Участие в промежуточных и конечных процессах обеспечения качества, таких как: функциональность, дизайн, надежность, выполнение действий по тестированию/ анализу кода, пересмотр кода, анализ ошибок; |
1. Анализ функциональных и нефункциональных требований (1.a, 1.b, 1.e) |
1.1. Тщательно изучает технические требования к приложению/ программному продукту, определенные менеджером проекта и архитектором программного обеспечения, исходя из целей и требований клиента; 1.2. Умеет извлекать требования к разработке из анализа технической документации, моделей и диаграмм процессов. |
| 2. Техническое проектирование разработки приложения (1.b, 1.c, 1.d) |
2.1. Обеспечивает отслеживаемость между техническими спецификациями для разработки и соответствующими функциональными и нефункциональными требованиями; 2.2. Определяет требования к разработке программного обеспечения для включения всей информации, определенной международным стандартом ISO/IEC/IEEE/29148: ♦ Проверки и валидации правильности ввода; ♦ точная последовательность операций; ♦ реакция на нештатные ситуации; ♦ влияние параметров; ♦ взаимосвязь между выходами и входами, включая: последовательности ввода / ввода и формулы для преобразования входов в выходы; ♦ Связь выходов с входами, включая: • последовательности ввода / вывода; • формулы для преобразования ввода в вывод; |
|
| 3. Разработка приложения (2.a, 2.b, 2.c, 2.d) |
3.1. Разрабатывает прототипы, позволяющие валидацию функционального выбора; 3.2. Разрабатывает или адаптирует компоненты программного обеспечения в соответствии с определенной стратегией внедрения, ограничениями и процедурой; 3.3. Разрабатывает программные компоненты с использованием сред разработки, согласно с стратегией разработки; 3.4. Повторно использует функциональные модули и библиотеки, когда они доступны. |
|
| 4. Валидация разработанного кода (3.a, 3.b, 3.c, 3.d, 3.f, 3.g) |
4.1. Обеспечивает адекватность и полноту тестовых случаев для всех исходных требований; 4.2. Осуществляет и участвует в процессе проверки кода командой (Peer Code Review); 4.3. Выявляет ошибки, несоответствия и недостатки интеграции кода, разработанном членами команды; 4.4. Компилирует функциональные модули для выполнения тестов, настроенные для обеспечения отслеживаемости данных, относящихся к тестовым случаям; 4.5. Тщательно документирует результаты согласованных тестов и корректирующих мер, а также результаты тестов по валидации коррекции. |
|
| 5. Внедрение приложения в операционную среду (2.f, 2.g, 2.h, 5.a, 5.b) |
5.1. Создает функциональные и эффективных механизмы интеграции, не вызывающих нарушений в соответствующих системах; 5.2. Предоставляет группе, назначенной для процесса настройки аппаратной и программной платформы, полную и правильную информацию для конфигурации операционной среды; 5.3. Оперативно реагирует на запросы информации о потенциальном влиянии обновлений оборудования/ программного обеспечения на функциональность разработанных модулей и при необходимости предлагает меры по исправлению положения; 5.4. Корректно и в полной мере информирует пользователей об ограничениях и мерах предосторожности использования, необходимых для обеспечения надлежащего функционирования разработанного приложения. |
|
| 6. Участие в проекте совместной разработки (2.e, 2.i, 2.j, 4.c) |
6.1. Оперативно сообщает коллективу о возникших проблемах; 6.2. Соблюдает согласованное планирование; 6.3. В процессе определения оптимальных решений для выполнения задач эффективен в общении и применяет соответствующие инструменты в этом отношении; 6.4. Во время встреч по проекту отчитывается эффективно, конструктивно и точно о том, что сделано с последней встречи, что запланировано на следующий период и с какими проблемами столкнулся; 6.5. Использует утвержденные средства и процедуры связи; 6.6. Использует инструменты управления разработкой, версиями и внедрением в соответствии с утвержденными процедурами; 6.7. Документирует внесенные изменения корректно, точно и в соответствии с применимыми внутренними политиками и процедурами. |
|
| 7. Предоставление технической документации (4.a, 4.b, 4.c, 4.d, 4.e, 4.f) |
7.1. Описывает разработанный код с достаточной информацией для облегчения тестирования, интеграции и повторного использования разработанных программных модулей; 7.2. Тщательно документирует отслеживаемость между требованиями и разработанными модулями; 7.3. Документирует интерфейсы разработанных модулей, таким образом, чтобы их можно было прозрачно использовать третьими сторонами и устранять возможные ошибки или исключения; 7.4. Оперативно отвечать на запросы сотрудников, назначенных для составления документации по эксплуатации и оперированию, и предоставляет полную и актуальную информацию. |
|
| 8. Обеспечение качества и соответствия приложения (3.c, 3.e, 3.h, 6.a, 6.b, 6.c, 6.d, 6.e) |
8.1. Тщательно документирует соответствие разработанного кода действующим требованиям; 8.2. Участвует в промежуточных и конечных процессах обеспечения качества в соответствии с применимыми процедурами и политиками; 8.3. Выявляет все отклонения от внутренних стандартов качества и предлагает соответствующие меры по их исправлению; 8.4. Применяет инструменты, используемые для управления качеством, и утвержденные методы для анализа выявленных и заявленных функциональных несоответствий, а также выявления коренных причин и оптимальных решений; 8.5. На основании внутренних и внешних отзывов вносит необходимые корректировки и улучшения, применяя соответствующие процедуры; 8.6. Тщательно документирует анализ и решения выявленных проблем, а также результаты проверочных тестов исправлений. |
|
| 9. Обеспечение безопасности и защиты данных (2.h) |
9.1. Применяет передовые практики безопасного программирования и защиты личных данных, как это определено в применимых политиках и процедурах; 9.2. Внедряет требования к безопасности данных; 9.3. Внедряет и выполняет требования по защите персональных данных; 9.4. Создает тестовые случаи, соответствующие к определенным требованиям безопасности/ защиты; 9.5. Тщательно документирует выполнение требований и результаты тестов. |
|
| 10. Общение с пользователями (5.c, 5.d, 5.e) |
10.1. Правильно и полноценно информирует пользователей об ограничениях и мерах предосторожности в использовании, применимых к разработанному приложения; 10.2. Оперативно решает заявленные проблемы в соответствии с применимыми внутренними процедурами; 10.3. Предоставляет информацию и данные, необходимые для процесса обучения пользователей использованию приложения; 10.4. Эффективно общаться с заинтересованными сторонами, получает необходимые отзывы и информацию, относящуюся к выявленным необходимостям в улучшении. |
|
| 11. Применение принципов зеленой экономики в сфере ИКТ (Green IT) (2.k) |
11.1. Определяет оптимальные решения по снижению воздействия использования разработанного приложения на окружающую среду; 11.2. Документирует оценочное влияние разработанного кода на соответствующие экологические цели: потребление энергии, выбросы углерода, в зависимости от ситуации; 11.3. Консультирует заказчика о преимуществах и благоприятных возможностях использования Green IT. |