Когда заходит речь о сотрудниках, задействованных в развитии программного обеспечения, то первые, кто приходит в голову – программисты. Естественно, это не является ошибкой, но в то же время надо помнить о некоторых других очень существенных ролях в проекте, без которых даже безупречный с точки зрения технологии проект может потерпеть фиаско. В этой статье мы расскажем, кто же входит в команду разработчиков.
ОРИГИНАЛЬНЫЙ ТЕКСТ НАХОДИТСЯ ЗДЕСЬ
ОБ АВТОРЕ
Rafał Węglarz - польский специалист в области
информационных технологий и разработки программного обеспечения.
Он работает в компании Droptica (Вроцлав, Польша), занимающейся веб-разработкой и digital-решениями, где занимает позицию,
связанную с маркетингом и управлением проектами.
Rafał обладает опытом в
области digital-маркетинга,
разработки сайтов (в частности, на платформе Drupal), а также управления командами и реализации IT-проектов.
В его профессиональных интересах - современные технологии, оптимизация
бизнес-процессов и развитие digital-агентств.
Команда разработчиков – это
группа специалистов, совместно
работающих над разработкой программного обеспечения. Результатом этой работы
может быть создание интернет-сайта, мобильного приложения либо подготовка и
ввод в действие конкретной услуги по автоматизации. Следовательно, в
зависимости от особенностей проекта нагрузки на те или иные роли может
отличаться. Если, например, требуется миграция данных или интеграция с внешними
системами, то, без сомнения, в команду должны входить программисты с высоким
техническим уровнем. Там, где требуется поменять графический дизайн, ключевую
роль будет играть дизайнер. Когда надо увеличить трафик на сайте, не обойтись
без DevOps-инженера.
В этой статье рассмотрим роли иные, чем чисто
программирование, необходимые для того, чтобы проект был завершён эффективно и
в соответствии с поставленными задачами. Мы рассмотрим такие роли, как
бизнес-аналитик, менеджер проекта, DevOps-инженер и дизайнер, а также
компетенции группы тестировщиков.
Человек на этой должности
часто оказывается первым, к которому попадает клиент со своими пожеланиями.
Можно сказать, это тот, кто до начала работ переводит эти пожелания на язык
цифр и очертит путь, по которому можно будет достичь поставленных клиентом
целей. Роль аналитика трудно переоценить, особенно когда у клиента недостаточно
времени или соответствующих знаний, чтобы сформировать конкретные требования.
Этот специалист осуществляет процесс определения
бизнес-целей и предлагает пути их реализации. Тесно общается с клиентом, чтобы
досконально понять его проблемы и потребности, анализирует и документирует
собранную информацию, ищет наилучшее решение. Таким образом, помогает
установить как базовые KPI (Key Performance Indicators - ключевые показатели эффективности), так и
соответствующие методы их внедрения, которые будут наиболее удобны для обеих
сторон.
Помимо навыков аналитического мышления, от него требуется
иметь гибкость и богатое воображение. Обладая такими способностями, он будет в
состоянии согласовать требования клиента со спецификой проектной работы и
наилучшим образом использовать компетенцию команды.
Инженер DevOps
Есть
мнение, что разработчики программного обеспечения, не имеющие в штате такого
специалиста, уже проиграли конкурентам. Почему так? Инженер DevOps гарантирует,
что программный продукт будет работать круглосуточно, расходы на обслуживание
будут в разумных пределах, будет легко обновляться и успешно переносить пиковые
нагрузки.
Роль
такого специалиста характеризуется как комбинация технических и нетехнических
знаний. Сам DevOps расшифровывается как Development and Operations (развитие и операции), т. е. набор
практик, объединяющих в один процесс такие элементы, как разработка, внедрение,
обслуживание и ремонт продукта, обеспечивая при этом высокое качество.
- Более быстрое обнаружение и исправление ошибок,
улучшение качества продукта и сокращение времени, необходимого на тестирование
и выпуск новых релизов, согласно практикуемой Continuous Integration (непрерывной интеграции)
- Автоматическое внедрение всех изменений кода в
тестовую и/или производственную среду в рамках практики Continuous Delivery (непрерывной поставки)
- Реализация практики архитектуры микросервисов, то есть совместное создание единого
приложения как набора небольших сервисов, построенных вокруг определенных
бизнес-возможностей.
- Управление сервером с использованием техники кодирования, которая обрабатывает инфраструктуру аналогично коду приложения
- Мониторинг сервисов в реальном времени, целью которого является сбор данных и проверка того, как производительность инфраструктуры влияет на работу конечного пользователя.
- Большее вовлечение в работу других членов команды - маркетинг, продажи и т.д.
- Linux и/или Windows
- Создание скриптов
- Хотя бы один из языков программирования, например, РНР.
- Инструменты
автоматизации, например, Jenkins.
- Работа в сфере
облачных вычислений, например, Веб-сервисы Amazon.
Инженер DevOps и Agile.
К вышеупомянутому нужно также добавить и Agile, поскольку искусство программирования
должно постоянно развиваться и оптимизироваться в соответствии с меняющимися
потребностями. Инженер DevOps, можно сказать, развивает Agile. Наибольшая эффективность достигается,
когда время и энергия не тратятся на ручную работу, а технические спринты сосредотачиваются
на разработке улучшений.
Как мы видим, DevOps влияет на самые
разные аспекты деятельности организации – ускорение разработки софта,
сокращение времени внедрения, снижение затрат и своевременное выявление ошибок.
В данной статье мы
рассмотрели две ключевые роли в команде разработки программного обеспечения:
бизнес-аналитика и DevOps-инженера. Однако эффективная команда
включает и другие важные позиции. В следующих частях нашего цикла мы познакомим
вас с ролями менеджера проекта, дизайнера и тестировщиков. Следите за
обновлениями, чтобы узнать, как каждый специалист вносит свой незаменимый вклад
в успех IT-проектов.
ЧТОБЫ БЫТЬ В
КУРСЕ ПОСЛЕДНИХ НОВОСТЕЙ, ПОДПИСЫВАЙТЕСЬ НА Telegram-канал
«КАРЬЕРА ИТ-МЕНЕДЖЕРА».



