3 błędy w integracjach i 4 wskazówki dla PMów

23 maja 2024

  • Autor: Aleksander Kononenko

  • Złożoność: normalna

  • Czas: 8 min

Integracja z systemami zewnętrznymi (aplikacjami firm trzecich) często staje się ratunkiem podczas tworzenia produktu. Takie podejście przyspiesza czas i oszczędza budżet, jeśli stworzenie własnego rozwiązania jest droższe.

Integracja z systemami zewnętrznymi jest wyjątkowym wyzwaniem. Komunikacja, dokumentacja, część techniczna – nigdy nie wiadomo, co może pójść nie tak. W artykule zebrano trzy przykłady.

Przypadek 1. Doskonała komunikacja – nieudane uruchomienie

Stworzyliśmy aplikację dla użytkowników urządzeń Huawei. Do jego pełnego uruchomienia wymagana była integracja z AppGallery.

Skontaktowaliśmy się z managers AppGallery i wyjaśniliśmy im sytuację. Ich technicy pobrali naszą aplikację z Play Market i zrobili reverse engineering. Następnie przesłano nam listę elementów wymagających zmiany i szczegółowe instrukcje. Odbyła się także rozmowa pomiędzy AppGallery a naszymi programistami, podczas której omawiano szczegóły.

W ciągu około czterech tygodni (w planie były trzy) dokonano wszystkich niezbędnych zmian i aplikacja została wysłana do moderacji. Nie udało się jednak za pierwszym razem. Długo szukaliśmy przyczyny, aż pojawiła się ona na pierwszym ekranie. Znajdowała się na niej lista krajów, w których oddzielnie od Chin napisaliśmy Hongkong, a zgodnie z zasadami AppGallery powinien on być oznaczony jako region Niebiańskiego Imperium.

W rezultacie technicy AppGallery zalecili po prostu dodanie frazy „kraje i regiony”. Po wprowadzeniu zmian aplikacja została wypuszczona, ale straciliśmy kolejny tydzień i przegapiliśmy zaplanowane daty premiery.

Na podstawie wyników możemy stwierdzić, że techniczny etap integracji przeszliśmy „śpiewająco” dzięki dobrej komunikacji ze specjalistami AppGallery. Jednak uruchomienie aplikacji zostało „wykolejone” z powodu nieznajomości na platformie niuansów formalnej definicji Hongkongu. Zawsze konieczne jest wyjaśnienie takich punktów przed rozpoczęciem integracji.

Przypadek 2. Dobra gotowa biblioteka, gdyby nie jeden niuans

Aplikację zintegrowaliśmy z Google Faces, dzięki czemu możliwa była zmiana twarzy, a dokładniej kształtu brwi, w aplikacji AR.

Specjaliści w zespole opóźnili część techniczną o 3 tygodnie, ponieważ planowali wykorzystać gotowe biblioteki. Kiedy rozpoczął się proces integracji, okazało się, że w tamtym momencie Google Faces nie był w stanie rozpoznać części twarzy potrzebnej do aplikacji (nie było możliwości zmiany kształtu brwi). W rezultacie terminy wydłużyły się około czterokrotnie, klient był strasznie niezadowolony, a projekt w ogóle był nieopłacalny.

Na etapie projektowania popełniono błędy. Nie zbadaliśmy do końca możliwości technicznych Google Faces, co doprowadziło do przykrych konsekwencji. W integracji z systemami zewnętrznymi każdy szczegół może odegrać fatalną rolę, dlatego trzeba wszystko dokładnie sprawdzić już na etapie wyboru rozwiązania zewnętrznego. Można na przykład wziąć gotową bibliotekę, napisać fragment kodu i od razu sprawdzić, czy wszystko jest w porządku.

Przypadek 3. Ryzyko nie zostało wzięte pod uwagę, zysk został utracony

Klient postawił za zadanie integrację regionalnej usługi bankowej.

Z technicznego punktu widzenia nie było żadnych problemów, jednak w pewnym momencie bank podniósł wysokość prowizji transakcyjnej. Co robić? W tamtym czasie na tym regionalnym rynku istniało dwóch innych graczy, z którymi można było się zintegrować. Ostatecznie udało się, ale trwało to około miesiąca, podczas którego pracowaliśmy prawie na minusie ze względu na niskie marże biznesowe. Celem była obsługa dużej liczby osób, a w związku ze wzrostem prowizji bank „zjadł” prawie cały zysk.

Początkowo nie braliśmy pod uwagę ryzyka związanego z cenami usług bankowych. W efekcie straciliśmy miesiąc i znaczną sumę pieniędzy. Należy pamiętać, że integrując system zewnętrzny nie da się kontrolować wielu rzeczy. Dlatego już na etapie projektowania ważne jest przemyślenie wszystkich możliwych zagrożeń i zaplanowanie reakcji na nie.

Słowniczek terminów dla IT managers dla skutecznej komunikacji z klientem

Zrozumienie i prawidłowe użycie specjalistycznych terminów nie tylko ułatwia komunikację, ale także pomaga budować zaufanie ze strony klienta. Oto niektóre z kluczowych terminów związanych z API, które powinien znać każdy IT manager:

  • API (Application Programming Interface) – Interfejs programowania aplikacji, który umożliwia wzajemną interakcję różnych programów. Jest to swego rodzaju „pomost” pomiędzy Twoją aplikacją a usługą zewnętrzną, który umożliwia wymianę danych.
  • Endpoint – Punkt końcowy API, zasadniczo adres, pod który aplikacja może żądać danych lub wysyłać je. Każdy endpoint wykonuje określoną funkcję w ramach API.
  • JSON (JavaScript Object Notation) to lekki format wymiany danych używany do serializacji danych strukturalnych. Często używany w API do formatowania wiadomości wysyłanych i odbieranych z serwera.
  • REST (Representational State Transfer) – Styl architektoniczny służący do tworzenia usług internetowych, który do komunikacji wykorzystuje standardowe żądania HTTP (GET, POST, PUT, DELETE). RESTful API to API zgodne z tymi zasadami.
  • Authentication and Authorization – Uwierzytelnianie i autoryzacja. Procesy te służą weryfikacji użytkowników i zapewnieniu dostępu do niektórych funkcji API. Często odbywa się to za pomocą tokenów bezpieczeństwa.
  • OAuth – Standardowy protokół autoryzacji, który umożliwia użytkownikom udzielanie aplikacjom innych firm dostępu do chronionych zasobów bez konieczności ujawniania swoich danych uwierzytelniających.
  • SOAP (Simple Object Access Protocol) – Protokół wymiany ustrukturyzowanych komunikatów w usługach internetowych przy użyciu formatu XML. Często używany w aplikacjach korporacyjnych i finansowych.
  • SDK (Software Development Kit) – Zestaw narzędzi dla programistów pozwalający na tworzenie aplikacji na konkretną platformę lub system operacyjny.
  • Webhook — Metoda wywołania zwrotnego HTTP umożliwiająca aplikacjom otrzymywanie powiadomień o zdarzeniach w czasie rzeczywistym.
  • XML (eXtensible Markup Language) – Język znaczników używany do kodowania dokumentów w formacie czytelnym dla człowieka i łatwym do przetwarzania maszynowego.
  • Rate Limiting — Ograniczenie liczby żądań, które użytkownik lub aplikacja może wysłać do API w określonym przedziale czasu.
  • Latency — Opóźnienie między wysłaniem żądania a otrzymaniem odpowiedzi, ważny wskaźnik wydajności API.
  • API Gateway – Warstwa kontrolna zapewniająca scentralizowane logowanie, zarządzanie ruchem, autoryzację, monitorowanie i inne aspekty API.
  • Microservices – Podejście do tworzenia oprogramowania, w którym aplikacja jest budowana jako zestaw małych, niezależnych usług.
  • CRUD (Create, Read, Update, Delete) – Cztery podstawowe operacje, które można wykonać na danych w bazach danych i poprzez API.

Zrozumienie tych terminów i prawidłowe ich użycie może znacznie poprawić zrozumienie pomiędzy IT managers a ich klientami, a także pomóc w bardziej efektywnej komunikacji z zespołem programistów.

Ta lista terminów stanowi jedynie punkt wyjścia w rozległym świecie komunikacji IT. Aby naprawdę rozmawiać z programistami tym samym językiem, pewnie komunikować się z klientami i przekazywać im wszystkie korzyści i techniczne aspekty projektu, konieczne jest głębsze zrozumienie tematu. Kurs TechMind od IAMPM zapewnia kompleksowe szkolenia, które umożliwiają IT managers zdobycie niezbędnej wiedzy i umiejętności do skutecznego współdziałania w obszarze rozwoju i integracji. To Twoja szansa, aby stać się pomostem pomiędzy specjalistami technicznymi a klientami, wnosząc maksymalną wartość do każdego projektu.

Kurs TechMind

9 błędów integracji API i ich rozwiązania

Przyjrzyjmy się 9 najczęstszym błędom, powstającym w trakcie integracji API  i zaproponujemy skuteczne rozwiązania, które je naprawią. Zrozumienie tych błędów i ich konsekwencji pomoże Ci zminimalizować ryzyko i zwiększyć powodzenie projektów integracyjnych.

Nieprawidłowe użycie API

Niewłaściwe użycie API może mieć miejsce, gdy programiści nie są w pełni świadomi funkcji i ograniczeń API. Może to prowadzić do nieprawidłowego wysyłania żądań, nieprawidłowego przetwarzania danych lub nieprawidłowego wykorzystania zasobów API, co z kolei może prowadzić do awarii aplikacji, wycieków danych i złego doświadczenia użytkownika.

Decyzja:

  • Przed rozpoczęciem integracji przeczytaj uważnie dokumentację API. Zrozumienie wszystkich funkcji i ograniczeń API pomoże Ci uniknąć wielu błędów.
  • Zapewnij szkolenia i wsparcie techniczne dla swojego zespołu programistów. Prowadź regularne szkolenia i warsztaty, aby aktualizować wiedzę na temat najnowszych zmian w API.
  • Przeprowadź kompleksowe testy. Przed integracją API ze środowiskiem produkcyjnym upewnij się, że zostało ono dokładnie przetestowane w warunkach możliwie najbardziej zbliżonych do rzeczywistych.

Niewystarczające testowanie

Nieodpowiednie testowanie integracji może prowadzić do nieprzewidzianych problemów po uruchomieniu, takich jak awarie operacyjne, problemy z wydajnością lub problemy z bezpieczeństwem danych. Jest to szczególnie istotne, gdy integracja wpływa na kluczowe procesy biznesowe.

Decyzja:

  • Opracuj i wdrażaj szczegółowy plan testów. Uwzględnij różne scenariusze użycia, zgodność z zabezpieczeniami i testowanie obciążenia.
  • Korzystaj z narzędzi do automatycznego testowania, aby zapewnić ciągłe i wydajne testowanie.
  • Zaangażuj użytkowników końcowych w proces testowania. Ich opinie mogą być cenne w identyfikowaniu problemów pominiętych podczas testów wewnętrznych.

Nieuwzględnione zmiany w API

API stale się rozwijają, a zmiany w nich mogą mieć wpływ na zintegrowane systemy. Nieuwzględnione aktualizacje API mogą powodować awarie lub utratę funkcjonalności.

Decyzja:

  • Subskrybuj aktualizacje od dostawcy API. Dzięki temu będziesz na bieżąco informowany o wszelkich zmianach.
  • Opracuj strategię kontroli wersji i plany aktualizacji awaryjnych.
  • Regularnie audytuj wykorzystywane API i ich zgodność z aktualnymi potrzebami biznesowymi i standardami technologicznymi.

Niezgodność ze specyfikacjami API

Często zdarza się, gdy programiści nie do końca przestrzegają wymagań technicznych lub zasad działania API. Może to prowadzić do nieprawidłowej wymiany danych, awarii aplikacji, a nawet naruszeń bezpieczeństwa.

Decyzja:

  • Należy dokładnie przestrzegać wszystkich specyfikacji i zaleceń, dostarczonych przez dostawcę API.
  • Upewnij się, że Twój zespół programistów ma wystarczającą wiedzę i doświadczenie, aby pracować z konkretnym API.
  • Przeprowadzaj regularne przeglądy kodu i audyty techniczne, aby zapewnić zgodność ze specyfikacjami.

Problemy z wydajnością

Integracja z zewnętrznymi API może prowadzić do problemów z wydajnością, zwłaszcza jeśli API wolno odpowiada na żądania lub generuje dużą ilość danych. Może to negatywnie wpłynąć na szybkość aplikacji i wygodę użytkownika.

Decyzja:

  • Optymalizuj żądania API, aby zminimalizować ich liczbę i objętość przesyłanych danych.
  • Jeśli to możliwe, używaj buforowania danych, aby zmniejszyć obciążenie API.
  • Rozważ użycie zapytań asynchronicznych w celu poprawy wydajności.

Nieodpowiednie zarządzanie zależnościami

Nieodpowiednie zarządzanie zależnościami w projektach obejmujących integrację z zewnętrznymi API może prowadzić do konfliktów wersji, niestabilności i trudności w utrzymaniu kodu.

Decyzja:

  • Wdróż ścisły system zarządzania zależnościami, który śledzi i kontroluje wszystkie używane biblioteki i frameworki.
  • Regularnie aktualizuj zależności i dokładnie testuj system po każdej aktualizacji, aby zapewnić kompatybilność i stabilność.
  • Użyj narzędzi do automatyzacji zarządzania zależnościami i śledzenia podatności.

Niewystarczająca skalowalność

Ignorowanie potencjalnego wzrostu i skalowania systemu podczas integracji API może prowadzić do problemów z wydajnością i stabilnością w miarę wzrostu obciążenia.

Decyzja:

  • Projektując system, należy wziąć pod uwagę skalowalność, zwłaszcza pod kątem integracji z API.
  • Regularnie ładuj, testuj i analizuj metryki wydajności, aby określić potrzeby skalowania.
  • Rozważ skorzystanie z rozwiązań chmurowych i zautomatyzowanych narzędzi zapewniających elastyczne skalowanie.

Niedocenianie znaczenia doświadczenia użytkownika

Skupianie się wyłącznie na technicznych aspektach integracji, bez uwzględnienia wpływu na doświadczenie użytkownika, może prowadzić do zmniejszenia zadowolenia użytkowników i wydajności aplikacji.

Decyzja:

  • Zwracaj uwagę na konstrukcję interfejsu użytkownika i łatwość interakcji ze zintegrowanymi funkcjami.
  • Przeprowadź testy z prawdziwymi użytkownikami, aby ocenić użyteczność i intuicyjność interfejsu.
  • Zbieraj i analizuj opinie użytkowników, aby stale ulepszać doświadczenie użytkownika.

Niewłaściwa obsługa wyjątków i błędów

Nieodpowiednia obsługa błędów podczas integracji z API może prowadzić do awarii aplikacji i dezorientacji użytkowników.

Decyzja:

  • Opracuj przejrzysty system obsługi wyjątków i błędów API.
  • Upewnij się, że aplikacja potrafi poprawnie reagować na różnego rodzaju błędy, np. chwilową niedostępność usługi.
  • Dostarczaj użytkownikom komunikaty o błędach, aby ułatwić zrozumienie napotkanych problemów.

