25 maja, 2017

Tworzymy fundamenty eEngine już od dziesięciu lat. Wraz ze zbliżającą się okrągłą rocznicą firmy wytyczyliśmy nowy kierunek, w którym zmierza eEngine. Piwotujemy!

Skąd jesteśmy i dokąd zmierzamy

Historia eEngine zaczęła się od platformy sklepowej. Było to oprogramowanie dla eCommerce, działające w modelu SaaS. Platforma przez większość czasu działała pod marką eCommerce24h. Zdecydowaliśmy się zamknąć ten produkt na początku 2017 roku. Zrezygnowaliśmy z tego rozwiązania ze względu na jego masowy charakter, który okazał się niezgodny z naszą filozofią komunikacji z klientami i kulturą pracy. Innymi słowy chcieliśmy poskramiać większe potwory i mocniej przytulać klientów, którzy zdecydują się na współpracę z nami.

W temacie eCommerce próbowaliśmy zaprzyjaźnić się z Magento. Jednak na chwilę obecną ten system ma zbyt wiele wad, a dalsze podążanie tą drogą nie będzie przyjemne ani dla klientów (koszty), ani dla deweloperów (technologiczne dysfunkcje Magento). Przy okazji jednego z wdrożeń Magento stworzyliśmy Perseids.io, szybki i autonomiczny front dla sklepów internetowych. Doświadczenia użytkownika klikającego po Perseidowym sklepie są nie do opisania. Najczęstszym komentarzem jest “WOW” w kontekście szybkości działania strony. Nasza koncepcja produktu okazała się słuszna. Każdy może się przekonać o tym na własne oczy, robiąc zakupy w ManyMornings.com.

Dylematy biznesowe i technologiczne

Stanęliśmy jednak przed sporym dylematem: co dalej nowymi wdrożeniami? Jak będziemy rozwijać systemy naszych aktualnych klientów? Magento nie wpisało się w naszą rzeczywistość, a Perseidy były “tylko” frontem sklepowym. Z kolei pisanie każdej aplikacji od zera byłoby wyważaniem otwartych drzwi oraz nie dawałoby konkretnej wartości dla firmy.

W świetle powyższego, podjęliśmy jedyną i słuszną decyzję. Pracujemy nad namacalnym produktem, który umożliwi nam mądre tworzenie i rozwijanie aplikacji dla biznesu. Zapewni nam też stabilne warunki do budowania silnego zespołu.

Wiemy, że takim produktem będzie system eCommerce oparty o architekturę mikroserwisów i jak zapewne się domyślacie Perseids.io będą jego częścią.

Dlaczego mikroserwisy

Co było kluczowe przy wyborze tego rozwiązania?

  1. Biorąc pod uwagę rzeczywistość, w której funkcjonujemy jako software house, rozwiązanie monolityczne ograniczyłoby plastyczność tworzenia nowych systemów, a zanim mvp ujrzałoby światło dzienne cały koncept mógłby się już zestarzeć.
  2. Mikroserwisy pozwalają nam na rozbudowę aktualnych systemów naszych klientów o nowe funkcje, tu i teraz. Raz utworzony mikroserwis może być użyty uniwersalnie bez względu na technologię, w której napisany jest jego system.
  3. W ten sposób chcemy budować naszą przewagę konkurencyjną i uporządkować technologiczny chaos (wiele systemów i technologii), w którym od jakiegoś czasu funkcjonujemy.

Najlepsze dopiero przed nami

Przekładając na konkrety wizję firmy: jakie są nasze najbliższe plany na przyszłość?
Jeśli chodzi o języki programowania zdecydowaliśmy się zostać w dwóch głównych technologiach. To jest PHP oraz Ruby on Rails. W ramach zespołu wyłoniliśmy czterech Team Leaderów, którzy będą odpowiedzialni za kluczowe obszary technologiczne.

