Najciekawsze są projekty, w których rozwiązuje się prawdziwe problemy. Sweetdeal to udany projekt Sii Polska
Najciekawsze są projekty, w których rozwiązuje się prawdziwe problemy klientów. Największe wyzwanie to zachowanie ciągłości biznesowej, a równocześnie umożliwienie klientowi korzystania z najnowszych technologii. Sii dokonało tego w przypadku budowy i rozwoju nowej platformy e-commerce dla marki Sweetdeal.
W trakcie pracy z utalentowanymi inżynierami zajmującymi się oprogramowaniem: architektami, programistami, inżynierami jakości, często staje się przed wyzwaniem dostarczenia im takich projektów, które będą odpowiadały ich aspiracjom. Można by zadać pytanie: a jaki istnieje w tym zakresie wybór? Przecież projekty, które realizowane są przez firmy, zależą od potrzeb klientów i rynku. To prawda, pozostaje jednak wybór sposobu realizacji.
Pracując nad rozwiązaniem dla największej duńskiej platformy zakupów grupowych Sweetdeal, Sii użyło kilku technologii, które mogą się wydać ciekawe dla poszukujących pracy programistów.
Oto kilka rzeczy, które mogą zachęcić specjalistów do pracy nad projektami Sii.
Najważniejszymi aspektami są tematyka projektu i wykorzystywane technologie. Równie istotny jest także odpowiedni sposób realizacji projektu. Inżynierowie wolą zazwyczaj projekty realizowane metodykami zwinnymi (agile). Umożliwiają one tworzenie oprogramowania na zasadzie iteracyjno-przyrostowej, przy częstszej publikacji działającego wyniku. Programiści to lubią, bo w zasadzie od początku zajmują się czymś, co można uruchomić i przetestować. Zwinne podejście jest też lepsze dla zespołów, dostarcza odpowiedniej motywacji, a co najważniejsze, daje poczucie samodzielności i brania odpowiedzialności za zadania swoje i zespołu.
Społeczność Magento
Magento należy do najpopularniejszych open source’owych rozwiązań komercyjnych do budowania cyfrowych systemów zakupowych. Jest to rozbudowany sklep internetowy, a dzięki temu, że kod jest otwarty, społeczność Magento może wzbogacać go w wiele ciekawych i zaawansowanych funkcji.
Opierając się na Magento można budować rozwiązania e-commerce dla tradycyjnych sklepów online, wspierać sprzedaż w fizycznych sklepach, tworzyć Progressive Web App (PWA) czy rozwiązania business-to-business.
Już na etapie rekomendacji docelowej platformy e-commerce dla SweetDeal rozważaliśmy kilka wariantów, ostatecznie postawiliśmy na dojrzałe rozwiązanie: Magento 2. Wybór ten pozwolił na wykorzystanie standardowych rozwiązań i skupienie się na punktach krytycznych z biznesowego punktu widzenia – mówi Marcin Kozłowski, Service Delivery Manager z Centrum Kompetencyjnego Digital w Sii.
Często platformy sprzedażowe mają trudności z obsługą klientów w czasie dużych kampanii promocyjnych lub sezonowych działań. W przypadku realizacji tego projektu obsługa niejednorodnego ruchu i jednocześnie optymalizacja kosztowa infrastruktury stanowiła wyzwanie. Sprostano mu, budując sklep w oparciu o usługi Amazon Web Services.
Co jest ciekawego w Magento dla programisty?
Przede wszystkim jest to okazja do poznania najbardziej rozpowszechnionego narzędzia e-commerce. Magento daje możliwości dostosowania i budowania własnych rozwiązań dzięki modelowi EAV (Entity Attribute Value). Jako framework, łączy ze sobą zarówno Symfony, jak i Zend, więc osoby obeznane w ww. frameworkach poczują się jak w domu.
Kolejną zaletą jest jego duża elastyczność pod względem integracji z zewnętrznymi rozwiązaniami. Przez REST API, webservice, soap, mamy warstwę abstrakcji i interfejsy. Do tego mamy wsparcie Elastica, Service Contacts, RabbitMQ. Magento może być silnikiem, ale na nudę nie można narzekać – wyjaśnia Patryk Święczkowski, Technical Leader w Sii.
Co może zachęcić developerów do korzystania z Magento? Fakt, że jest to rozwiązanie open source, z dużym wsparciem społeczności i że znajomość tego narzędzia jest poszukiwana na rynku pracy.
Wykorzystywana w projekcie SweetDeal wersja Magento 2 powraca po kilku latach do łask dzięki swojej obiektowości i wsparciu dla dobrych praktyk.
Kluczowym zadaniem była integracja Magento 2 z ERP Salesforce, wymiana danych dotyczących produktów: stany magazynowe, ceny, statystki sprzedażowe czy też dane klientów. W tym obszarze wyzwaniem było poznanie słownictwa używanego przez różne działy obsługi klienta oraz przełożenie tego na język przetwarzalny przez e-commerce. Rozmawialiśmy o całej gamie produktów, w różnych wariantach, konfiguracji, różnych procesach sprzedaży. Zwinne podejście i świetna komunikacja z klientem pozwoliła sprawnie obsłużyć ten element wdrożenia - komentuje Marcin Kozłowski.
Rozwiązania kontenerowe (Docker)
Docker jest wiodącym rozwiązaniem kontenerowym na rynku. Ale zacznijmy od początku! Jaką rolę pełni kontener (ang. container) w projekcie SweetDeal??
W tym projekcie pracujemy na skonteneryzowanym Magento. Pozwala nam to usprawnić proces wydawania nowej wersji aplikacji dzięki temu, że developer może dosyć wiernie odwzorować środowisko produkcyjne. Już na etapie wytwarzania oprogramowania mamy zatem elementy integracji i sprawdzenia, czy coś będzie działało w rzeczywistych warunkach – mówi Marcin Kozłowski.
Tego typu podejście jest wyjątkowo lekkie, szybkie i bezpieczne, nic więc dziwnego, że rozwiązania kontenerowe zdobywają sobie coraz większą popularność i zdają się być przyszłością dystrybucji oprogramowania.
Jakie są zalety Dockera z punktu widzenia programisty? Możliwość zabawienia się w DevOps-a i budowania własnego środowiska bez większego wysiłku związanego wcześniej np. z konfigurowaniem maszyn wirtualnych.
Studio badań rynkowych 451 Research przewiduje, że użycie technik kontenerowych będzie rosło z prędkością 40% rocznie. Nie ma wątpliwości, że “kontenery” wspierają szybki rozwój oprogramowania. Jednak ich opis brzmi bardzo podobnie do definicji maszyny wirtualnej. Czym właściwie te dwa podejścia się różnią od siebie? Miejscem izolacji: w przypadku maszyn wirtualnych całość systemu jest umieszczona w każdej z nich. W przypadku kontenera zawarta jest w nim jedynie aplikacja – wszystkie usługi systemowe zapewnione są przez środowisko uruchomieniowe.
Migracja
Największym wyzwaniem i jednocześnie zagrożeniem wpływającym na powodzenie projektu była migracja danych ze starego systemu. Kilka istotnych elementów, takich jak spełnienie wymagań RODO, import kilkudziesięciu tysięcy produktów, kilkuset tysięcy użytkowników, stworzenie właściwych powiązań, odtworzenie zamówień liczonych w miliony tak, żeby były używalne i podlegały ustandaryzowanym procesom w nowej wersji backoffice, wpływało na termin dostarczenia rozwiązania.
Pierwotne rozwiązanie zakładało 40 dni importu tych danych, ale zespół developerski wykonał bardzo dobrą pracę i czas ten został skrócony do kilku dni – podsumowuje Marcin Kozłowski.
Przyszłość to praca nad rozwojem istniejących systemów
Zgodnie z przewidywaniami analityków rynku (TechRepublic: How programming will change over the next 10 years: 5 predictions), każdy programista wkrótce będzie musiał umieć pracować z istniejącymi danymi klienta - prawdopodobnie będzie tworzył nową wersję systemu dla istniejącego już biznesu, który nagromadził już przez lata dane. Umiejętność ich wykorzystania i migracja do nowego systemu będzie bardzo ceniona. Warto nabyć ją już dziś.
Więcej o projektach Sii i Centrach Kompetencji czytaj na stronie: https://sii.pl/projekty/
* Partnerem tekstu jest Sii Polska