Управление IT-проектами [ Модуль 1 ] Гибкие методологии разработки ПО Должностные инструкции и роли в индустрии Занятие 1 Автор: Худяков Дмитрий Сергеевич к.т.н., доцент кафедры криптологии и кибербезопасности СОДЕРЖАНИЕ МОДУЛЯ 1 Должностные инструкции и роли в индустрии Стандарт и методология управления. Agile Методология Scrum. Принципы и ценности. Команда и артефакты Методология Scrum. Событие Product Backlog Refinement и его подготовка Методология Scrum. Проведение событий Product Backlog Refinement и Ретроспектива Методология Scrum. Компетенции и «звёздная карта». Метрики Kanban-метод. Оптимизация командной работы Моделирование бизнес-процессов. BPMN-диаграммы Разработка технического задания Основы веб-дизайна и юзабилити 1.1 Должностные инструкции Должностная инструкция — документ, регламентирующий производственные полномочия и обязанности работника. Это руководство к действию для самого работника: она дает знание того, каких действий от него ожидают и по каким критериям будут оценивать результаты труда, представляет ориентиры для повышения уровня квалификации работника в рамках данной должности Должностные инструкции разрабатывает руководитель подразделения для своих непосредственных подчиненных в соответствии с положением о подразделении. Каждая должностная инструкция содержит однозначное определение того, чем данная работа отличается от всех иных работ. Не существует стандарта, регламентирующего содержание и процедуру разработки должностной инструкции, в связи с чем каждая организация имеет возможность самостоятельно формировать описание той или иной должности. Однако корректно формировать инструкцию на базе соответствующего профессионального стандарта Должностная инструкция содержит информацию, которая необходима в процессе управления персоналом. Разделы должностной инструкции: общие положения; должностные обязанности; права работника; ответственность; условия работы 1.2 Роли в индустрии Область Специальность управление проджект-менеджер системное администрирование и безопасность системный администратор DevOps-инженер инфобез-специалист Область разработка, программирование Специальность техлид программист фронтенд-разработчик бэкенд-разработчик фуллстек-разработчик разработчик игр Область разработка, программирование Специальность мобильный разработчик дизайнер UX/UI системный аналитик тестировщик, QA-инженер Область маркетинг Специальность web-аналитик бизнес-аналитик дата-аналитик дата-сайентист продакт-менеджер SEO-специалист SMM-специалист интернет-маркетолог продакт-менеджер отвечает за создание продукта, определяет требования к нему, формирует цены, продвигает продукт — знает о нём всё. В его обязанности входит контролировать весь процесс от создания до выхода на рынок; фронтенд создает привлекательную «оболочку»: меню, кнопки, формы. Все с чем взаимодействует конечный пользователь; бэкенд «строит» сайт. Он создает процессы со стороны сервера, благодаря которым приложение/страница выполняет свои прямые функции; фуллстек сочетает функции бэкенда и фронтенда для контроля процессов, поиска неисправностей. Он владеет полными знаниями обеих профессий; разработчик игр создает сервисы и интерфейсы для развлечения, обучения. Здесь множество «игровых» и графических специальностей; мобильный разработчик занят созданием приложений для мобильных телефонов, планшетов (IOS, Android); дата-аналитик проводит поиски закономерностей в больших объемах данных; дата-сайентист делает примерно то же, что и дата-аналитик — ищет закономерности, составляет прогнозы, но его работа всегда имеет конкретную цель — решение бизнес-задачи; web-аналитик собирает и анализирует всю информацию о поведении пользователей на сайте. Web-аналитик отслеживает, насколько хорошо была проведена работа на сайте как SEOспециалиста, так и остальных участников процесса; SEO-специалист занимается оптимизацией и продвижением сайтов в поисковых системах; SMM-специалист занимается продвижением и ведением профиля в социальных сетях. Помимо указанных существуют, например, специальности по блокчейну, а также другие прикладные 1.2.1 Системный администратор, ИТ-администратор Системный администратор — работник, должностные обязанности которого подразумевают обеспечение штатной работы парка компьютерной техники, сети и программного обеспечения. Зачастую системному администратору также вменяется обеспечение информационной безопасности в организации Основные обязанности: подготовка и сохранение резервных копий данных, их периодическая проверка и уничтожение; установка и конфигурирование необходимых обновлений для операционной системы и используемых программ; установка и конфигурирование нового аппаратного и программного обеспечения; создание и поддержка пользовательских учётных записей; ответственность за информационную безопасность в компании; устранение неполадок в системе; планирование и проведение работ по расширению сетевой структуры; документирование всех произведенных действий Специализация: администратор веб-сервера; администратор баз данных; сетевой администратор; системный инженер (системный архитектор); администратор защиты; администратор почтовых серверов; системный администратор малой компании. Профессия предусматривает множество видов сертификации в зависимости от рабочих сред, используемых продуктов и оборудования Администратор баз данных: проектирование базы данных; оптимизация производительности базы данных; обеспечение безопасности в базе данных; резервное копирование и восстановление базы данных; обеспечение целостности баз данных; обеспечение перехода на новую версию СУБД Сетевой администратор: установка, конфигурирование и поддержание в рабочем состоянии сетевого оборудования; мониторинг сети и своевременное обнаружение и устранение «узких мест»; определение и назначение сетевых адресов компьютерам и устройствам сети; выбор и конфигурирование сетевых протоколов; настройка таблиц маршрутизации; управление доступом к разделяемым ресурсам; также, возможно, установка и поддержка сетевых сервисов, таких как файловый сервер, шлюз VPN и т. п. Администратор защиты: поддержание системы в рамках выбранной политики безопасности; обеспечение должного уровня конфиденциальности и целостности данных; подготовка и сохранение резервных копий данных, их периодическая проверка и уничтожение; создание, настройка и поддержание в актуальном состоянии пользовательских учётных записей; ответственность за информационную безопасность в компании; отслеживание информации об уязвимостях системы и своевременное принятие мер; периодическое практическое тестирование защищенности системы; документирование своей работы; устранение неполадок в системе. Пример должностной инструкции системного администратора 1.2.2 Специалист по информационной безопасности Инфобез-специалист занимается внедрением механизмов, помогающих предотвратить утечку данных еще на этапе разработки продукта, анализируя код, выискивая ошибки и исправляя их. Он же отвечает за доступность информации для ее владельцев «Этичные хакеры» Специализация: инженер по безопасности. Осуществляет общее руководство системой безопасности в компании. Разрабатывает тренинги и рекомендации по вопросам безопасности для сотрудников, оценивает инструменты безопасности, оказывает помощь в подборе персонала, занимается административной работой в сфере защиты информации; специалист по кибербезопасности. Отвечает не только за предотвращение утечек информации и безопасность данных, но и за всю архитектуру приложения в целом, чтобы злоумышленники не могли «уронить» приложение или как-то иначе повлиять на его работоспособность; инженер по облачной безопасности. Специализируется на цифровых облачных платформах, обеспечивает защиту баз данных, хранящихся в них; аудитор информационной безопасности. Проверяет и оценивает информационные системы, которые могут подвергаться атаке. Качества, компетенции: аналитический склад ума; умение видеть и решать проблему; терпеливость; стрессоустойчивость, умение работать под давлением; методичность; постоянное саморазвитие; обучаемость; умение работать в команде; способность принимать решения; внимательность к деталям 1.2.3 Разработчик, программист Специалист, занимающийся программированием, то есть созданием компьютерных программ, написанием кода. Разработчик — это сердце команды junior — описывают классы, функции, в общем, фрагменты кода внутри большой команды, знают 1-2 языка; middle — он же рядовой инженер, либо "старший", занимающийся более крупными задачами внутри проекта либо большой частью проекта, как правило, уже с опытом, со знанием разных продуктов, паттернов программирования и т.д.; senior — ведущий, руководитель проекта разработки, крупных задач; tutor — наставник молодых Кроме того, разработчики имеют различную специализацию, поэтому каждый из них использует определенные языки программирования: PHP, Java, Python, C#, C++, JavaScript, Ruby, Kotlin, Go, 1C и работает с определенными фреймворками и инструментами. В результате команды разработчиков часто состоят из нескольких человек, работающих с различными технологиями и инструментами. Например, основная команда разработчиков мобильных приложений состоит из разработчиков Android, iOS и бэкенда 1.2.4 Тестировщик (инженер обеспечения качества обслуживания, QA-инженер) Тестировщики, или специалисты по обеспечению качества, необходимы на каждом цикле разработки программ для гарантии высокого качества продукта. Они тестируют и проходят через все программное обеспечение, чтобы выявить ошибки, а затем предоставляют отчет команде разработчиков для исправления ошибок В задачи тестировщика входят: поиск ошибок и сбоев в функционировании ПО; моделирование ситуаций, возникающих в процессе использования ПО; создание и использование разнообразных входных данных; обнаружение несоответствия интерфейса программы существующим стереотипам; тестирование в строгом соответствии с планом; обнаружение ошибок в логике работы программы и в документации на программу; разработка модулей тестирования; анализ работоспособности системы; создание тест-планов, тест-кейсов По сути, проведение тестирования — это решение проблемы «чёрного ящика». Знания, полученные об объекте по методу чёрного ящика, не позволяют получить информацию о его внутреннем строении. Данный метод применяется в том числе для решения задач моделирования управляемых систем Если тестирование программного обеспечения проводится некачественно или вообще не проводится, это может повлиять на весь продукт. Чтобы обеспечить положительный пользовательский опыт, необходимо выявлять ошибки до того, как продукт попадет к пользователям. Другие обязанности специалиста по обеспечению качества включают общее тестирование программного обеспечения на различных устройствах и его проверку на соответствие заявленным требованиям. Хорошие тестировщики — это те же квалифицированные разработчики, которые пишут код для автоматизированной, а когда всё заработает — автоматической проверки. Управление IT-проектами [ Модуль 1 ] Гибкие методологии разработки ПО Должностные инструкции и роли в индустрии Занятие 1 Спасибо за внимание!