W kolejności stażu pracy w eE Team Leaderami są:

  • Adam – Tech Leader kluczowych projektów eCommerce, Team Leader zespołu opiekującego się projektami działającymi na naszym platformowym oprogramowaniu. Każdy z tych sklepów obecnie funkcjonuje na oprogramowaniu dedykowanym, rozwijanym w ramach indywidualnej ścieżki rozwoju. Adam to niekwestionowany mistrz najbardziej wymagających zadań na frontendzie oraz sucharów.
  • Krzysztof – dla dobra firmy nie mogę zamknąć Krzyśka w jednej technologii ponieważ jego niesamowita moc rozwiązywania problemów programistycznych jest potrzebna w przeróżnych projektach. Krzysiek rozwiązuje te problemy grając jednocześnie w Tetris na komórce. Chcę, żeby każdy programista mógł liczyć na jego wsparcie, jeśli tylko zajdzie taka potrzeba. Mając kompetencje Krzysztofa na pokładzie firmy śpię spokojnie.
  • Bartek – Team Leader zespołu Ruby on Rails (RoR). O osobach takich jak Bartek bardzo często mówi się, że są cichymi mistrzami. Bartek to taki programista, który nie zbiera oklasków za hotfixy na produkcji projektów, które oddaje w ręce klientów. Dzieje się tak, bo jakość jego pracy jest na tyle wysoka, że te bugi pojawiają się niezwykle rzadko. Pracuje w ciszy, ale efekty jego pracy robią hałas.
  • Beniamin – będzie nie tylko Team Leaderem zespołu PHP, ale przede wszystkim głównym architektem naszych mikroserwisów. Ci, którzy mieli okazję pracować z Beniaminem wiedzą, jaką uważność przykłada do jakości oprogramowania, czemu towarzyszy refleksja nad biznesowym sensem wytwarzanych rozwiązań. Beniamin bierze na siebie wyzwanie w postaci zaprojektowania systemu i sukcesywnego wdrażania go w życie. Kiedyś zapytałam Krzyśka: ”Dlaczego Beniamin nie ma żadnego sprzętu (poza laptopem i myszką)?” patrząc na puste biurko Beniamina. Krzysiek na to odpowiedział “On tego nie potrzebuje. On ma wszystko w głowie”. To chyba najmilsza rzecz jaką Krzysiek powiedział o kompetencjach kogokolwiek. Ever.

Co się będzie dziać dalej w aktualnych projektach?

W miarę bieżących potrzeb, we wszystkich wspieranych przez nas projektach, będziemy realizować czy też rozbudowywać nowe funkcje już jako mikroserwisy. Mikroserwisy będą realizowane w Symfony jak i w RoR.

Jak to będzie w przypadku zupełnie nowych projektów?

Opowiem na przykładzie nowego projektu realizowanego w RoR. TLem projektu będzie Bartek, najbardziej powtarzalne dla różnych systemów funkcje będą kodowane jako mikroserwisy, natomiast część specyficzna dla danego biznesu będzie typową aplikacją RoR.

Gdy w przyszłości będziemy realizować kolejne dedykowane rozwiązania dla biznesu, mikroserwisy, które powstały w ramach wcześniejszych wdrożeń będą do zastosowania od ręki. Tym samym nie wpływa na nas negatywnie monolityczna architektura tradycyjnych rozwiązań i związany z nią dług technologiczny.

Tym sposobem wytworzymy arsenał mikroserwisów, z których docelowo będziemy mogli skorzystać tworząc nowe systemy, czy też wpinając się w rozbudowane systemy innych klientów.

Czego Zespół eEngine może się spodziewać w najbliższym czasie? W związku z wprowadzeniem nowych narzędzi do firmy oraz zmianą filozofii jeśli chodzi o architekturę wytwarzanego oprogramowania będziemy przeprowadzać wiele szkoleń wewnętrznych, rozszerzających kompetencje twarde zespołu. Chcemy, aby szkolenia były 2, maksymalnie 3 osobowe, nastawione na aktywne zdobywanie i poszerzanie wiedzy.

Nowy wektor technologiczny, jaki obraliśmy dla eEngine, to ambitny, pełen wyzwań, a przede wszystkim bardzo ekscytujący, kierunek dla nas, jako firmy. Moce całego Zespołu są potrzebne do tego, żeby efekt końcowy ujrzał światło dzienne. Aktualnie wytyczona ścieżka jest najbardziej konkretną, klarowną i porywającą wizją firmy od dziesięciu lat jej istnienia!

Inne artykuły tęgo autora

Ania
29 grudnia, 2020
Ania
16 grudnia, 2020
Ania
19 maja, 2020