3 ошибки в интеграциях и 4 совета PM’ам

3 ошибки в интеграциях и 4 совета PM’ам

20 сентября 2023

  • Автор: Александр Кононенко

  • Сложность: норм

  • Время: 8 мин

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

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

Кейс 1. Отличное общение — неудачный запуск

Создавали приложение для пользователей устройств Huawei. Чтобы его полноценно запустить, нужна была интеграция с AppGallery.

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

Примерно за четыре недели (по плану было три) были внесены все необходимые изменения и приложение отправили на модерацию. С первого раза нас не пропустил бот. Долго искали причину, а она оказалась в первом экране. На нем был список стран, где Гонконг мы написали отдельно от Китая, а по правилам AppGallery должны были указать в качестве региона Поднебесной.

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

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

Кейс 2. Хорошая готовая библиотека, если б не один нюанс

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

Специалисты в команде заэстимейтили техническую часть на 3 недели, так как планировали использовать уже готовые библиотеки. Когда же начали процесс интеграции, оказалось, что на тот момент Google Faces не умела распознавать ту область лица, которая нужна для приложения (форму бровей изменить так и не удалось). В результате сроки затянули примерно в четыре раза, клиент был жутко недоволен, а проект в целом убыточен.

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

Кейс 3. Не учли риск, потеряли прибыль

Клиент поставил задачу по интеграции регионального банкинг-сервиса.

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

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

Словарь терминов для IT-менеджеров для удачного общения с клиентом

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

  • API (Application Programming Interface) – Интерфейс программирования приложений, который позволяет разным программам взаимодействовать друг с другом. Это своего рода «мост» между вашим приложением и внешним сервисом, позволяющий обмениваться данными.
  • Endpoint – Конечная точка API, по сути адрес, по которому ваше приложение может запрашивать или отправлять данные. Каждый endpoint выполняет определенную функцию в рамках API.
  • JSON (JavaScript Object Notation) – Легкий формат обмена данными, используемый для сериализации структурированных данных. Часто используется в API для форматирования сообщений, отправляемых и получаемых от сервера.
  • REST (Representational State Transfer) – Архитектурный стиль разработки веб-сервисов, который использует стандартные HTTP-запросы (GET, POST, PUT, DELETE) для общения. RESTful API – это API, который следует этим принципам.
  • Authentication and Authorization – Аутентификация и авторизация. Эти процессы используются для верификации пользователей и предоставления доступа к определенным функциям API. Часто это делается с использованием токенов безопасности.
  • OAuth – Стандартный протокол авторизации, который позволяет пользователям предоставлять сторонним приложениям доступ к своим защищенным ресурсам без необходимости раскрывать свои учетные данные.
  • SOAP (Simple Object Access Protocol) – Протокол обмена структурированными сообщениями в веб-сервисах, использующий XML. Часто применяется в корпоративных и финансовых приложениях.
  • SDK (Software Development Kit) – Набор инструментов для разработчиков, который позволяет создавать приложения для конкретной платформы или операционной системы.
  • Webhook – Метод обратного вызова HTTP для предоставления приложениям возможности получать уведомления о событиях в реальном времени.
  • XML (eXtensible Markup Language) – Язык разметки, используемый для кодирования документов в формате, который и читаем человеком, и легко обрабатываем машиной.
  • Rate Limiting – Ограничение на количество запросов, которые пользователь или приложение может отправить к API за определенный период времени.
  • Latency – Задержка между отправкой запроса и получением ответа, важный показатель производительности API.
  • API Gateway – Управляющий слой, который обеспечивает централизованный вход в систему, управляя трафиком, авторизацией, мониторингом и другими аспектами API.
  • Microservices – Подход к разработке программного обеспечения, при котором приложение строится как набор мелких, независимых сервисов.
  • CRUD (Create, Read, Update, Delete) – Четыре основные операции, которые можно выполнять с данными в базах данных и через API.

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

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

