Duży wpływ na powstanie skryptu phpBB by Przemo miały gry. Historia Przemysława Matogi
Zaczęło się tradycyjnie. Atari 65 XE, “Bajtek” i przepisywanie kodu, później gry komputerowe, a wśród nich Counter Strike. Z niego wyszła potrzeba utworzenia forum dla graczy i tak powstał phpBB by Przemo. Dzisiaj Przemysław Matoga jest pomysłodawcą i współtwórcą platformy sklepów internetowych Sky-Shop.pl, która na pokładzie posiada ponad 35 pracowników.
Jak potoczyła się jego historia? Z jakimi problemami się mierzył w trakcie swojej kariery? Jakie ma złote rady dla początkujących CTO, którzy dopiero ruszają ze swoim projektem? O tym, ale nie tylko, rozmawialiśmy z Przemysławem Matogą.
Spis treści
Jak zaczęła się Twoja przygoda z programowaniem?
Można powiedzieć, że moje pierwsze kroki stawiałem w okolicach roku 1990 – miałem wtedy komputer Atari 65 XE, kupowałem w kiosku czasopismo “Bajtek” i przepisywałem z niego kod różnych śmiesznych i trywialnych programów, starając się z tego coś zrozumieć. Jednak, jako że byłem bardzo młody, wolałem skupić się na grach komputerowych. To one – jak się później okazało – przyczyniły się do moich sukcesów w karierze i powstaniu głównych projektów: Sky-Shop i phpBB by Przemo.
Skąd pomysł na phpBB by Przemo? Możesz opowiedzieć o tym projekcie?
Jak wcześniej wspomniałem – duży wpływ na powstanie skryptu phpBB by Przemo miały gry, szczególnie Counter Strike. Postanowiłem otworzyć własny serwer tej gry, który w krótkim czasie stał się bardzo popularny. Społeczność się rozrastała i dość szybko pojawiła się potrzeba stworzenia czegoś więcej. Uruchomiłem więc forum dla graczy oparte o mocno zmodyfikowane phpBB. Od tego czasu o Counter-Strike’u szybko zapomniałem i skupiłem się na rozwoju phpBB by Przemo.
Czego nauczyło Cię budowanie i rozwijanie phpBB by Przemo?
Wymieniając od początku: najpierw ze zdumieniem stwierdziłem, że programowanie jest proste. Wystarczy jedna odpowiednio włączona linijka kodu i już komputer robi coś dla Ciebie. To było niesamowite. Nie trzeba do tego zaawansowanej matematyki, znajomości zasad wykonywania operacji bitowych ani żadnej tajemnej wiedzy – jedna linijka tekstu i natychmiast widzisz efekt. Musisz tylko zacząć, a reszty dowiesz się sam. Ja tak właśnie zaczynałem. Nie miałem podstaw teoretycznych ani praktycznych. Bywało, że i w szkole miałem problem z matematyką! A jednak programowanie mnie fascynowało.
Dlatego myślę, że jeśli chcesz zostać programistą, bo słyszałeś, że warto albo że jest taka moda – to niestety, ale według mnie szanse na sukces są niewielkie. Natomiast jeśli Cię to fascynuje, a w dodatku masz ścisły umysł, matematyka Cię nie przeraża, jesteś dokładny i masz fantazję… to po prostu zacznij programować!
Wracając do głównego pytania – tworząc skrypt nauczyłem się też, że dokładność, wręcz pedantyczność, się opłaca. Myślę, że sukces phpBB by Przemo miał dwa główne źródła. Po pierwsze – dobrze czułem potrzeby użytkowników forów dyskusyjnych, a szczególnie ich administratorów, bo sam nim byłem. A po drugie – wszystko robiłem niemal pedantycznie. Każda funkcja musiała być dopracowana do perfekcji. Do tej pory, gdy przyjdzie mi coś programować, to po skończeniu siadam, delektuję się efektem, a zaraz potem długi czas zastanawiam, co jeszcze można dopracować. Krótkoterminowo taka strategia może spowodować, że projekt będzie trwał znacznie dłużej, jednak często wynagradzają to efekty długofalowe. Niejednokrotnie dobrze dopracowane oprogramowanie przebija konkurencję, która posiada więcej funkcjonalności. W phpBB by Przemo udało się uzyskać i jedno, i drugie, jednak rozwijanie skryptu trwało wiele lat.
Z jakimi trudnościami mierzyłeś się w tym projekcie? Ciężko było rozwijać tak wymagający projekt w latach, w których internet dopiero zaczynał się rozgaszczać w polskich domach?
Zacznę może od drugiej części pytania – to, że Internet dopiero zaczynał się popularyzować, bardzo pomogło temu projektowi. Dlaczego? Otóż, kiedy Internet był dostępny tylko dla geeków, to właśnie oni stanowili przeważającą część użytkowników forów internetowych. Trzymali odpowiednio wysoki poziom dyskusji, uważali, żeby nie napisać czegoś głupiego, bo zawsze mógł znaleźć się ktoś lepszy, kto szybko sprowadziłby ich na ziemię. Było fajnie i naprawdę inspirująco!
A potem, kiedy TPSA wprowadziła dla każdego tani stały Internet, nagle pojawiły się w sieci osoby nazywane Dziećmi Neostrady. Dało się zauważyć, że poziom dyskusji dość znacząco się obniżył, a intensywna krytyka pomysłów czy propozycji innych użytkowników była na porządku dziennym. Z dnia na dzień znikały osoby, na których można było polegać, którzy coś potrafili i pomagali albo nawet tylko dawali rady. Innym zjawiskiem było wciąganie geeków do firm – w końcu one również zaczęły tworzyć strony i systemy. W tym czasie sam zacząłem pracować w Onecie, co spowodowało, że miałem o wiele mniej czasu na ten projekt. W efekcie oprócz mnie, na placu boju pozostało zaledwie kilka osób, które można by policzyć na palcach jednej ręki.
Kolejną falą uderzeniową dla forów internetowych było wejście Facebooka i systemów blogowych, z których ludzie zaczęli masowo korzystać. Zatem z jednej strony mamy odstrzał osób technicznych, a z drugiej – odsiew użytkowników. Mimo tego, przez kolejne lata ten projekt jeszcze trwał i trwał i nawet do teraz ktoś z niego wciąż korzysta. To jest dla mnie niesamowite, ten projekt wydaje się nieśmiertelny – choć wiem, że pewnie w końcu umrze całkowicie. Chyba że… fora się odrodzą. To byłoby wspaniałe.
Z perspektywy czasu dostrzegam, że w tamtym czasie trudnością była mała dostępność gotowych bibliotek czy frameworków. Wtedy się tego nie zauważało, jednak widzę, że wbrew pozorom bardzo mi to pomogło w nauce. Do tej pory radzę początkującym programistom, aby nie stronili od pisania całkiem od podstaw swoich mechanizmów. Oczywiście nie jestem przeciwnikiem „gotowców” – trzeba umieć oceniać sytuację i dokonywać wyboru bardzo świadomie. Warto też pamiętać, że sporym problemem była wydajność systemu – w tamtych czasach serwery były słabe (zegar 1Ghz i 256Mb RAMu to był max), a w projekcie chciałem zawrzeć jak najwięcej funkcji. Ciężko było to pogodzić. Ale również i to pomogło mi w nauce optymalizacji systemów.
Kolejna kwestia – o wiele mniejszy dostęp do wiedzy. Gdyby wtedy było coś takiego jak Stack Overflow to ten projekt byłby zrobiony dwa razy szybciej lub byłby dwa razy bardziej rozwinięty. Z drugiej strony – obecnie często trzeba poświęcić naprawdę sporo czasu, aby dotrzeć do zaufanych i wiarygodnych źródeł wiedzy. Właśnie dlatego wydaje mi się, że dzisiaj jedną z najbardziej wartościowych kompetencji pracowników jest umiejętność filtrowania znalezionych informacji.
Jak dalej potoczyła się Twoja ścieżka kariery do momentu, w którym rozpocząłeś projekt Sky-Shop.pl?
Pracowałem przez kilka lat w portalu Onet.pl. Zajmowałem się tam tworzeniem pierwszych polskich stron na urządzenia mobilne. Co ciekawe – strony internetowe musiały działać na ekranach 128×128 pikseli.
Mimo tego wszystkie moje dotychczasowe projekty wydawały mi się mało wymagające i zawsze chciałem spróbować swoich sił w e-commerce. Współpraca z Onetem dała mi taką możliwość – w tym czasie gruntownie poznałem branżę i wymagania dotyczące tego typu projektów. Pomysł na stworzenie platformy sklepowej Sky-Shop narodził się później, kiedy wspólnie z SIEF-IT dostrzegliśmy na rynku lukę. Postanowiliśmy ją wypełnić. W 2009 roku oprogramowanie Sky-Shop.pl ujrzało światło dzienne.
Jak wyglądały początki Sky-Shop.pl? Byłeś osobą, która budowała czy rozwijała ten projekt?
Początki nigdy nie są łatwe. Zarówno budowałem, jak i rozwijałem oprogramowanie, jednocześnie obsługując klientów, wystawiając zamówienia i faktury, czasem również doradzając w wyborze rozwiązań. Zajmowałem się wszystkim po trochu. Ale z perspektywy czasu pozwoliło mi to dogłębnie poznać najważniejsze aspekty biznesu e-commerce – potrzeby, wymagania oraz problemy, z którymi mierzą się na co dzień początkujący właściciele sklepów internetowych, a nawet sami kupujący. Dzięki temu mogłem skutecznie pomóc skierować ten projekt w odpowiednią stronę.
Czym dziś zajmujesz się w Sky-Shop.pl?
Dzisiaj zajmuję się już niemal wyłącznie sprawami technicznymi. Z miesiąca na miesiąc zarówno ich ilość, jak i waga jest coraz większa. Jest to spowodowane ciągłym wzrostem liczby sprzedawców korzystających z platformy, a także rosnącymi wymaganiami rynku i dynamicznymi zmianami w branży, za którymi zawsze trzeba nadążać. A czasami nawet wyprzedzać pojawiające się trendy.
Masz jakieś złote rady dla początkujących CTO, którzy dopiero rozwijają swój projekt?
Praca na stanowisku CTO jest bardzo trudna. Odpowiada on nie tylko za rozwój i utrzymanie technologiczne, ale też za aspekty biznesowe i potrzeby klientów.
Obecnie niemało projektów, zwłaszcza dużych, w wielu aspektach tkwi w starych technologiach. Dług technologiczny rośnie, a z tym wiąże się wolniejszy rozwój i większa niechęć do pracy programistów przy ich utrzymaniu i rozwoju. Bardzo ważna jest tutaj kalkulacja i przewidzenie kosztów utrzymania projektu zarówno w starej, jak i w nowej technologii. Czasem to drugie będzie wyższe. Warto też wziąć pod uwagę, że część nowych technologii jest jeszcze nie do końca sprawdzonych lub dopracowanych i może po prostu z różnych względów nie pasować do naszego projektu.
Przykładem takiej technologii, która nie wszędzie się sprawdzi są rozwiązania chmurowe. Może za kilka lub kilkanaście lat chmur będzie można używać we wszystkich projektach. Na chwilę obecną jednak takie rozwiązania mają kilka sporych wad. Przede wszystkim ich cena często jest wielokrotnie wyższa niż typowe rozwiązania serwerów dedykowanych. Kolejny aspekt to mała elastyczność, która w większych projektach jest szczególnie ważna.
Właśnie z tego względu decyzje dotyczące wdrażania odpowiednich technologii w projektach (zwłaszcza długoterminowych) nie mogą być podejmowane pochopnie. Powinny być poprzedzone dziesiątkami godzin analiz, rozmowami z programistami oraz z działem biznesowym. Czasami dobrym pomysłem będzie skorzystanie z konsultacji zewnętrznych firm czy doświadczonych osób. Konsultacje takie mogą być przeprowadzane na wspólnych spotkaniach, w których uczestniczą wybrani programiści oraz osoby z działu biznesowego.
Jak już wspomniałem mowa tutaj o dużych i ciągłych projektach. W sytuacji, kiedy mamy do czynienia z mniejszymi zadaniami, które do działu IT wpadają i wychodzą, to sprawa jest oczywista – swobodnie możemy “eksperymentować” i używać nowych technologii. Dzięki temu z pewnością cały zespół posiądzie większe doświadczenie w różnorodnych aspektach.
Przebyłeś długą drogę od pierwszego phpBB by Przemo do Sky-Shop.pl. Czym różnią się projekty w PHP teraz od tych sprzed lat?
Według mojej subiektywnej opinii i od strony technicznej – kiedyś w szeregu wymagań, jakość działania produktu była na pierwszym, a wykonanie od środka na drugim miejscu. W tej chwili wydaje mi się, że jest na odwrót.
Z jednej strony to dobrze, bo kiedyś projekty od strony kodu wyglądały często dramatycznie źle. Dlatego tak duży nacisk kładzie się obecnie na jakość pisanego kodu. Ale niestety, pomimo ogromnej dostępności różnych ciekawych rozwiązań i wspomagaczy – nadal w powstających projektach widać często duże braki czy niedopracowania funkcjonalne. Nie dotyczy to tylko PHP. Wydaje mi się, że to jest niezależne od języka.
Poza tym w projektach sprzed lat dbało się bardziej o wydajność oraz o bezpieczeństwo. Z tego powodu, że kiedyś serwery były słabiutkie oraz wszelkie systemy poboczne nie były tak zabezpieczone jak w tej chwili. Nie było też tylu gotowych rozwiązań dotyczących bezpieczeństwa.
Z jakimi wyzwaniami mierzycie się przy budowaniu tak dużego i zaawansowanego projektu z zakresu e-commerce?
Wyzwań jest sporo. Przede wszystkim musimy bardzo pilnować wydajności oprogramowania. Przy tak dużej liczbie sklepów korzystających z naszego systemu jedno niedociągnięcie może powodować spore problemy. To z kolei sprawia, że nie możemy korzystać z wielu gotowych rozwiązań – często tworzymy własne. Dotyczy to np. specjalnych, dedykowanych rozwiązań serwerowych.
Jakie macie plany na przyszłość?
W dalszym ciągu chcemy umacniać naszą pozycję w branży e-commerce jako jednego z kluczowych dostawców rozwiązań dla sklepów internetowych w modelu SaaS. Dążymy do tego, aby oprogramowanie Sky-Shop stało się platformą e-commerce All in One – już od dłuższego czasu prowadzimy wiele działań właśnie w tym kierunku.
Tak jak do tej pory duży nacisk będziemy kłaść na wsparcie sprzedawców korzystających z naszego systemu. Wiemy, jak ważna dla rozwoju sklepów jest edukacja i pomoc w codziennym prowadzeniu biznesu. Właśnie dlatego jednym z istotnych celów jest organizacja jeszcze większej liczby webinarów i szkoleń, przygotowanie merytorycznych poradników oraz powrót do tworzenia naszych autorskich spotkań dla branży e-commerce Sky-Shop Day, które musieliśmy ograniczyć ze względu na pandemię.
Z pewnością będziemy też mocno stawiać na UX w sklepach oraz rozwój funkcji wspierających dropshipping, aby dostarczyć naszym klientom w pełni zautomatyzowane narzędzie ułatwiające prowadzenie sprzedaży w tym modelu, np. poprzez automatyzację wysyłki zamówień do hurtowni.
Wszystko po to, żeby dostępne rozwiązania pozwalały na jeszcze skuteczniejsze skalowanie biznesu i zwiększanie sprzedaży.
PHP skończyło niedawno 25 lat i nierzadko wywołuje spore kontrowersje w branży IT. Uważasz, że jego długowieczność wpływa na niego korzystnie czy może przeciwnie, czyni go językiem bez predyspozycji do konkurowania z innymi?
Nie lubię takich porównań, ponieważ w określonych warunkach każdy jeden język programowania może okazać się najlepszy. Nie da się ukryć, że PHP jest językiem, który wywołuje najwięcej kontrowersji. Według mnie powody są trzy. Pierwszy to bardzo duża dowolność i swoboda w czasie pisania kodu. Drugi to dość niski próg wejścia – PHP jest zasadniczo prostym językiem do nauki. Trzeci powód to to, że nie ustępuje on innym językom.
Taka kombinacja cech doprowadziła w efekcie do powstania zarówno naprawdę ogromnych projektów (np. Facebook), ale również takich, które – nieumiejętnie napisane – generowały sporo błędów, czy były niemożliwe do skalowania. Dlatego często słyszy się o PHP nieprzychylne opinie. Niejednokrotnie – jest on po prostu źle wykorzystywany. A przecież projekty oparte o język PHP mogą mieć mnóstwo zalet, których inne języki nie dają np. szybsze i tańsze wykonanie projektu, większa ilość “dodatków” i gotowych rozwiązań, ogromna społeczność i bazy wiedzy, czy bardzo duża wszechstronność języka.
Przemysław Matoga. Jego przygoda z programowaniem rozpoczęła się poprzez… grę w Counter Strike’a. Jest autorem skryptu phpBB by Przemo, na którym swoje działanie opierało ponad 20 tysięcy forów internetowych w Polsce. Pomysłodawca i współtwórca platformy sklepów internetowych Sky-Shop.pl, którą wraz z zespołem rozwija od 2009 roku.