Case study: jak zintegrować ogromną ilości danych w jednym projekcie, podczas pracy z bardzo rozproszonym zespołem.

Jedna z największych firm na świecie, związana z przemysłem filmowym i telewizyjnym, poprosiła nas o odświeżenie i modernizację sklepu internetowego. Celem był serwis, który sprosta wyzwaniom nowoczesnego użytkownika i dynamicznie rozwijającej się technologii. Cały projekt powstał całkowicie zdalnie we współpracy z Thought Foundry Inc., firmą z USA, zajmującą się innowacjami cyfrowymi.

Główne kwestie

Projekt był tak duży, że głównym wyzwaniem, które mieliśmy na samym początku, było zaplanowanie i usprawnienie pracy. Postanowiliśmy podzielić cały proces wdrożenia na etapy:

  1. Stare i nowe wersje sklepu działające w trybie “tylko do odczytu”.
  2. Migracja danych.
  3. Sukcesywne uruchamianie funkcjonalności zmieniających stan systemu (tworzenie nowych kont, tworzenie kuponów, bezpośredni zakup itd.).

Nowy system powstał w czasie doskonałej współpracy z firmą Thought Foundry. Wielkość projektu wymusiła ścisły podział obowiązków dla każdej z drużyn. W TEONITE byliśmy głównie odpowiedzialni za frontend i integrację systemu, a konkretnie:

  • Integrację backendu z odsłoniętym API, który był krytycznym elementem całego projektu, umożliwiającym integrację innych aplikacji, np. związanych z Smart TV lub Windows oraz:
    • wdrażanie zarządzania płatnościami - w oparciu o Braintree Payments,
    • integrację całości z systemem podatkowym,
    • integrację systemu w celu wysyłania zamówień fizycznych, np. płyt DVD;
  • Budowę zaplecza, które realizowało dwa zadania:
    • wspierało dział obsługi klienta w pozyskiwaniu niezbędnych danych i w obsłudze użytkowników,
    • zarządzało katalogiem produktów;
  • Budowę aplikacji internetowej - frontend sklepu dla klienta końcowego.

Stos procesowy i technologiczny

technology_stack

Największym wyzwaniem dla nas okazały się wymagania, które musieliśmy wdrożyć w ciągu bardzo krótkiego czasu - zaledwie czterech miesięcy:

  • integracja danych - połączenie sklepu z UltraViolet i pobieranie wszystkich metadanych,
  • integracja z serwerem streamingowym, bramką płatniczą, usługą naliczania podatków, systemem magazynowym, systemem dostarczania poczty e-mail itd.,
  • niedostrzegalne i w pełni efektywne zastąpienie systemu, tak aby użytkownik nie wiedział o zmianie,
  • pisanie kodu odpornego na zmiany,
  • budowa sklepu, w którym tylko użytkownik z danego kraju może dokonywać zakupów.

Do tego użyliśmy:

  • Python 3.6 - Sanic - bazowaliśmy głównie na jego asynchronii - serwer działał sprawnie, nie blokując wielu operacji IO,
  • Django - wybraliśmy Django, ponieważ uważamy, że ma najlepszy system migracji i zarządzania dla wszystkich relacji w bazie danych,
  • JavaScript - ECMAScript 6,
  • React 16 - pozwolił rozpoznać różnice między starym a nowym stanem i szybko przeładować całość, dzięki mechanizmowi grupowania i wykonywania operacji według priorytetów.

"Magia tego projektu polega na tym, że w ciągu czterech miesięcy stworzyliśmy system zintegrowany z trzema klientami, zapleczem i ogromną bazą użytkowników"

Łukasz, Senior Developer TEONITE

Wszystkie ręce na pokład

hollywood

Praca dla firmy z drugiej setki Fortune 500 była dla nas niesamowitym wyzwaniem. Projekt był naprawdę ogromny, a mieliśmy tylko cztery miesiące na jego wdrożenie. W ciągu tego czasu, trzy rzeczy pomogły nam dostarczyć ostateczną wersję sklepu: doskonała współpraca, świetne wsparcie i idealna komunikacja z resztą rozproszonego po całym świecie zespołu.

Zespół TEONITE pomógł w budowie bardzo złożonego projektu korporacyjnego. Pracując wspólnie, osiągnęliśmy sukces. To dowodzi, że są wykwalifikowani w tym, co robią i dobrze zintegrowali się z naszym zespołem podczas całego projektu.

Timur Insepov, CEO Thought Foundry

Kilka zespołów, rozproszonych po całym świecie, pracowało nad tym projektem. Najwyższa trudność była spowodowana różnicą czasu - praca wymagała znacznie bardziej przemyślanego planowania i monitorowania szybkości reakcji. Komunikowaliśmy się między Polską, Wielką Brytanią, USA i Norwegią, wykorzystując znane i powszechne narzędzia IT: Jira, Gitlab, Skype. Technologia działała tutaj bez zarzutu, czasem nawet pomagając nam przyspieszyć pracę - gdy jeden zespół odzyskiwał siły, reszta wykonywała swoje zadania, a cała maszyna posuwała się naprzód.
Można powiedzieć, że praca trwała 24 godziny na dobę.

Nieustanne rozwijanie umiejętności

Uwielbiamy się uczyć i zawsze wyciągamy wnioski z każdego projektu - tak pracujemy w TEONITE. Tym razem nauczyliśmy się:

  1. Pracować z bardzo rozproszonym zespołem, rozdzielonym przez strefy czasowe. Na szczęście technologia komunikacyjna jest tak rozbudowana i bogata w narzędzia, że ​​łatwo jest zdalnie zbudować zaawansowany system, bez potrzeby bezpośredniego kontaktu.
  2. Zasada YAGNI nie zawsze działa. W tym przypadku kluczem do zbudowania projektu było patrzenie w przyszłość i uwzględnianie założenia "Tak, będziesz tego potrzebować". Dlaczego? Bo wymagania bardzo dynamicznie sie zmieniały i musieliśmy zbudować system który pozwalał wprowadzać te modyfikacje w łatwy sposób.
  3. Każdy udany projekt jest przepustką do kolejnych ekscytujących wyzwań. Tym razem naszym "przepustką" była platforma UltraViolet (stworzona dla Universal Studios, Sony Entertainment Pictures, Warner Bros. Entertainment itp.).

Wnioski na przyszłość wyciągnięte. Zadanie zostało wykonane.

click to subscribe
hire us

Let’s talk about Mobile Apps

We’d love to design, develop and release them for you.

Highest DevOps Standards

Our team wield the right skills to make things work.

Angular magic in the making

Most flexible development technology for stunnig results.

Web Apps cooked the right way

The ultimate combination of code, design and user experience.

Django REST Framework

TEONITE develops, supports and donates open source projects.