Русский
Русский
English
Статистика
Реклама

Продукты

Что такое системы API Management

19.02.2021 18:05:42 | Автор: admin

Зачем они нужны и какие функции они выполняют.

Всем привет! Меня зовут Антон, я инженер команды, отвечающей за развитие централизованныхIT-сервисов, которыми пользуются продуктовые команды вX5RetailGroup.

В этой статье я расскажу осистемах класса API Management и в частности о APIM Gravitee (https://www.gravitee.io), том, что это за класс систем, как они используются для обеспечения потребностей команд разработки. Статья не погружает в технические аспекты, но может быть полезна архитекторам и менеджерам, которые думают о том, чтобы попробовать использоватьданный класс систем, но не знают, подойдут ли они для их задач, а также разработчикам, которые могут открыть для себя новые инструменты для удобной работы с API.

Что такое системы API Management

Определение

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

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

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

Зачем еще один огород городить?

Необходимость этого класса систем возникла в связи с увеличением количества сервисов, которые могут предоставлять свое API как конечный продукт для других сервисов. Ничего не напоминает? Правильно - микросервисная архитектура. Для организации это возможность ускорения "цифровизации". Владельцы продукта публикуют API, документацию к ней и прочие документы типа: планов развития, лимиты и т.д. Также всем хочется контролировать качество работы API, а это уже анализ производительности, статистика использования, проведение все возможных маркетинговых исследований и простой мониторинг. Для коллег из информационной безопасности будет интересно осуществлять наблюдение за использованием API в части контроля доступа: авторизация, аутентификация, аудит, проверка по черным/белым спискам IP. Для аналитиков и тестировщиков возможно будет интересна функциональность проверки корректности запросов, проверка корректности JSON или динамическое изменение запросов, для DevOps инженеров возможность установки rate limit, чтобы не было DoS конечного сервиса, настройка кэша и возможность оптимизации сервиса под микросервисную архитектуру: Service Discovery, Load Balancing, Blue/Green или Canary deploy.

Архитектура сервиса

В архитектуру сервиса API Management обычно входят (см. рис. 1):

  1. Management Core: ядро системы, которое отвечает за формирование политик, планов, работу точками входа и выхода, настроек API Gateways и API, настройку CORS, Failover, Healthcheck, формирование запросов на отображение статистики использования API и логов.

  1. Web/Development Portal: отвечает за UI, отображение настроек, статистики использования API, healthcheck и логов, а также позволяет общаться разработчикам, администраторам и владельцам API.

  1. API Gateways: шлюзы или прокси, они отвечают за обработку запросов от клиентов сервиса согласно установленных настроек и политик, ведение логов запросов и ответов, а также запуск healthcheck по Backend API.

  1. Backend API: отвечает за обработку запросов согласно бизнес-логике конечного сервиса.

  1. Databases: в части сервиса API Management, хранят данные по настройке API, API Gateways, логи запросов клиентов и ответы backend, healthcheck, данные мониторинга практически всех компонентов API Management.

рис. 1 Архитектура сервиса API Managementрис. 1 Архитектура сервиса API Management

Плюсы и минусы систем API Management

У данных систем есть несколько преимуществ:

  • Абстракция: система упрощает сложность сервисов под ним и предоставляет клиентам единый опыт.

  • Аутентификация:система позволяет пройти аутентификацию, в том числе и через сторонние службы, например Keycloak.

  • Управление трафиком: система регулирует входящий и исходящий трафик API.

  • Мониторинг API: система может помочь в мониторинге запросов/ответов клиента.

  • Преобразования: система позволяет преобразовать запросы/ответы API.

К минусам можно отнести:

  • Увеличение Latency: шлюзу необходимо время для обработки запросов/ответов согласно настроенным политикам.

  • TCO: Совокупная стоимость владения для всей цепочки поставки ценности, естественно будет больше, чем просто установить nginx и выставить его наружу.

APIGateways

API Gateways работают как единая точка входа в ЦОД (центр обработки данных), группу распределенных служб или сервисов (см. рис. 2). Также API Gateways могут использоваться для связи между двумя продуктами/сервисами, развернутыми в одном ЦОД. API Gateways принимают вызовы от клиентов, обрабатывают их согласно политикам/правилам и направляют их в соответствующие сервисы. Чтобы API Gateways могли максимально быстро обрабатывать запросы от клиентов их делают максимально легковесными, с использованием асинхронных фреймворков. API Gateways, как правило, работают только на седьмом уровне (L7) модели OSI.

рис. 2рис. 2

ТипыAPI Gateways

С точки зрения расположения есть два места установки API Gateways:

  • Local API Gatewaysработают как шлюз для сервисов внутри организации.

  • DMZ API Gatewaysработают как шлюз для внешних потребителей и клиентов сервисов.

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

Наиболее распространенные системы

Name

Tags

APIGee

Enterprise

WSO2 API Manager

Enterprise/Open source

SAP API

Enterprise

3scale

Enterprise

IBM API Management

Enterprise

Kong

Enterprise/Open source

Mashery

Enterprise

Microsoft Azure API Management

Enterprise

Mule Soft

Enterprise

Централизованный сервис Gravitee

В X5 Retail Group в свое время выбрали для использования систему APIM Gravitee (https://www.gravitee.io). Основной сценарий использования нашими командами публикация API в локальной сети и в DMZ.

Немного цифр об этом сервисе на текущий момент:

  • 23 продуктивных команд зарегистрировано

  • 69 API Gateways для обслуживания запросов

  • 400 Гб логов за сутки

  • 350 RPS в среднем по больнице за сутки

  • 30 000 000+ запросов обрабатывается за сутки

Функциональность

Рассмотрим базовую функциональность, предоставленную системой APIM Gravitee.

  1. Identity provider: Аутентификация внешних пользователей можешь осуществляться на основе следующих систем и сервисов:

  1. MongoDB (по умолчанию для новых пользователей, которые приглашаются);

  2. In-memory (по умолчанию для пользователя admin);

  3. LDAP / Active Directory;

  4. OpenID Connect IdP (Azure AD, Google);

  1. Fetchers: стянуть настройки для новой версии API и документацию можно через:

  1. File (Swagger, OpenAPI);

  2. HTTP;

  3. GIT;

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

  1. API Key - политика авторизации с использованием API-ключа;

  2. Rate-limiting - политика ограничения скорости или квот для предотвращения флудинга backend;

  3. Transform Headers/Transform Query Parameters - политика преобразований параметров заголовка или запроса;

  4. etc.

Политик обработки запросов в Gravitee Gateway более 30 штук и с каждой версией их число увеличивается. Так же можно сделать свои политики. Но стоит учитывать, что чем больше политик "навешано", тем медленнее будет обрабатываться запрос и тем больше ресурсов будет использовано.

  1. Reporters: сборщики логов используются экземпляром шлюза для сообщения о событиях. Типы сборщиков логов:

  1. Reporter file;

  2. Elasticsearch;

  3. Accesslog;

Типы событий, которые можно собрать:

  1. Метрики запроса/ответа например, время ответа, длина содержимого, api-ключ;

  2. Мониторинг метрик например, процессора, использования кучи, кол-во открытых файлов и т.д.;

  3. Показатели проверки работоспособности например, состояние, код ответа;

  1. Repositories: репозиторий - это подключаемый компонент хранилища для настройки API, конфигураций политик, аналитики, аудита и так далее. Можно использовать следующие репозитории:

  1. MongoDB (по умолчанию);

  2. Redis;

  3. Elasticsearch;

  4. PostgreSQL (коннектор через JDBC и надо использовать другой дистрибутив);

  1. Resources: ресурсы, которые можно использовать при работе:

  1. OAuth2 (подключение к OAuth2 как источнику данных для аутентификации);

  2. Cache (создание локального кэша на шлюзе);

  3. LDAP (подключение к LDAP как источнику данных для аутентификации);

  1. Services: сервисы, которые может предоставлять сам шлюз:

  1. Sync (Синхронизация состояния шлюза с конфигурацией из репозитория управления);

  2. local-registry (Локальный реестр используется для загрузки API в формате json из файловой системы. Таким образом, вам не нужно настраивать свой API с помощью веб-консоли или rest API (но вам нужно знать и понимать формат json API, чтобы он работал.));

  3. health-check (Сервис для проверки состояния других сервисов);

  4. monitor (Сервис извлекает метрики, такие как метрики os / process / jvm, и отправляет их в базовую службу отчетов);

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

  1. Email;

  1. Alerts: оповещение используется для отправки триггеров или событий в механизм оповещений, которые могут быть обработаны для отправки уведомления с помощью настроенного плагина Notifier.

  1. Vertx;

А так как система с открытыми исходниками:https://github.com/gravitee-io, то при знании Java, можно написать свои собственные плагины и использовать как вздумается.

Настройки API

Настройка нового API проходит несколько этапов:

  1. Создание API

  1. Настройка планов

  1. Привязываем API к шлюзам

Создание API

На странице создания API можно выбрать, как и из чего создать скелет нового API

Вариантов немного, но выбор есть:

  1. Вручную накликал и можно работать!

  1. Импортировать из swagger файла.

  1. Импортировать из Gitа/URLа.

Рассмотрим ручной вариант настройки, выбираем "->"

Ручное создание API проходит 5 шагов

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

Второй шаг может быть в двух модификациях:

В Simple mode указываем только адрес нашего backend api, например:https://msk-dpro-sre000.x5.ru:8443/testbackend/

В Advanced mode необходимо указатьадрес нашего backend api, используемые tenant и sharding tags.

tenant- область выделенная в Elasticsearch для логов запросов и событий.

sharding tags- теги, согласно которым связываются API и Gateways

На третьем шаге можно указать Plan

Plan - это указание ограничений, которые будут влиять на обработку запросов, проходящих через данный Gateway.

Name -имяплана

Security type -типплана: Keyless(public), API Key, JWT, OAuth2

Description - просто описание плана и его особенностей

Rate limit - ограничение кол-ва запросов в секунду/минуту

Quota -ограничение кол-ва запросов в час/день/неделя/месяц

Path authorization - черный и белый список путей и методов к ним

Данный пункт можно пропустить и заполнить уже в созданном API.

На четвертом шаге можно загрузить файл документации по API

Поддерживается формат swagger.json

Данный пункт можно пропустить и заполнить уже в созданном API.

На пятом шаге мы проверяем все что заполнили

И выбираем либо "Создать API без установки на шлюз", либо "Создать и запустить API"

Нажимаем CREATE и получаем частично настроенный API для работы.

Настройки планов

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

Основные настройки:

  1. Планы привязываются к конкретному шлюзу или группе шлюзов через Tags (см. рис. 3)

Рис. 3Рис. 3

2. В плане указывается какой тип Аутентификации будет использован (см. рис. 4)

Рис. 4Рис. 4

3. Можно сразу указать Rate и Quota лимиты и определить список разрешенных путей для запроса (см. рис. 5)

Рис. 5Рис. 5

4. В последней вкладке можно указать политики, которые будут отрабатывать на начальном этапе обработки запросов (см. рис. 6)

Рис. 6Рис. 6

Заключение

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

Подробнее..

Методологический скачок от таблиц-портянок к понятному каталогу услуг в ITSM-системе

14.10.2020 14:07:29 | Автор: admin


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

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

Эволюция подхода к созданию сервисного каталога


В клиентских проектах мы пробовали разные подходы к составлению сервисных каталогов.

Таблицы в Word. Еще несколько лет назад по каскадной модели разработки (Waterfall) скрупулезно собирали информацию в текстовые файлы. В этих документах фиксировали всё от наименования услуг, основных ответственных до видов деятельности по определенной услуге и SLA.

image

Пример табличного описания услуги Электронная почта в формате текстового документа

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



К концу аудита услуг заполненные таблицы могли исчисляться десятками


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

В то же время в любой компании процессы не статичны. Появляются новые сервисы, развиваются существующие. Услуги обрастают огромным слоем объектов: запросами, справочниками, связями, параметрами, КЕ.

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

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



Сопровождать в Excel множество вкладок и столбцов вручную неудобно. На эту работу аналитик внедрения тратил сотни часов


Такой способ составления списка услуг нами рассматривался как почва для первичного импорта в систему автоматизации. Далее развитие и оптимизацию планировали вести уже в ИТ-системе. Но и этот подход оказался не без минусов.

Как показывает наш проектный опыт, подготовка каталогов в виде статичных документов экономически не оправданная задача. Трудозатраты огромны, выхлоп нулевой. Кроме как для подписания документа и закрытия актов он больше не понадобится. Если внедрен удобный инструмент автоматизации, никто эти таблицы-портянки не пересматривает.

Другое дело динамический каталог, который изначально проектируется со своей структурой и ценностью в инструменте автоматизации. Подобный каталог начинает функционировать только с появления в нем первой услуги. Нельзя на этапе внедрения разработать каталог услуг под ключ. За этот период удается запустить процесс по его наполнению и актуализации. А значит оптимальный подход собрать минимум информации и сразу идти в ИТ-систему.

В чем ценность каталога услуг



Пользу грамотно спроектированного сервисного каталога почувствуют все участники процесса.

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



Интерфейс Портала самообслуживания с удобной группировкой услуг. Реализован на базе платформы Naumen SMP

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

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

Владельцам и Заказчикам интересны параметры качества и финансов.

Какие шаги помогут создать каталог услуг в ИТ-системе


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

Шаг 1. Определение цели


Главный вопрос в любой деятельности зачем?. Для себя цели сервисного каталога сформулировали так:

  1. Организовать продуктивное взаимодействие с получателями услуг.
  2. Использовать единую платформу для построения ITSM-процессов и применения сервисного подхода во всех подразделениях компании.
  3. Заложить основу для управления и развития всех бизнес-процессов.

Шаг 2. Проведение обследования


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

В наше время с нуля это как вернуться в каменный век или попробовать заново изобрести велосипед. Не стоит отказываться от наработок. Берем все, что есть, и упаковываем в ИТ-систему.

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

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

Далее алгоритм следующий:

  1. Выделяем популярные вопросы к сервисным службам.
  2. Формируем набор услуг на понятном пользователю языке.
  3. Группируем и приземляем обращения на управляемые ресурсы.
  4. Предлагаем наименование услуги, которое увидит пользователь в ИТ-системе при подаче обращения.



Пример корреляции: Обращение пользователя-Оборудование-Услуга в ИТ-системе


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

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

Шаг 3. Распределение ответственности


Когда стартовый набор услуг готов, необходимо установить и зафиксировать исполнителей.

Важно определить уровни ответственности:

  • Исполнитель обращений.
  • Менеджер услуги.
  • Менеджер каталога.

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

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

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

  • Руководитель проекта внедрения ПО. Видит картину в целом и может принимать управляющие централизованные решения.
  • Руководитель сервисной организации (ИТ-департамента). Наиболее заинтересован в развитии взаимоотношений заказчиков и исполнителей, владеет знаниями стратегии сервисной организации и знает, как они коррелируют со стратегией основного бизнеса.
  • Группа компетенций. Ответственность закрепляется не за конкретным специалистом, а формируется на основе знаний участников проекта внедрения: РП, главных консультантов, сотрудников, которые способны передавать знания другим участникам.

Шаг 4. Подготовка каталога


Когда первичная версия каталога собрана, можно приступать к более глубокой проработке.

Здесь сразу делимся нашими наработкам: какие параметры на практике оказались наиболее востребованными и зачем они нужны.



Готовый перечень параметров услуги. Скачать полную версию

Результатом формирования каталога услуг в ИТ-системе становится качественный классификатор, при этом еще обновляемый и управляемый.

Шаг 5. Развитие каталога


Важный этап развития каталога услуг настройка связи с ресурсно-сервисной моделью (РСМ). Ее проектирование и поддержка может поглощать бесконечные трудоресурсы. Но пользы от нее гораздо больше.

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

Финальный аккорд расписать взаимозависимости между услугами, добавить перечень КЕ и завести в ИТ-систему процесс управления конфигурациями. И главное жить по процессу, чтобы все это нежно собранное не расплескать!



Пример части каталога услуг, который одновременно служит классификатором КЕ


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

Software Engineer Product Manager Product Engineer?

06.01.2021 16:04:08 | Автор: admin

TL;DR

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

Intro

Привет! Меня зовут Ил. И я работаю в стартапе. Нас около 20 человек половина команды (русскоязычная) занимается технологиями, вторая половина (англоязычная) занимается бизнесом. Официальный язык общения английский. Мы (как продукт, бизнес и команда) быстро растём, итерируемся, меняемся и развиваемся. Поэтому для нас критически важно чтобы было отличное взаимопонимание между бизнесом и технологиями. Обычно в компаниях эту функцию выполняют продуктовые менеджеры или аналитики. И у нас они тоже есть. Даже двое. Но каждый из них работает над продуктовыми задачами только 50% времени, совмещая эту роль с другими ролями. Поэтому суммируя, можно сказать что у нас в команде один Product Manager. А скорость изменений такая, что в полной мере формализовать, описать и декомпозировать задачи у PM-команды времени физически не хватает. Поэтому большинство задач у нас описываются достаточно высокоуровнево с акцентом на что хотим получить после того как задача будет выполнена. Процесс декомпозиции задачи, поиск возможных путей решения, выбор оптимального способа и более детальная проработка задачи (в том числе с точки зрения требований и продукта) обычно делегируется инженерам.

Погружаемся

Я бльшую часть времени занимаюсь бэкендом, но как часто бывает в стартапах по факту занимаюсь очень разными задачами. Несколько примеров задач из реальной жизни (которые инженеры обычно не решают):

  • Сделать research по barcodes (штрих-коды на товарах). Понять какие для них есть международные стандарты, как они различаются в раличных странах, какой у них формат, как их валидировать и прочее;

  • Создать план тестирования и/или миграции для большой фичи меняющей поведение в критически важном месте системы;

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

  • Поискать готовые 3rd party решения для той или иной задачи и оценить что в данный момент эффектнее взять один из них или написать самим.

В какой-то момент я внезапно осознал, что непосредственно инженерными задачами я занимаюсь не более 50-60% времени. А иногда и того меньше. Вторая половина моего времени уходит на другие активности:

  • звонки, обсуждения, обмен знаниями о продукте;

  • интервью кандидатов, участие в hiring-процессах;

  • изучение PRD (по русски ТЗ), поиск в нём "багов" заложенных ещё на уровне описания идеи и логики, выявление слабых мест, поиск мест которые можно сделать лучше, проще или оптимальнее, оценка времени необходимого на разработку;

  • эксперименты, проверка гипотез (продуктовых), POCи (proof-of-concepts);

  • написание спецификаций, инструкций и других документов для фрилансеров (часть задач мы аутсорсим) и коллег;

  • координация с другими командами и членами команд;

  • выявление слабых мест в процессах, и улучшение процессов;

  • поиск готовых решений для не mission critical задач (чтобы не изобретать велосипед) и анализ как прагматичнее поступить в конкретном случае запилить своё решение или взять готовое;

  • smoke-тестирование;

  • работа с продуктовыми метриками в Amplitude;

  • генерация кастомных отчётов.

Ещё один важный момент. Когда мы обсуждаем новую фичу (либо для фичи уже есть PRD, и мы делаем техническое ревью) требования почти всегда очень туманные, и бизнес команда смутно понимает чего хочет. Поэтому существенная часть времени уходит на то чтобы:

  • понять чего хочет бизнес;

  • понять чего хочет бизнес на самом деле (обычно 20-50% требований меняется в процессе обсуждения, ещё до начала реализации);

  • уточнить неочевидные детали, краевые случаи;

  • проанализировать и найти оптимальное техническое решение.

При этом крайне желательно донести до всей команды особенности выбранного в итоге решения, в том числе его ограничения и недостатки. Потому что выбранный вариант решения задачи это почти всегда trade off (причём достаточно жёсткий): между скоростью разработки, качеством, масштабируемостью и расширяемостью.

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

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

+/-

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

Разберём плюсы. Почему это круто:

  1. Ты намного лучше понимаешь приоритеты, чётко знаешь что важно, а что второстепенно (в мире стартапов "второстепенно" и "не важно" по сути синонимы). Следовательно, понимаешь каким частям кода следует уделять больше внимание, а в каких в данный момент можно на*****кодить

  2. Ты начнёшь понимать мотивы продуктовых решений, почему решили сделать так, а не иначе. Соответственно ты будешь в курсе дальнейших планов на проект/фичу. Это поможет выстроить более адекватную архитектуру

  3. Тебе будут чаще давать более глубокие, сложные, интересные задачи. Ты получишь больше свободы. И больше ответсвенности

  4. Это интересно. Понимать продуктовые метрики и особенности поведения пользователей это увлекательно. И это затягивает

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

  6. Качество твоих фич и решений будет увеличиваться. Как следствие, качество всего продукта тоже будет расти. Вместе с продуктом, твоя ценность в команде тоже будет становится всё больше

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

Почему это не круто:

  1. Частые смены контекста вредят здоровью. Они не только значительно повышают уровень стресса, но и могут пагубно влиять на мозг. Многочисленные исследования подтверждают это злоупотребление многозадачностью может привести в снижению общего IQ и негативным изменениям в мозге на физическом уровне, таким как уменьшение плотности нейронов (1, 2). А тебе придётся менять контекст очень часто. Твои дни станут более рваными. Ты будешь заниматься несколькими задачами одновременно и минимум 10/20/30 разными задачами в течении дня. Ты скорее всего станешь более нервным и раздражительным. У тебя могут начаться головные боли, даже если раньше ты был им не подвержен

  2. Тебе придётся делать то, что раньше ты скорее всего никогда не делал, потому что это делали за тебя твои коллеги. Например: работать с системами продуктовой аналитики, системами для рекламы, маркетинга, сервисами для мокапов, прототипирования, дизайна. Тебе придётся разбираться с множеством смежных областей и инструментов в этих областаях. Быть проактивным. Пушить других людей, если они не реагируют вовремя (в том числе твоих менеджеров). Назначать встречи/звонки. И это не вместо кодинга, а вместе с кодингом

  3. Ты начнёшь замечать конфликты в своём мышлении, а возможно и в решениях. За хорошее решение принятое тобой как инженером, твой внутренний PM может на тебя косо посмотреть или даже обидеться (привет, биполярочка!)

  4. Определённости и чётких ответов в твоей жизни станет ещё меньше, чем сейчас

Интегрируем

Вот мы и подходим к тому, с чего начали в заголовке статьи.

Термин Product Engineer пока ещё не очень популярен, но я думаю что в скором времени его популярность будет расти. Возможно для этой роли придумают другие названия, но суть не поменяется.

Драйверов развития этой роли несколько:

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

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

В таких условиях, с учётом того что продуктовый менеджмент будет усложняться, вполне гармонично может появиться новая роль на стыке между инженерами и менеджерами продуктовый инженер. Примеров появления новых профессий на стыке двух других уже было очень много:

  • Сисадмин/программист DevOps;

  • Программист/бизнесмен Product Manager;

  • Рекламщик/веб-мастер SEO-шник.

Достаточно отважен и хабр храбр?

Успей запрыгнуть в поезд! Но помни тормозов у этого поезда, похоже, нет.

Подробнее..

Agile в Сбере как понять, что происходит?

15.03.2021 10:06:02 | Автор: admin
image

В декабре 2020 мы провели Sbergile Talks (да, давно это было), нашу первую онлайн- конференцию про Agile в Сбере. Три потока, 31 доклад, спикеры из крупнейших отечественных и иностранных компаний, которые так или иначе связаны с Agile. Нас слушало порядка 10 тысяч человек. Я хочу пробежаться по основным моментам и рассказать, что же там было.

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

Так почему же Agile так интересен российскому рынку?

Agile в России


Ещё пять-семь лет назад в России следовали ценностям, озвученным в Agile-манифесте, в основном ИТ-компании. Перестраивать mindset, тем более в крупных организациях, как наша, никто не спешил.

Тогда решения в Сбербанке принимались медленно, а ИТ-архитектура была монолитной. Это абсолютно нормально для компаний такого размера. И это не российский подход или какие-то особенности менталитета: плюс-минус так выглядят крупные игроки в большинстве отраслей экономики во всём мире. При этом Сбербанк был коммерчески успешным банком.

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

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

Где смотреть доклады?


Стрим Организация.
Стрим Продукт.
Стрим Команда.
Обсуждение в чате.
Самые актуальные новости Sbergile в канале.

Какие доклады стоит посмотреть и почему?


В направлении Организация взгляд бизнеса на управление в целом.

  • В докладе Agile-трансформация Сбера Ксения Яшина рассказывает, как изменился подход в целом. Пример сейчас 100 тысяч pull-реквестов ежемесячно, а в начале 2020 года их было около 60 тысяч. И отправляют их в том числе сотрудники экосистемы.
  • Насколько эффективен процесс производства и поможет ли восьмирукий разработчик это как раз про полностью новый автоматизированный производственный процесс и единую среду разработки.
  • Agile #каквСбере для вашей компании про то, как можно внедрить такой же подход с нашей помощью.
  • Стандартизируй это! Как провести трансформацию и не стать новой Вавилонской башней главное помнить, любой стандарт это гипотеза и должен проверяться как гипотеза. Подробно рассказывается, как выглядит жизненный цикл стандарта от его разработки рабочей группой до утверждения. На выходе сокращение издержек в коммуникациях, отчётности, прозрачность и управляемость.
  • Трансформация розничного взыскания. От революции к эволюции Денис Кузнецов, директор дивизиона из Департамента по работе с проблемными активами, рассказывает, как их команда стала пионерами рынка. Свои слова подкрепляет крутыми кейсами. Например, ребята запустили продукты вроде электронного взаимодействия с ФССП, робота-коллектора, исполнительную надпись нотариуса. И стали первыми по бенчмаркам во взыскании в стране.
  • Shiftup Business Agility жизненный цикл бизнес-модели доклад Agile-коуча Янины Лашкевич основан на материалах последней работы Jurgen Appelo и более чем 15-летнем опыте в разработке продуктов и проектов в разных бизнес-моделях.
  • Мотивация внутри каждого из нас или как выпустить внутреннего профи здесь не будет ничего про пирамиду Маслоу, сложных терминов из психологии. Здесь подробный алгоритм, как повысить внутреннюю мотивацию и определение уровня выполнения потребностей. С отличными примерами.
  • Как стать вовлекающим лидером тут речь идёт про фасилитирующее лидерство. Про то, как правильно формировать и поддерживать группы, чтобы они эффективно шли к одной общей цели, как взаимодействовать друг с другом, распределять задачи, отслеживать прогресс и действовать по общим принципам.
  • Как не потерять контроль, когда в периметре 3000+ команд? точно не делать шаг назад в мир документов и согласований. Выход структурировать данные из систем, сделать понятные разрезы на всех уровнях. Понять, что контроль даёт свободу убедить в этом команду, дальше никакой ручной отчётности, только данные из систем.
  • PI Planning в условиях пандемии это история про модель планирования для больших компаний в период очень сложных изменений. Рассматривается методология, которая довольно редко используется на отечественном рынке.

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

  • Продуктовый офис. Как запустить конвейер проверки гипотез рассказывает Илья Забелин, управляющий директор, руководитель Продуктового офиса Сбера. Он более десяти лет (из них пять лет в Яндексе) занимается созданием, запуском и развитием своих и корпоративных продуктов в eНealth, ЕdТech, FinТech, E-СОМ. Илья показывает и рассказывает, как очень быстро проверять множество гипотез и как выстроить процессы в компании, способствующие этому.
  • Выстраивание системы управления клиентским опытом на примере корпоративных клиентов рассказывается о том, как искали причины возможного недовольства, потребительские инсайты и вообще оценивали качество.
  • И очень практически-полезный доклад Встраивание CX-исследований в жизненный цикл продукта если у вас ещё такого нет, то стоит присмотреться, это практический опыт.
  • Обучение Agile для лидеров если у вас в планах создать эффективную команду и управлять ею, а времени совсем в обрез. Денис Тучин, Agile-коуч, который вместе со своей командой обучил более 500 руководителей разного уровня, в деталях рассказывает, как организовать процесс, следить за ним по целям в Jira, как снизить time-to-market, не снижая или даже повышая качество продуктов.
  • Детство. Отрочество. Юность Agile-команды полезный доклад для молодых команд, неофитов Agile, джуниор-продактов. Ребята рассказывают, как разбирались с операционным процессом. По ходу можно сравнить реальный опыт с теорией, избежать ошибок, подсмотрев чужие, узнать, что всё, происходящее с вами, уже кто-то пережил. И выдохнуть.
  • 4 шага к эффективности команд никакой воды, только чистая польза. Рассказывается, как эффективно провести Agile-трансформацию в компании. С чего начать и как довести до конца. Если коротко ускорить поставку, добавить гибкости, выстроить приоритизацию через оценку, мониторить метрики.
  • СберБизнес. Как мы поменяли управление командами и сократили энтропию тут подробно говорится о капитанской модели изменений Коттера, а самое главное как её применять на практике. И ещё про то, как увеличить эффективность и результативность системы и дать ей возможность масштабироваться.
  • B2B Digital. Лицом к клиенту здесь можно найти ответ на вопрос Как пройти путь от продукта к клиенту?, начиная с фич, вывода в ПРОМ и заканчивая метрическим целеполаганием и влиянием на клиентский опыт.
  • Взлетают метрики, команда растёт втрое. Всё это за один год. Как не сойти с ума продакту? о том, как перестать работать без чёткой организации производственного процесса и научиться делегировать. Будут нужны дежурный спринта и дежурный релиза.
  • С ресурсами любой может: запуск продукта без необходимых средств, времени и плана история про правильную аналитику и оптимизацию приоритетов, ведущую в итоге к максимально быстрому выходу на MVP и его тестированию.

В направлении Команда собраны практики управления командами и повышения эффективности разработки. Практически каждый доклад показывает какой-то конкретный аспект работы команд.

  • Школа Scrum-мастеров как элемент матрицы развития Scrum-мастера про то, как создавать внутри компании специалистов, которые подружат разработку и бизнес. Как разрешать конфликт, когда бизнес хочет продукт здесь и сейчас, а разработка хочет делать это правильно. И те же самые Scrum-мастера выступают не только посредниками между командами и заказчиками, но и помогают командам быть эффективнее.
  • Как команда Критические заболевания тестирование в два раза ускорила история изменений в процессе релиза, которые позволили за одну итерацию проходиться по основным болевым точкам.
  • Перезагрузка сознания legacy-команд это боль почти каждого в финансовой сфере, тем более с долгой историей.
  • Будни Scrum-мастера или как зажечь сердце команды без жертв Дарья Михеинко, лидер направления, Scrum-мастер, аналитик, рассказывает, про то, как важно настроить свой энергетический баланс, чтобы замотивировать команду. Как избежать рутины и максимально эффективно помогать команде, не выгорая.
  • Разделяй и властвуй. Опыт создания продуктов в малых группах разработки на своем примере ребята доказывают, как за два года можно пройти от двух поставок в ПРОМ до 47, выполнения более 100 задач и ускорения Т2М в 1,5 раза.
  • Развитие Scrum-мастеров после Школы Scrum-мастеров история о том, как вдвоём можно развивать 50 Scrum-мастеров и что из этого получается. Для Scrum-мастеров есть школа СМ, профессиональное сообщество СМ, гильдии СМ, конференция СМ, чаты для СМ. Так что без помощи не останетесь.
  • Как Scrum-мастер перевернул тестирование в команде с ног на голову реальные ситуации и новые командные практики.
  • Ускоряем процесс разработки по максимуму ребята научились выпускать больше релизов от 32 до 55 за год, сократили время от завершения тестирования до внедрения в ПРОМ.
  • Пройти путь Scrum-мастера без ошибок. Лайфхаки о вопросах, которые себе должен задавать хороший Scrum-мастер. Давайте спросим команду один из ключевых.
  • Результативность продуктовой команды. Есть ли прогресс? roadmap от усовершенствования системы оценки задач и планирования спринтов до количественного представления результативности участников команды. Путь от оформления описания и пошаговой инструкции с примерами в Confluence до оптимизации и усовершенствования.

Итог


Интерес к конференции в целом и поток вопросов к каждому спикеру подтвердили, что рынок готов к изменениям. Мы уверены, что профильному сообществу необходимо иметь возможность общаться и обмениваться опытом, дискутировать и отстаивать свою точку зрения. 16 марта команда трансформации Сбера запускает новый проект Agile-дебаты. На первой встрече диванные эксперты обсудят, что лучше: выделенный Scrum-мастер или совмещающий? Должен ли владелец продукта руководить командой? Эволюция в Agile-трансформации лучше революции? Присоединяйся и выбери свою сторону. Да пребудет с нами истина!
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru