Zamień ten tekst na URL Webhooka

Biznes i Automatyzacje

API-First

Wydanie nr
2
opublikowane
2021-06-29
Adam Gospodarczyk
Adam Gospodarczyk
overment
No items found.

API First jako dźwignia biznesu online

Przez lata korzystaliśmy z aplikacji uruchamianych na komputerze, które nie wymagały podłączenia z Internetem. W ten sposób realizowaliśmy bardzo konkretne zadania, mając do dyspozycji wyłącznie funkcje oferowane przez takie aplikacje.
W sytuacji gdy zaczynało nas to ograniczać, jedynym sposobem było ręczne przeniesienie danych lub ewentualnie skorzystanie z opcji eksportu i importu danych, co i tak nie zawsze było dostępne.


Lot w chmury

W momencie gdy Internet stał się dostępny dla wszystkich, pojawiły się opcje synchronizacji danych w chmurze oraz możliwość współpracy jednocześnie nad tymi samymi danymi. Tutaj pierwsze były aplikacje do zarządzania projektami a potem edycja dokumentów (Google Apps). Dziś nawet designerzy są w stanie pracować jednocześnie nad tym samym projektem z pomocą chociażby Figmy.
Zatem jasno widać tutaj pewną ścieżkę prowadzącą nas od sytuacji w której aplikacje działały niezależnie, do punktu w którym przeniosły się do Internetu i wersji przeglądarkowych. To ułatwiło wspólną pracę i dostęp do naszych danych z dowolnego urządzenia.

Świat w naszych kieszeniach

No i skoro jesteśmy przy urządzeniach to po drodze przeszliśmy rewolucję związaną z urządzeniami mobilnymi a w zasadzie multiplatformowością. To sprawiło że proces wytwarzania i projektowania oprogramowania bardzo się skomplikował. Teraz programiści nie tylko musieli rozwijać główną wersję aplikacji ale również dbać o ich wersje mobilne na smartfony i tablety.
To wymagało sprytnego rozwiązania.

O co chodzi z tym "API"?

I w ten sposób doszliśmy do strategii projektowania architektury aplikacji wykorzystując API, czyli programistyczny interfejs aplikacji. Domyślam się że może Ci to niewiele mówić ale raczej o określenie API nie powinno być Ci obce.
Aby zrozumieć czym jest API, należy wiedzieć że "intrefejs" to sposób umożliwiający komunikację. A programistyczny interfejs aplikacji to sposób umożliwiający komunikację w ramach jednej lub wielu aplikacji.
Taka strategia sprawiła że proces tworzenia aplikacji na wiele platform niesamowicie się uprościł bo programiści nie tworzą wielu wersji aplikacji. W zamian (posługując się uproszczonym schematem) wystarczy jeden serwer udostępniający dane użytkowników do których mogą podłączać się aplikacje stworzone na konkretne platformy, jednak ich poziom skomplikowania jest w tym przypadku już zdecydowanie mniejszy.

API-First Design - sprytne rozwiązanie programistów

Dodam tylko że obecnie mamy do dyspozycji technologie takie jak React Native czy Flutter, które umożliwiają stworzenie jednej wersji aplikacji, która uruchamiana jest na wielu platformach. To ponownie upraszcza development i jest bardzo korzystne z punktu widzenia biznesowego.
To wszystko doprowadziło nas do powstania strategii tworzenia oprogramowania o nazwie "API-First Design". Z perspektywy tego, co właśnie napisałem jest to w pełni uzasadnione. Skoro możemy pisać jeden kod aby obsłużyć wiele platform, to dlaczego mielibyśmy tego nie robić?
I teraz jakie ma to znaczenie dla osób nie będących programistami? Ano takie że podejście API-First można moim zdaniem wykorzystywać jako strategie prowadzenia biznesu i wykorzystywania aplikacji.
U mnie mija już kolejny rok odkąd to zrozumiałem i miało to ogromny wpływ na sposób prowadzenia przeze mnie projektów. Jednocześnie mam też doświadczenie którym teraz po części się z Tobą podzielę.

API-First w biznesie. Wait, what?!

Powiedzieliśmy już że API daje możliwość wymiany danych w ramach aplikacji oraz pomiędzy aplikacjami. To prowadzi nas do zupełnie nowych możliwości.
Okazuje się że jesteśmy w stanie łączyć ze sobą różne usługi z których korzystamy i przesyłać pomiędzy nimi dane. W ten sposób nie jesteśmy już ograniczeni funkcjami dostępnymi w wybranych aplikacjach, lecz mamy do dyspozycji pełen wachlarz możliwości, które dają nam wszystkie wykorzystywane przez nas narzędzia.
Najprostszym przykładem jest moment w którym organizujemy wydarzenie online, np. webinar. Narzędzie do webinaru umożliwia rejestrację uczestników, zatem mamy dostęp np. do e-maila oraz numeru telefonu.

Real-time data enrichment w procesie sprzedaży