3 ошибки в интеграциях и 4 совета PM’ам

9 ошибок интеграции API и их решение

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

Неправильное использование API

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

Решение:

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

Недостаточное тестирование

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

Решение:

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

Неучтенные изменения в API

API постоянно развиваются, и изменения в них могут повлиять на интегрированные системы. Неучтенные обновления API могут привести к сбоям или потере функциональности.

Решение:

  • Подпишитесь на обновления от провайдера API. Это позволит вам быть в курсе любых изменений.
  • Разработайте стратегию управления версиями и планы на случай экстренных обновлений.
  • Регулярно проводите ревизию используемых API и их соответствие текущим бизнес-потребностям и технологическим стандартам.

Несоответствие спецификациям API

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

Решение:

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

Проблемы с производительностью

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

Решение:

  • Оптимизируйте запросы к API, чтобы минимизировать их количество и объем передаваемых данных.
  • Используйте кэширование данных, где это возможно, для уменьшения нагрузки на API.
  • Рассмотрите возможность использования асинхронных запросов для улучшения производительности.

Неадекватное управление зависимостями

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

Решение:

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

Недостаточная масштабируемость

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

Решение:

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

Недооценка важности пользовательского опыта

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

Решение:

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

Неправильная обработка исключений и ошибок

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

Решение:

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

Курс ArchiTech от IAMPM помогает участникам разобраться с ключевыми аспектами API интеграций. Он охватывает темы, связанные с выбором правильных архитектурных решений для интеграции, управлением техническими командами, и углубленным пониманием технических особенностей проектов. Участие в курсе даст вам знания, необходимые для эффективного управления интеграциями, понимания технических деталей и принятия обоснованных решений в проектах, связанных с API.

3 ошибки в интеграциях и 4 совета PM’ам

4 совета, чтобы интеграция прошла хорошо

  1. Тщательно изучите документацию. Перед подключением стороннего решения внимательно изучите всю информацию о нем, даже между строк (особенно техническую часть). Отнеситесь к ней словно это юридический договор, где неверно прописанная или понятая фраза может серьезно «аукнуться» в итоге. Аналогично поступайте и с документацией с вашей стороны. Она должна быть понятной и максимально полной — это серьезно упрощает работу над интеграцией любого продукта.
  2. Заранее продумайте менеджмент доступов. Беспорядок в этом вопросе может привести не только к неудобству работы команды, но и к проблемам в безопасности проекта. В любой момент ваш проект может покинуть кто-то из команды или сменится ответственный со стороны клиента/партнера. Следовательно возможна утечка информации. Поэтому не раздавайте всем подряд доступы, не храните их в переписках и обязательно продумывайте вариант быстрого отключения вышедших из процесса. Для этого у вас должен быть не только доступ ко всем аккаунтам, но и контроль за ними. Для удобства можете использовать сторонние сервисы по типу Vault и подобные.
  3. Правильно рассчитайте стоимость. Прежде чем решиться на интеграцию внешней системы, распишите все плюсы и минусы. Есть вероятность, что после расчета вы начнете разрабатывать свое решение. В долгосрочной перспективе собственное решение может быть выгодным не только по деньгам, но и в других аспектах: поддержке, возможностях апгрейда, безопасности.
  4. Проверьте стабильность сервиса. Убедитесь в работоспособности стороннего решения (например, через Statuspage). Если что-то не так, но альтернативы нет, при интеграции продумайте резервные варианты и failover-механизмы.

Внешняя система помогает сэкономить деньги или быстро запустить продукт. А скорость в IT играет решающую роль. Чем быстрее пользователи получат возможность взаимодействовать с продуктом, тем выше вероятность успеха. Полностью избавиться от подключения сторонних решений вряд ли получится. Дата-провайдеры, mls, какие-то специфические базы данных — без интеграции с ними сложно представить разработку любого продукта. Главное, делать все грамотно и систематически углублять свою техническую экспертизу

Александр Кононенко

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