Zbierz odpowiednich ludzi skupionych wokół konkretnego celu. Historia Pawła Jędrzejewskiego
Dlaczego warto swój projekt udostępnić społeczności? – Jest sporo zalet (i wad też się kilka znajdzie) kontrybuowania do Open Source. Po pierwsze, dostajesz coś za darmo i wiele osób ma zdrowe poczucie, że chcieliby jakoś się odwdzięczyć – powiedział nam Paweł Jędrzejewski, CEO Sylius – platformy eCommerce.
Poznajcie historię projektu open source, który przez lata nie zarabiał, a nad którym dziś pracuje blisko 20 osób. Z rozmowy z Pawłem dowiecie się m.in. o tym, jakie korzyści, a jakie wady przynosi praca nad projektem open source oraz jak od strony biznesowej wygląda rozwijanie takiego projektu.
Spis treści
Sylius – platforma eCommerce – historia projektu
Jaki problem rozwiązuje Sylius?
W najprostszym rozumieniu Sylius jest platformą eCommerce, a więc silnikiem, na którym można zbudować swój sklep internetowy. W nieco szerszym ujęciu, Syliusa często nazywa się frameworkiem, gdyż zapewnia technologiczną bazę i zestaw metodologii pomagających firmom i ich zespołom IT (wewnętrznym lub zewnętrznym) budować średnie i większe systemy eCommerce. Budujemy go z myślą o produktywności developerów i architekturach zawierających wiele integracji takich jak CRM, PIM, ERP, w których Sylius jest kluczowym puzzlem większej układanki.
Skąd pomysł na jego powstanie? Jak wyglądały początki Syliusa?
Około 10 lat temu moja mama Sylwia i jej siostra Justyna sprzedawały kosmetyki na Allegro. Był to mały biznes z kilkoma zamówieniami tygodniowo. W pewnym momencie zaczęły myśleć o własnym sklepie internetowym i ja jako licealista oraz zapalony młody programista zbudowałem im prosty sklep od podstaw w PHP i MySQL, inspirując się frameworkiem Symfony 1.x.
Główny dostawca kosmetyków z Francji sam wszedł na rynek, więc ten biznes niestety został zamknięty, a ja zostałem z kodem i nazwą – Sylius. Zbudowałem jeszcze kilka sklepów dla rodziny i klientów złapanych przez Gadu-Gadu (!), ale utrzymywanie i aktualizowanie kilku sklepów na własnym frameworku pisanym “od 0” było dość uciążliwe. Zrobiłem research gotowych rozwiązań takich jak PrestaShop czy Magento, ale były zbyt skomplikowane na moje potrzeby (wtedy) i nie był to kod, którego chciałem się uczyć. Na szczęście pojawił się wtedy mały pomarańczowy baner na stronie projektu Symfony – mówiący o Symfony 2 Reloaded. Jest to framework dużo bardziej przypominający programowanie w Javie, obiektowo, z jakąkolwiek myślą architektoniczną.
Przepisałem sklep jednego z klientów (sklep z dywanami wujka) na nową wersję Symfony i zainspirowany ich społecznością – udostępniłem go jako Open Source na GitHub jako zestaw komponentów dla eCommerce (osobne biblioteki na koszyk, podatki, wysyłki, itp.).
Ile czasu zajęła praca nad pierwszą publiczną wersją?
Przepisanie pierwszego sklepu na Symfony zajęło mi raptem kilka tygodni, natomiast droga do pierwszej stabilnej wersji 1.0.0 (obecnie wychodzi wersja 1.7) była długa. Dopiero w 2013 roku, kiedy pracowałem zdalnie jako programista Symfony dla francuskiej agencji, zaczął powstawać protoplasta produktu, którym teraz jest Sylius. Integracja zestawu komponentów w działający sklep B2C była prosta, ale jednak dość powtarzalna, więc zacząłem budować (już z kontrybutorami Open Source z całego świata), platformę eCommerce, która korzystała z tych komponentów. Potem był software house, gdzie zwerbowana była duża część ekipy pracującej obecnie nad Syliusem. Dopiero w 2017 otagowaliśmy wersję 1.0.0, więc można powiedzieć, że cała droga od pierwszego commita do tagu 1.0.0 trwała około 4 lat.
Czym kierowałeś się przy tworzeniu pierwszej wersji? Z czego zrezygnowałeś, a z czego nie i dlaczego?
Chciałoby się powiedzieć, że kierowałem się jakąś wielką wizją, tak rozbudowaną jak obecna, natomiast prawda jest taka, że kierowałem się tym co sprawiało mi frajdę jako developer i oczekiwaniem minimum funkcjonalności aby zbudować system, który sprzedaje online. Pierwsze projekty były standardowymi sklepami B2C, ale nie brakowało sprzedaży biletów, małych lokalnych grouponów, itp. To ukształtowało Syliusa jako platformę do sprzedaży online, a nie tylko system pod “sklep internetowy”.
W wersjach 0.14 – 0.17 była masa funkcjonalności, którą usunęliśmy przed wydaniem wersji beta w 2016. Głównie funkcjonalności zaimplementowane bez testów (obecnie Sylius jest pionierem BDD i Test-Driven-Development wśród platform Open Source) oraz niestety też kilka funkcji zakontrybuowanych przez społeczność Open Source, w czasach kiedy brakowało spójnej wizji produktu i jeśli ktoś coś zrobił – wydawało się to fajne i kod był zbliżonej jakości – to mergowaliśmy.
W finalnej wersji zostały tak naprawdę kluczowe elementy, katalog produktów, koszyk, checkout, struktura zamówień, sprzedaż wielokanałowa i tyle. Dopiero później dodawaliśmy i do dziś dodajemy więcej funkcjonalności marketingowych itp. Chcieliśmy się skupić na stabilnym core i do dzisiaj klienci wybierają Syliusa właśnie dlatego. Nie mamy każdego marketingowego fajerwerka, ale w średnich i dużych projektach, to solidna podstawa nabiera dużo większego znaczenia, a funkcjonalności marketingowe, czy analityczne zapewniają integracje z narzędziami typu CRM czy BI.
Zespół – budowa, zarządzanie, holakracja
Holakracja to system odrzucający klasyczny model działania firmy, bazujący na przełożonych różnego szczebla oraz istniejących w tym samym kształcie stanowiskach i działach. Holakracja skraca ścieżkę decyzyjną oraz zrzucanie odpowiedzialności na inne osoby. System ma efektywniej wykorzystywać potencjał i umiejętności.
Na jakim etapie do Syliusa dołączyli kolejni programiści?
Już w roku 2011 kontrybuowali ludzie z całego świata, ponieważ Symfony 2 dopiero wtedy ruszało i Sylius był jednym z kilku projektów eCommerce powstałych wew. tej społeczności. Wspominam do dziś niektóre wiadomości: “Hej, tutaj senior developer z 20th Century Films, zbudowałem z Twoich komponentów prosty sklep B2B w 30 dni”. Jeden z pierwszych i głównych kontrybutorów (we wczesnych dniach) pochodził z Serbii, ale pojawili się nawet ludzie z Nepalu i Kuby.
Pierwszy core team składał się z ludzi z USA, Francji, Serbii, Polski i chyba jeszcze kilku krajów. Obecny core team, który w 2016 przebudował od podstaw to co stworzyłem jako programista razem z community, powstał w software house, który założyłem w 2014. Obecnie mamy ponad 600 kontrybutorów z całego świata, natomiast core produktu powstaje w naszym Scrumowym teamie wewnętrznym w Łodzi.
Dlaczego dołączyli właśnie do Syliusa, projektu open source, który na początku nie zarabiał?
Jest sporo zalet (i wad też się kilka znajdzie) kontrybuowania do Open Source. Po pierwsze, dostajesz coś za darmo i wiele osób ma zdrowe poczucie, że chcieliby jakoś się odwdzięczyć. Natomiast tutaj spoiler – nie wszyscy. Większość, jeśli nie wszyscy członkowie pierwszego core team, znalazło w ten sposób super prace w świetnych firmach. Można się też wiele nauczyć, bo ogromna liczba innowacji (szczególnie tech webowych) powstaje na bazie lub w sercu projektów Open Source. Jest to niekończące się źródło nowinek i wiele pomysłów, które sprawiają, że Sylius jest jaki jest, pochodzi od kontrybutorów lub inspiracji z innych projektów o otwartym źródle.
Ile osób dziś liczy zespół Sylius?
W firmie Sylius mamy obecnie 17 stałych współpracowników, pracujemy z biura w Łodzi, ale czasem też zdalnie z Tajwanu (pozdrawiamy Kamila). W drugim kwartale, gdy dookoła huczało od informacji od zwolnieniach spowodowanych korona-kryzysem, dołączyło do nas w sumie 6 osób, w tym dwóch programistów. Nie jest to ostatnia rekrutacja w tym roku, aktywnie poszukujemy Product Ownera oraz Marketera B2B. Poza tym oczywiście Syliusa współtworzy społeczność Open Source, gdzie na naszym oficjalnym Slacku jest już ponad 3.300 użytkowników. Budujemy też sieć partnerską firm wdrożeniowych i partnerów technologiczny, w której jest już około 45 firm z całej Europy i świata, w tym tak uznane marki jak PayPal.
W jaki sposób organizujecie swoją pracę?
W 2018 wdrożyliśmy framework do samoorganizacji – Holacracy i do dziś z niego korzystamy. Każdy współpracownik w organizacji może wypełniać wiele ról oraz być częścią wielu zespołów (kręgów) jednocześnie. Zrywamy z tradycyjną hierarchią pracodawca – pracownik, tzn. nie wydajemy rozkazów, tylko prosimy się wzajemnie o projekty i negocjujemy. W procesach zespołowych zmieniamy strukturę i ustalamy strategię. Sporo czasu poświęcamy na pracę nad kulturą organizacyjną, co jest dużo wydajniejsze niż narastająca liczba reguł, skomplikowanych procesów i upierdliwych szefów.
Marketing i model biznesowy
Jak promowałeś projekt, by zdobył zainteresowanie?
Jakiś czas temu coś mnie podkusiło, żeby wrócić do pierwszych postów na naszym koncie Twitterowym (które ma teraz 6.500+ obserwujących) i znalazłem tam sporo aktualizacji z pierwszych dni i tygodni projektu. Zdecydowanie Twitter był głównym kanałem marketingowym i komunikacyjnym, w celu dotarcia do developerów. Pomogło też, a wręcz było kluczowe, bycie częścią innego ekosystemu – Symfony. Już te pierwsze tweety były udostępniane przez tytanów społeczności Symfony oraz samego PHP, co zdecydowanie pomogło z dotarciem do pierwszej niszy. W 2013 zrobiłem też pierwszą prezentację przed 300 developerami na Symfony Camp w Kijowie, co rozpoczęło serię prezentacji w całej Europie na konferencjach oraz meetupach Symfony i PHP. W rekordowym roku zrobiłem ich chyba około 20. Jednym słowem – community.
Na czym zarabia Sylius? Kiedy udało się pozyskać pierwszego partnera/klienta?
Pierwsi klienci pojawili się już na samym początku. Sylius i Open Source pomogły mi też zdobyć pracę z jednymi z najlepszych programistów Symfony. Pierwsi partnerzy byli z nami już na początku 2017, natomiast w 2018 program partnerski urósł od 0 do 20 oficjalnych partnerów. Pierwsi klienci na wersję komercyjną pojawili się dopiero w końcówce 2019, po kilku miesiącach od ogłoszenia nowego modelu. Natomiast w styczniu 2020 wygraliśmy pierwszy duży przetarg razem z partnerem dla lidera mid-marketu we Francji. Nie było łatwo, bo konkurentami były ogromne koncerny (np. ten od Photoshopa) z USA.
Na czym zarabia Sylius zmieniało się w czasie, ale myślę, że dam radę to dość dobrze podsumować na przestrzeni ostatnich lat:
- 2010 – 2011 – na niczym,
- 2012 – 2014 – moje wynagrodzenie w agencji,
- 2014 – 2016 – wdrożenia, sponsoring od kluczowych klientów i okazyjne szkolenia w ramach software house,
- 2017 – 2018 – nadal częściowo wdrożenia, ale też regularne szkolenia, konsultacje oraz sieć partnerska i firmy sponsorujące,
- 2019 – 2020 – licencja Sylius Plus (wersja komercyjna), szkolenia, konsultacje, sieć partnerska, kurs online, etc.
Jest to mocne uproszczenie, bo wydarzyło się wiele rzeczy w ciągu tych lat, ale myślę, że może dawać jakiś obraz/inspirację do modelu biznesowego w Open Source.
Dziś Sylius jest rentownym projektem?
Od samego początku Sylius budowany jest bez zewnętrznego VC i mimo gorszych okresów (głównie w momencie przejść między jednym modelem biznesowym, a drugim), mogę śmiało powiedzieć, że jest rentowny. Model biznesowy, który wdrożyliśmy w 2019 jest zdecydowanie najlepszym i otwiera przed nami sporo możliwości, natomiast z naszej perspektywy rentowność i profit są jedynie środkami do celu. Budujemy organizację for-purpose, a nie for-profit, czy non-profit.
Czy utrzymanie projektu jest dla Ciebie uciążliwe (czy dużo bugów/propozycji zgłaszają użytkownicy i czy wymaga to dużo pracy ze strony autora projektu open source, aby utrzymać rozwój projektu na bieżąco)?
Przyznam szczerze, że od dobrych dwóch lat (od wersji stabilnej), nie jestem chyba najlepszym adresatem tego pytania, ponieważ skupiam się na części biznesowej Syliusa. W ramach naszej struktury, to krąg budujący produkt odpowiada za kontakt z community. Moja perspektywa z boku jest taka, że community jest niekończącym się źródłem zgłoszeń i Pull Requestów (PR). Bez tego feedbacku nie bylibyśmy w stanie budować generycznego produktu, używanego na całym świecie przez wszystkie możliwe biznesy sprzedające online.
Ile procent czasu poświęcacie na testy? W jaki sposób organizujecie je?
Nie mamy takiej metryki, bo shackowaliśmy system i testy stały się częścią procesu developmentu, a nie osobną upierdliwą czynnością. Myślę, że jest bezpiecznym powiedzieć, że jesteśmy pionierami Behavior-Driven-Development w eCommerce. Jest to ewolucja TDD, gdzie zamiast najpierw kodzić, a potem się głowić czy działa, to piszemy specyfikację (na poziomie unitowym lub całej aplikacji), jakiego zachowania oczekujemy, i pod to piszemy kod. Testy automatyczne są efektem ubocznym. Stąd metryki jak code coverage czy budżet na testy nie do końca mają sens. Każdy commit do Syliusa przed mergem przechodzi automatycznie (< 30 min.) przez ponad 1.200 scenariuszy Behata oraz tysiące specyfikacji PHPSpeca oraz testów w PHPUnit. Z tego co wiem od zespołu, to nie jesteśmy jeszcze w pełni zadowoleni z organizacji tych testów (nie osiągnęliśmy idealnej piramidy i ekonomii testów) – zawsze wychodzimy z założenia, że coś można poprawić.
Co mogłoby pomóc w rozwoju Twojego projektu?
Wszystko co zbudowaliśmy do tej pory było robione z praktycznie zerowym budżetem na typowy marketing/PR, a nawet nasze działania społecznościowe były często niedofinansowane (albo finansowane z prywatnych pieniędzy pasjonatów) – w tych dwóch obszarach jest wiele do zrobienia. Ostatnio ekscytuje mnie model Orbit, który postaramy się wdrożyć do budowania naszej społeczności deweloperów. Mój drugi focus to właśnie marketing i dotarcie z naszym produktem i historią do szerszego grona – myślę, że mamy coś ciekawego i wartościowego do pokazania.
Czym praca nad projektem open source różni się od pracy nad projektem np. dla klienta?
Masz wielu użytkowników i niektórzy kontrybuują pomysłami, kodem a niektórzy finansowo. Najtrudniejsze wydaje się być bilansowanie aktywności przynoszących mierzalny zysk oraz tych, które rozbudowywują naszą społeczność. Do tej pory, kiedy jeden z tych obszarów rósł, to drugi zwalniał, ale czuję i wierzę, że jesteśmy blisko złapania dobrego rytmu w obu tych obszarach. Wierzę, że budując organizację for-purpose, nie ma między nimi konfliktu interesu – wymagają trochę innowacji.
Czy masz plan na to, czym będzie Sylius za rok, dwa czy pięć lat?
W kontekście tego jaką organizację i produkt chciałbym rozwijać, te perspektywy czasowe są dość krótkie. A z planami jest tak, że z roku na rok wymagają większej szklanej kuli bo świat się zmienia coraz szybciej. Myślę, że sytuacja z COVID-19 pokazała to dobitnie. Jedną z metryk, na którą zwracamy uwagę poza tymi finansowymi, jest liczba sklepów internetowych opartych o Syliusa i szacowana całkowita wartość transakcji, która jest przez nie procesowana. Obecnie szacujemy, że jest to około 4.5 miliarda złotych rocznie.
Chciałbym, aby za 5 lat ta liczba była znacznie większa, a sam Sylius jako organizacja, był dowodem, że można pracować inaczej niż nam się wydaje i budować firmy z pozytywnym wpływem na świat.
Czego nauczyło cię stworzenie tego projektu i praca nad nim?
Jednym z powodów, dla których zdecydowałem się być przedsiębiorcą, jest to, że pozwala mi się to rozwijać holistycznie i być wszechstronnym. Więc najlepsza odpowiedź jaka przychodzi mi do głowy to: wszystkiego. Myślę, że w przypadku turkusowych organizacji jest to tym bardziej prawdziwe, że tego typu kultura pozwala być spójnym w życiu “prywatnym” i “zawodowym”, nie nosząc masek i wykorzystując wiedzę i doświadczenie z obu tych obszarów. Coś, co moim zdaniem łączy Holacracy i Open Source, to to, że jeśli zbierzesz odpowiednich ludzi wokół odpowiedniego celu/sensu, małego lub dużego, to dzieje się magia.