Od Grono.net do VentureDevs, poznaj historię Wojciecha Sobczuka
Kilkanaście lat doświadczenia w branży IT, stworzenie pierwszego w Polsce serwisu społecznościowego, który u szczytu swej świetności rozrósł się do ponad 2 mln użytkowników. Do tego rozwój i komercjalizacja kilku innych projektów. Zapraszamy do inspirującej historii Wojciecha Sobczuka.
O tym, jak zaczynał i które decyzje doprowadziły go do największych sukcesów. Skromna retrospekcja z komentarzem z pierwszej ręki od głównego bohatera tego materiału. Skupimy się na Gronie, lecz nie będziemy się do niego ograniczać, bowiem przy okazji skomercjalizował jeszcze kilka innych projektów, aż w końcu postanowił skoncentrować się na seryjnym realizowaniu tego typu projektów dla innych, czego owocem jest VentureDevs, poznański startup-software house. Wojciech Sobczuk z nieco innej strony.
Spis treści
Piotr Nowosielski: Łatka założyciela Grono.net przylgnęła do Ciebie na dobre. Jednak to przecież jeden z kilku projektów (choć największy), jaki dotychczas rozwijałeś – o innych również będziemy mieli okazję porozmawiać! Zastanawiam się, jak to się jednak wszystko zaczęło, co było z Tobą przed Gronem? Co studiowałeś, jakie i były Twoje pierwsze podrygi z programowaniem?
Wojciech Sobczuk: Wszystko zaczęło się od pomysłu na pisanie gier ponad 20 lat temu. Kupiłem sobie więc książkę ‘Język C w 21 dni’ i po tygodniu nauczyłem się na tyle żeby napisać jakąś prostą strzelankę i Tetrisa. Potem przyszły lata przesiadywania na korytarzu UMCS w Lublinie gdzie były nieliczne ogólnodostępne komputery ze stałym łączem do Internetu i godziny spędzone na IRCu czy różnych ciekawych aktywnościach online związanych z security 🙂 Tam poznałem ludzi którzy w dużej mierze tworzyli potem polski Internet w obecnym kształcie, np Karpia który budował sieć Atman a teraz jest szefem bezpieczeństwa w Orange Polska.
Dużo zajmowałem się administracją serwerami, pisaniem niskopoziomowego kodu w kernelu Linux / FreeBSD, bezpieczeństwem, w tym pisaniem trojanów. Pamiętam jak z kolegami z korytarza UMCS, już będąc w Warszawie, bo większość ludzi ze środowiska emigrowało z Lublina do Warszawy, włamaliśmy się w ramach testów penetracyjnych do serwerów jednego z głównych operatorów GSM w Polsce przy pomocy wysyłania specjalnie przygotowanych SMSów. Od tamtych czasów bezpieczeństwo nieco się poprawiło.
A potem przyszedł czas WWW i przerzuciłem się praktycznie tylko na to. Napisałem coś a’la ceneo.pl zanim jeszcze ktoś myślał o stworzeniu Ceneo, ale portal ten poszedł do śmieci kiedy równocześnie pojawił się pomysł stworzenia Grona. Zresztą kiedy Grono zaczęło działać do śmieci poszły też moje studia informatyczne na Uniwersytecie Warszawskim.A co do łatki założyciela Grono.net to zamierzam doprowadzić do tego żeby VentureDevs było niebawem sukcesem conajmniej na skalę Grona, tak żebym mógł się legitymować czymś więcej niż projekt sprzed 10ciu lat.
Piotr Nowosielski: Zaczęło się niewinnie, od spotkania kilku kumpli-programistów przy piwie. Kilka lat później staliście się najchętniej odwiedzanym polskim serwisem internetowym z blisko 30 milionami odsłon miesięcznie. Jak powstał pomysł na Grono i z jakich serwisów zachodnich czerpaliście w owym czasie inspiracje? Facebook powstał w zasadzie równolegle, na fali wydawał być się wtedy Myspace, innych mimo usilnego wysiłku – nie kojarzę.
Wojciech Sobczuk: Pomysł na Grono przyniósł kolega znajomego frontendowca i radiowca Bronka, który powiedział nam że na Węgrzech przeprowadzono eksperyment mający na celu udowodnić, że między każdym człowiekiem na świecie jest 6 podań ręki. Długo się nie zastanawiając wymyśliliśmy nazwę i zaczęliśmy prace nad serwisem. Bronek zajmował się grafiką i frontem, ja napisałem całą mechanikę w Javie.
Piotr: Jak długo Trwały prace nad pierwszą wersją Grono.net? Zapewne intensywny czas. Robiliście to po godzinach, czy raczej na full-time, zamknięci gdzieś razem, aby to jak najszybciej wydać? Nie doszukałem się informacji, w jakim byliście wtedy wieku?
Wojciech: Ja miałem wtedy 22 lata, Bronek był zdaje się starszy. Obaj zaczęliśmy po godzinach, nie trwało to jakoś super długo, może 2-3 miesiące, bo na początku funkcjonalności były bardzo proste. W którymś momencie rzuciłem pracę którą wtedy miałem żeby skupić się w 100% nad Gronem.
Piotr: Start to luty 2004 i pytanie, pierwszy poważny problem – coming out. Jak szybko Grono dobiło z poziomu zero do tysiąca użytkowników? Nie wierzę, że wystarczyło zaprosić tylko swoich znajomych, którzy w komunikacji z rodziną i kolegami radzili sobie mailowo, Ci bardziej postępowi mieli już Gadu Gadu, ale “serwis społecznościowy”? To musiała być egzotyka.
Wojciech: Wbrew pozorom było bardzo prosto. Na początku zaprosiliśmy najbliższych znajomych, prosząc ich wręcz żeby nikogo nie zapraszali bo testujemy jeszcze serwis i poprawiamy błędy. Kiedy stwierdziliśmy że bazowe funkcjonalności działają wystarczająco dobrze puściliśmy mailing do wszystkich z prośbą o zapraszanie znajomych. I wtedy zaczęła się nieprzerwana lawina użytkowników. Serwis był nowością, także wszyscy byli ciekawi jak to działa. Jednocześnie miał nutę elitarności z racji że był na zaproszenie, a jak wiadomo często jeśli coś jest nie dla wszystkich to każdy chce to mieć.
Piotr: Podejście do tego, że serwis jest tylko na zaproszenie okazało się strzałem w dziesiątkę i w zasadzie zapadło w pamięć jako świetny growth hack. Czy od samego początku serwis był zaplanowany na zamkniętą społeczność? Może jednak w pierwszych tygodniach/ miesiącach od startu postawiliście na większą otwartość względem wszystkich z zewnątrz, a zamknęliście go dopiero po pewnym czasie i zdobyciu określonej masy krytycznej? Wyszło genialnie, ale to musiała być ciężka decyzja i bardzo ryzykowna strategia.
Wojciech: Serwis od początku był na zaproszenie, ale uwierz mi nie było wielkich narad i filozofii – stwierdziliśmy po prostu że sprawdzimy zasadę 6ciu podań ręki. Żeby to zrobić konieczne wydawały nam się zaproszenia, aby wyeliminować przypadkowe osoby które nie miałyby wewnątrz przyjaciół. Potem okazało się, że nie było to najlepsze założenie w kontekście popularyzacji serwisu bo przecież nawet osoby bez zaproszenia mogły zapisać się i już wewnątrz wyszukać znajomych.
Piotr: Przy okazji pojawia mi się kolejne, nieco osobliwe pytanie. Czy uważasz, że łatwiej jest zamknąć otwarty serwis, czy otworzyć portal, który wcześniej dostępny był wyłącznie na zaproszenie?
Wojciech: Jedna z zarządzających funduszem Intel Capital kiedyś na spotkaniu w kontekście inwestycji w Grono powiedziała ‘He, who is most open wins’. Myślę, że poza nielicznymi wyjątkami, ta reguła ma sens. Także sądzę że z zasady częściej lepiej jest otworzyć niż zamknąć.
Piotr: W związku z tym zachodzę w głowę, czy były jakieś inne drivery wzrostu, poza zapraszaniem znajomych?
Wojciech: Nie, tylko i wyłącznie znajomi zapraszający znajomych.
Piotr: Już pierwszy rok od powstania portalu przyniósł mu pewną popularność, jednak daleko było do tuzów polskiej sceny internetowej. Mówimy tutaj o 30 tysiącach użytkowników. Po nieco ponad roku, można było mówić o 500 tysiącach, a u szczytu – o 2 milionach. Z jakimi problemami wzmagaliście się na co dzień w tamtych czasach, o których nawet nie mieli pojęcia użytkownicy?
Wojciech: Głównym problemem była oczywiście wydajność i przez bardzo długi czas użytkownicy odczuwali ten problem na własnej skórze. Było też masę problemów niewidocznych dla użytkowników – głównie związanych z wiedzą jak prowadzić i rozwijać startup, w Polsce to była nowość i mało kto miał w tym doświadczenie. Jak pozyskać finansowanie, jak zbudować dział sprzedaży, jak zarządzać rosnącą firmą – to pytania na które musieliśmy odpowiadać sobie często sami.
Piotr: Idę za ciosem i zapytam – jak w tamtych czasach pozyskiwało się finansowanie? Generalnie na brak atencji narzekać raczej nie mogłeś. Najpopularniejszy portal w Polsce. Występowałeś z pozycji siły. Opowiedz coś więcej jak to było wtedy, jeżeli chodzi o inwestowanie w startupy. Inwestorzy podchodzili z nieco większą rezerwą do takich przedsięwzięć, czy wręcz przeciwnie? Wszystko szło szybciej i mniej formalnie?
Wojciech: Z inwestorami zawsze było, jest i będzie tak – jeśli masz sukces i ich nie potrzebujesz, jest ich pełno. A jeśli jeszcze nie masz sukcesu i ich potrzebujesz – to musisz za nimi biegać i się dopraszać o finansowanie bo konkurujesz z 1000 innych founderów. Grono miało od początku bardzo szybki wzrost ruchu także pozyskanie finansowania nie było żadnym problemem, mogliśmy wręcz wybierać wśród ofert i stawiać swoje warunki.
Piotr: Jak był zorganizowany dział IT w Grono? Ilu programistów spinało cały serwis w momencie, gdy osiągnęliście 2 miliony użytkowników? Ile osób zajmowało się rozwojem nowych funkcjonalności, których cały czas przybywało, a ilu z Was musiało trzymać wszystko w ryzach. Na początku pewnie każdy robił, co tylko mógł, lecz po kilku latach musieliście się jakoś podzielić. Opowiedz coś więcej o tym, jedno lub drugie zdjęcie również będzie mile widziane. 🙂
Wojciech: W szczycie mieliśmy ponad 80-cio osobowy zespół, z czego większośc to byli programiści plus zespół administratorów serwerów i bazy danych. Podzieliliśmy się wg. modułów funkcjonalnych, jedni zajmowali się forami, inni profilami, inni nowymi modułami. Zespół był niesamowity i dowoził w zasadzie cokolwiek co wymyśliliśmy na rozmowach produktowych w rekordowym czasie. Bardzo żałuję, że nie potrafiliśmy poprowadzić Grona do długotrwałego sukcesu tak żeby efekty ich pracy służyły serwisowi do dziś.
Co według Ciebie decydowało o tym, że zespół tak świetnie dowoził wszystko z mgnieniu oka? To jest raczej element, który zawsze spędza wszystkim sen z powiek.
Wojciech: Na to składa się wiele czynników, ale główne z nich to wg mnie:
- Technologia – Python + Django umożliwiały bardzo szybkie budowanie ficzerów.
- Skille zespołu – udało nam się zgromadzić bardzo dużo utalentowanych ludzi, z uwagi na fakt, że byliśmy jednym z największych serwisów w Pythonie i najbardziej znanych.
- Motywacja – wiadomo, że gdy buduje się coś dla milionów użytkowników i z czego korzystają znajomi to ma się więcej zapału żeby to robić.
Piotr: Spójrzmy na temat nieco pod rozwoju technologicznego Grono.net. Trafiliście przecież na okres bardzo dynamicznego rozwoju wielu różnych języków programowania, sam znasz ich kilkanaście, a wiele nauczyłeś się właśnie przy rozwoju Grono. Z jakich technologii korzystaliście na przestrzeni tych niemal 10 lat podczas prac nad portalem?
Wojciech: Pierwszą wersję napisałem w Javie, ale szybko okazało się że przy dużym obciążeniu JVM sprawiała duże problemy. Zostałem wtedy siłą rzeczy specem od tuningu JVM, ale to też nie pomogło. Jakoś w tym czasie poznałem Pythona i Django i podjąłem decyzję o przepisaniu całości serwisu na te technologie. I przy Pythonie już zostaliśmy. We front endzie nie było wtedy za dużo wyboru, a to co trzeba było robić robiliśmy w jQuery.
Brzmi jak jakiś niewielki task, który zrealizowałeś w międzyczasie! To musiało być jeszcze gdzieś na początku rozwoju serwisu, skoro dałeś radę zrobić to samodzielnie. Jak szybko udało Ci się przepisać Grono na Pythona?
Wojciech: Zawsze miałem fioła na punkcie efektywności developmentu. Do wersji napisanej w Javie użyłem autorskiej biblioteki przyspieszającej kilkakrotnie pisanie aplikacji webowych w tym języku, dlatego powstawała bardzo szybko. Jednocześnie nie miała najlepszej wydajności bo według mnie wydajność jest kompletnie nieistotna dopóki nie staje się problemem dla użytkowników. Na moje nieszczęście Grono było nietypowym projektem bo lawina użytkowników pojawiła się natychmiast po uruchomieniu, a z nimi kłopoty z wydajnością 🙂
W momencie gdy okazało się, że obecna architektura w Javie nie spełniała naszych oczekiwań wydajnościowych, stwierdziłem że szybciej będzie przerobić całość na Python + Django niż zmieniać framework na któryś z istniejących wtedy w Javie. Zrobiliśmy to, jeśli dobrze pamiętam, na przestrzeni 2 miesięcy, razem z pierwszymi programistami Pythona którzy dołączyli do zespołu.
Tu przypomina mi się ciekawa sytuacja odnośnie wydajności. W pewnym momencie stwierdziliśmy, że serwis działa dość wolno i trochę za bardzo zjada zasoby CPU tych 50 serwerów które mieliśmy do dyspozycji. W kilka godzin udało mi się znaleźć przyczynę i przyspieszyć serwis o 40% (!). Okazało się, że jeden z naszych developerów używał funkcji ‘eval’ Pythona w template tagu – jest ona bardzo wolna i wykonywała się przy każdym odświeżeniu strony, więc jej eliminacja przyniosła dramatyczny efekt.
Piotr: Z perspektywy czasu, jakie inne decyzje byś podjął, jeżeli chodzi o rozwój kluczowych funkcjonalności Grono.net? Co mogłoby sprawić, że jeszcze dziś moglibyśmy zapraszać się do znajomych również tam.
Wojciech: Wydaje mi się, że Grono mogłyby uratować dwie rzeczy:
- Znacznie mniej funkcjonalności – ficzerów było za dużo, co powodowało duże koszty i zagubienie użytkowników zarówno tych aktywnych jak i potencjalnych.
- Skupienie na gronach (czyli naszych forach) i budowa społeczności tylko wokół tego – mieliśmy świetne grona tematyczne na których można było znaleźć masę interesujących ludzi. To była unikalna wartość grona, dla której Facebook nie był konkurencją i którą można było rozwinąć dalej w kierunku np usługi forum dla firm.
Piotr: Gdybyś miał teraz tworzyć Grono na nowo, to w czym byś go napisał?
Wojciech: Jeśli byłby to nowy startup to napisałbym go w całości w Python + Django. W tej technologii można wyprodukować działający serwis w rekordowym według mnie czasie
Front pewnie w Vue.js lub React, ale to tylko ze względu na fakt, że w dzisiejszych czasach taki serwis musiałby być mocno skomplikowany wewnętrznie, reaktywny i wysokowydajny. Normalnie pozostałbym przy Python + Django w 100% bez technologii front end, bo tak jest najprościej i najszybciej, a w technologii prostota to klucz do sukcesu.
Piotr: Jaka jest największa lekcja, jaką wyciągnąłeś z tych 8 lat pracy nad tak gigantycznym serwisem, jednym z największych na owy czas w kraju? Było to z pewnością ogromne wyzwanie i możliwości, które wiele osób chciałoby sobie stworzyć. Wielu młodych programistów i ludzi zajaranych startupami dotrze do tego materiału, z pewnością kilka słów od takiej osoby jak Ty, będą dla nich wartościowe, powiedz coś od siebie! 🙂
Wojciech: O lekcjach mógłbym chyba napisać książkę bo było ich wiele i często bolesnych. Wydaje mi się że najbardziej wartościowymi dla programistów będą poniższe spostrzeżenia.
Po pierwsze programowanie jest z reguły nie jest tak ważne w startupie jak myślą o tym programiści. Dawniej myślałem, że jako programista jestem najważniejszy, bo mogę zbudować dowolny produkt i zaraz będzie sukcesem bo jest taki świetny technologicznie i ma dużo ficzerów. Nic bardziej mylnego – każdy może przepisać Twittera w jeden weekend, a na bank nie odniesie sukcesu na tym rynku. Produkt jest zbudować łatwo, ale już budowanie biznesu w oparciu o ten produkt to zupełnie inna bajka która wymaga z reguły niesamowitej persystencji, często mocnych nerwów i umiejętności bardzo odległych od programowania takich jak sprzedaż i marketing. A już najważniejsze w tym wszystkim jest zweryfikowanie czy ktoś w ogóle zechce użyć nasz produkt zanim napiszemy pierwszą linijkę.
Po drugie im mniej tym lepiej. Budując duży produkt dramatycznie obniżasz swoją szansę sukcesu przez:
- Zwiększenie kosztu budowy, nawet jeśli inwestujesz tylko swój czas, to jest to też koszt.
- Zwiększenie czasu budowy, co opóźnia moment wejścia na rynek, a więc później dowiadujesz się czy produkt faktycznie ma sens i później odnosisz z niego jakieś korzyści.
- Zmniejszenie potencjalnej liczby użytkowników. Tak, więcej ficzerów to znaczy mniej użytkowników. Bo im prostszy produkt tym łatwiej go zrozumieć i przekazać innym po co on jest, oraz łatwiej go używać.
- Zmniejszenie szansy na finansowanie. Im łatwiej przekonać kogoś do używania produktu, tym łatwiej przekonać inwestora że zarobi na nim.
Także jeśli w Twoim produkcie jest jakaś kluczowa myśl czy funkcja, zbuduj tylko ją i zintegruj ją z gotowymi produktami (jeśli to możliwe), zamiast przepisywać coś co jest na rynku.
Ja powyższe błędy popełniłem kilkakrotnie, czasem prowadziło to do kompletnej porażki, a czasem jednak się udawało.
Piotr: Grono.net powstał w 2004 roku. W 2012, po 8 latach został zamknięty. Co się działo zatem z Wojtkiem Sobczukiem przez te ostatnie 5 lat do dnia dzisiejszego? Nie wyglądasz na człowieka, który lubi sobie robić wolne. Wyciągnij coś ciekawego z szuflady.
Wojciech: No niestety z uwagi na talent programistyczny i serce do startupów zawsze miałem problem z urlopami. Jednocześnie należę do ludzi którzy skupiają się bardziej na robieniu czegoś niż na opowiadaniu o tym na konferencjach czy blogach, także wiele o mnie nie było słychać.
Przez ten czas pracowałem nad kilkoma startupami, z których jeden się zakończył sukcesem, zbudowałem system billingowy dla startupu z San Francisco który dziś jest dużą firmą i nadal korzysta z tego systemu, byłem CTO w innym startupie z USA. Także w skrócie nie nudziłem się.
Robiąc to poznałem masę świetnych ludzi i dotarło do mnie że najlepszym rozwiązaniem zarówno dla mnie jak i zespołu z którym pracowałem nad różnymi projektami będzie stworzenie VentureDevs. A to dlatego, że robiąc jeden startup los całego zespołu zależy od jego powodzenia, a możliwości budowy zespołu ograniczone są możliwościami finansowymi startupu, a w firmie którą tworzymy sytuacja wygląda zupełnie inaczej.
W VentureDevs możemy pracować nad wieloma projektami dla klientów i przyjaciół z całego świata (często z zachodniego wybrzeża USA bo stamtąd jest nasz CEO Joe), w te najbardziej obiecujące angażować się udziałowo czy kapitałowo, a los firmy nie zależy od powodzenia żadnego z tych produktów. Jednocześnie mamy pełną kontrolę nad tym kogo przyjmujemy do naszego grona, a jesteśmy w tym bardzo selektywni bo chcemy utrzymać niepowtarzalny klimat pomimo wzrostu firmy. No i mamy niesamowity zespół który umożliwia nam zbudowanie dowolnego przedsięwzięcia, jeśli tylko na horyzoncie pojawi się odpowiedni pomysł i fundusze.
Oczywiście aktualnie jesteśmy młodą firmą, de facto startupem, więc jeszcze wiele pracy przed nami. Natomiast jesteśmy zdeterminowani aby doprowadzić do tego, żebyśmy stali się najlepszym pracodawcą w naszym kraju i żeby coraz więcej produktów naszych klientów jak i naszych własnych zwyciężało na globalnych rynkach.