Z pomocą API możemy automatycznie przekazać dane tego użytkownika do usługi Clearbit odpowiedzialnej za tzw. Data Enrinchment, czyli wzbogacanie danych. Przesyłając np. firmowy adres e-mail, otrzymujemy dodatkowe informacje na temat osoby która zapisuje się na nasze wydarzenie. Tak wzbogacone dane mogą zostać również automatycznie przesłane do naszego systemu CRM (np. Pipedrive) i w ten sposób wpłynąć pozytywnie na proces sprzedaży ponieważ przy kontakcie z takim potencjalnym klientem mamy o nim więcej informacji, które pozwolą nam lepiej dopasować nasze usługi do jego problemów.
Alternatywnie możemy wykorzystać numer telefonu aby automatycznie przypomnieć krótkim SMSem o wydarzeniu. W ten sposób zwiększamy frekwencję a to może przełożyć się na korzyści dla nas i naszych potencjalnych klientów.
Zatem jak widzisz wykorzystaliśmy tutaj API do tego aby przesyłać dane pomiędzy różnymi usługami i w ten sposób optymalizować jeden proces który albo do tej pory był realizowany ręcznie albo nie był realizowany wcale.
Takie podejście pozwala usprawniać istniejące procesy lub tworzyć nowe. Sam przekonałem się że w przypadku biznesów online, jest to podejście które pozwala realnie przenosić nasze projekty nie na kolejny poziom ale nie rzadko na 10 poziomów wyżej.
Przykładowo realizowane przez nas projekty, biorąc pod uwagę skalę działania oraz ich rentowność można śmiało porównać do biznesów wymagają zaangażowania nawet kilkudziesięcio osobowego zespołu!

Wybór "stacku" narzędzi w naszym biznesie

No dobra. To w jaki sposób dobierać narzędzia w naszym biznesie i codziennej pracy? Mam dla Ciebie kilka wskazówek na których sam opieram swoje wybory. Nie są to "złote zasady" ale być może zabierzesz to dla siebie.
Czy mam do dyspozycji API i jeżeli tak to jakie możliwości daje?
Czy wymiana danych z innymi aplikacjami jest tutaj konieczna?
Czy są dostępne wersje na różne platformy?
Czy dostępna jest "roadmapa" produktu i jak często wprowadzane są zmiany?
Czy model biznesowy jest dla mnie w porządku (np. czy nie narzuca zbyt wiele ograniczeń)
Czy odpowiada na moje aktualne potrzeby?
Jakie nowe możliwości przede mną otwiera?
Jak duża jest "bariera wejścia"?
Na jakim poziomie stoi UX aplikacji (dla mnie jest to bardzo istotne!)
Czy umożliwia łatwy eksport danych (na wypadek przyszłej migracji)
Czy ktoś mi polecał to rozwiązanie? (mało istotne, ale niektóre rekomendacje poważnie biorę pod uwagę)
Takie pytania są mocno ukierunkowane na zweryfikowanie tego czy:
aplikacja posiada API i jak rozbudowane ono jest
jak efektywnie się rozwija
jak bardzo dopasowana jest do moich potrzeb
Podam Ci teraz przykład oparty o systemy mailowe. Aktualnie wykorzystuję Sendgrid, Mailchimp, MailerLite i GetResponse w zależności od projektu. To że korzystam z wielu narzędzi nie robi mi różnicy ponieważ korzystam z nich wyłącznie przez API, które daje mi różne możliwości.
Np. Sendgrid pozwala łatwo wysyłać pojedyncze wiadomości a Mailchimp ostatnio tak rozbudował swoje API że zaczął odpowiadać na szereg moich wymagań. Podobnie wygląda to w pozostałych narzędziach, które również są specyficznie dobrane do konkretnych projektów.
I teraz mamy na rynku jeszcze genialny ConvertKit oraz całkiem dobry ActiveCampaign. Problem w tym że ani jeden ani drugi nie posiada sensownego API, co dla mnie całkowicie eliminuje te narzędzia.
Oczywiście jeżeli z nich korzystasz to nie jest od razu powód aby rezygnować. Po prostu w moim przypadku więcej korzyści mam z sięgania po inne rozwiązania. Ogromną zaletą jest dla mnie to, że jestem w stanie wchodzić w niemal dowolne interakcje z takimi systemami bez konieczności logowania do ich paneli.

Ograniczenia i gotowość na zmiany

Muszę jeszcze podkreślić istotny fakt dotyczący ograniczeń. Podejście API-First w ciągu ostatnich lat zyskuje na popularności, jednak nie jest to jeszcze standard. Dodatkowo możliwości API czasem są ograniczone same w sobie a czasem zdarzają się sytuacje w których są ograniczane celowo (np. ze względu na model biznesowy lub nadużycia).
To sprawia że kluczowe jest tutaj pozostawanie otwartym na zmiany oraz procesowe eksplorowanie nowych możliwości.
W praktyce oznacza to, że warto regularnie odkrywać pojawiające się na rynku narzędzia i aplikacje. Odkrywać czyli - podłączać się na okres próbny, przeklikać dostępne opcje czy obejrzeć filmy pokazujące ich wykorzystanie w praktyce.
Sam w ten sposób odkrywam nie tylko nowe aplikacje ale również nowe funkcje aplikacji z których korzystam. Jest to bardzo ważne szczególnie w przypadku szybko rozwijających się narzędzi, ponieważ może się okazać że ich nowe funkcje mogą realnie ułatwić nam pracę.
To wszystko brzmi jakby wymagało od nas dużo wysiłku oraz czasu a w praktyce wystarczy jeden prosty nawyk odwiedzania np. Product Hunt czy przeglądania kilku ciekawych newsletterów (np. Pucek.com) lub blogów (np. Superorganizers).
Warto też dbać o jakość źródeł wiedzy z których korzystamy. To fundament naszego rozwoju mający ogromny wpływ na naszą kreatywność, a co za tym idzie - sposób prowadzenia biznesu i codziennej pracy.