Kurs ArchiTech od IAMPM pomaga uczestnikom zrozumieć kluczowe aspekty integracji API. Obejmuje tematy związane z wyborem odpowiednich rozwiązań architektonicznych do integracji, zarządzaniem zespołami technicznymi i dogłębnym zrozumieniem cech technicznych projektów. Dzięki udziałowi w kursie zdobędziesz wiedzę potrzebną do skutecznego zarządzania integracjami, zrozumienia szczegółów technicznych i podejmowania świadomych decyzji w projektach związanych z API.

ArchiTech

4 wskazówki, aby integracja przebiegła pomyślnie

  1. Dokładnie przestudiuj dokumentację. Przed podłączeniem rozwiązania strony trzeciej dokładnie przestudiuj wszystkie informacje na jego temat, nawet między wierszami (szczególnie część techniczną). Traktuj to tak, jakby była to umowa prawna, w przypadku której nieprawidłowo napisane lub źle zrozumiane wyrażenie może poważnie „odbić się” w rezultacie. Zrób to samo z dokumentacją ze swojej strony. Powinno być jasne i możliwie kompletne – to znacząco ułatwia pracę nad integracją dowolnego produktu.
  2. Pomyśl o zarządzaniu dostępem z wyprzedzeniem. Bałagan w tej kwestii może skutkować nie tylko niedogodnościami w pracy zespołu, ale także problemami w bezpieczeństwie projektu. W każdej chwili ktoś z zespołu może opuścić Twój projekt lub zmieni się osoba odpowiedzialna ze strony klienta/partnera. Dlatego możliwy jest wyciek informacji. Dlatego nie rozdzielaj dostępu wszystkim z rzędu, nie zapisuj ich w korespondencji i pamiętaj o możliwości szybkiego wyłączenia tych, którzy opuścili proces. Aby to zrobić, musisz mieć nie tylko dostęp do wszystkich kont, ale także kontrolę nad nimi. Dla wygody możesz korzystać z usług stron trzecich, takich jak Vault i podobne.
  3. Oblicz koszt poprawnie. Zanim podejmiesz decyzję o integracji systemu zewnętrznego, wypisz wszystkie za i przeciw. Jest szansa, że ​​po obliczeniach zaczniesz opracowywać swoje rozwiązanie. W dłuższej perspektywie własne rozwiązanie może być opłacalne nie tylko pod względem finansowym, ale także w innych aspektach: wsparciu, możliwościach aktualizacji, bezpieczeństwie.
  4. Sprawdź stabilność serwisu. Sprawdź funkcjonalność rozwiązania strony trzeciej (na przykład poprzez Statuspage). Jeśli coś jest nie tak, ale nie ma alternatywy, podczas integracji zastanów się  o opcjach tworzenia kopii zapasowych i nad mechanizmami failover.

Zewnętrzny system pomaga zaoszczędzić pieniądze i szybko uruchomić produkt. A szybkość w IT odgrywa decydującą rolę. Im szybciej użytkownicy uzyskają możliwość interakcji z produktem, tym większe prawdopodobieństwo sukcesu. Całkowite pozbycie się połączenia rozwiązań innych firm raczej się nie powiedzie. Dostawcy danych, mls, niektóre konkretne bazy danych – trudno wyobrazić sobie rozwój jakiegokolwiek produktu bez integracji z nimi. Najważniejsze jest, aby robić wszystko poprawnie i systematycznie pogłębiać swoją wiedzę techniczną.

Aleksander Kononenko

Marketingowy copywriter z wykształceniem technicznym oraz doświadczeniem w sprzedaży i marketingu. Zawsze poszukuje najlepszych rozwiązań do osiągnięcia swoich celów i uważa, że tworzenie tekstów to symbioza sztuki i nauki.