Wywiad z Wojciechem Karwowskim (SEMSTORM) – Mamy ścisłe reguły pisania oprogramowania

26.09.2017 AUTORZY: Wojciech Karwowski, Marta Bąk-Kamińska,

Od jak dawna pracujesz w branży IT i jak to się stało, że trafiłeś do zespołu SEMSTORM?

W 2003 roku zaczynałem jako freelancer. Początkowo zajmowałem się budową aplikacji na mikrokontrolery, w językach programowania niskiego poziomu.  W 2007 roku założyłem agencję SEM. Pracowaliśmy dla wiodących marek, m.in. Avivy, Allianzu czy Microsoftu. Największą wartością był dla nas dobór odpowiednich słów kluczowych. Niestety dostępne narzędzia ograniczały się do monitoringów pozycji. Kontrolowaliśmy więc skuteczność naszych działań, ale nie widzieliśmy całości. Co prawda kupowaliśmy dostęp do zagranicznych narzędzi, takich jak Semrush, jednak ich zasięg na polskim rynku i jakość informacji o stronach pozostawiały wiele do życzenia.

W 2009 roku pomyślałem, że można zbudować system, który uzupełni lukę. Potrzebna była jednak wydajna technologia i odpowiedni zespół. Rozpoznanie tematu big data i rekrutacja współpracowników nieco trwały, bo SEMSTORM wystartował w 2013 roku. Początkowo nasz zespół składał się głównie z programistów, aktualnie znajdują się w nim także specjaliści od SEO, marketingu czy webanalityki.

Kiedy zacząłeś programować? Jak wyglądały Twoje początki? Czy miałeś jakiegoś mentora, który wskazał Ci ścieżkę rozwoju, bądź pytałeś go o poszczególne zagadnienia, z którymi nie bardzo potrafiłeś sobie poradzić na początku Twojej kariery?

Programowania zacząłem się uczyć w wieku 14 lat. Wtedy na topie był język Pascal. Wiedzę na ten temat czerpało się z własnego doświadczenia, przykładów i książek :). Nie było takich serwisów, jak stackexchange.com, gdzie można znaleźć rozwiązanie większości problemów napotkanych przy tworzeniu oprogramowania. Za czasów Pascala trzeba było sobie radzić samemu. To nauczyło mnie, jak odpowiednio projektować systemy, jak zapobiegać występowaniu błędów w przyszłości.

Jakie były kamienie milowe SEMSTORM? Co było najcięższe przy realizacji tego narzędzia? W jaki sposób je testowaliście przed „oddaniem go do użytkowników”?

Często w projektach wyznacza się kamienie milowe i stara się do nich dążyć za wszelką cenę. Czasem w przypadku nowych produktów jest to błąd, ponieważ takie podejście nie uwzględnia dynamiki zmian pod klienta. Na samym początku rozwoju również oparliśmy metodykę na kamieniach milowych. Ustaliliśmy punkty kontrolne związane z narzędziem, takie jak budowa słownika, panel analityczny, panel użytkownika, system płatności itp.

   

Wyznaczyliśmy zadania oraz czas do ich realizacji dla naszego zespołu. Próbowaliśmy stosować twarde metody zarządzania projektem, jednak zupełnie nie zdały one rezultatu. We wczesnej fazie rozwoju SEMSTORM, narzut czasu i procedur wynikających z tej metodologii był nieopłacalny.

Od początku uczymy się na własnych błędach. W trzeciej wersji SEMSTORM podeszliśmy zupełnie inaczej do budowania systemu. Podzieliliśmy go na odrębne moduły, każdy modyfikowany jest niezależnie od pozostałych. Poszczególne zmiany wdrażamy na produkcję, gdzie przez okres kilku tygodni rejestrujemy zachowania użytkowników. Dodatkowo zbieramy też ich opinie i uwagi. W kolejnym kroku podchodzimy do drugiej iteracji, uwzględniając wszystkie pozyskane wcześniej dane. Dzięki takiemu rozwiązaniu system cały czas jest udoskonalany i rozwijany w kierunku oczekiwanym przez większość użytkowników.  Oczywiście, nigdy nie da się zbudować systemu, który odpowiada wszystkim internautom, ale się staramy :).

Zbieracie sporą ilość danych, więc można przypuszczać, że ta wersja SEMSTORM nie była jedyną. Jak wyglądały początki tego narzędzia? Jakie zmiany wprowadziliście, a co zamierzacie jeszcze zmienić?

Obecna wersja jest trzecią odsłoną SEMSTORM. Początkowo skupialiśmy się przede wszystkim na słowach kluczowych. Chcieliśmy pokazać, że w SEO najlepiej koncentrować się na większej puli fraz zawierającej również ich odmiany czy synonimy. W tamtym czasie było to jeszcze dość kontrowersyjne podejście. Wciąż powszechne było pozycjonowanie zaledwie kilkunastu czy kilkudziesięciu fraz. W chwili obecnej stawiamy na content. To przyszłość, jeśli chodzi o wyszukiwarki i promocję strony. Mamy już pierwsze narzędzia wspierające działania content marketingowe, ale czujemy, że to jeszcze niepełne rozwiązanie. W momencie, w którym będziemy w stanie kompleksowo wspierać naszych klientów w tworzeniu i promocji treści otworzą się przed nami, i przed nimi, nowe możliwości. Podejście do SEO bardzo się zmienia. Dla wielu firm na pewno dobrym rozwiązaniem jest nawiązanie współpracy z copywriterem, który potrafi dostosować przekaz do użytkowników i wyszukiwarek. Nawet w AdWords odpowiednie teksty i tytuły, a także opisy na stronie docelowej mają ogromne znaczenie i potrafią zaważyć nie tylko na pozycji w wynikach wyszukiwania, ale również na wyborze oferty przez potencjalnego klienta.

Wasz zespół liczy 3 programistów, zatem tym bardziej należy dbać o przepływ informacji oraz rozwojem każdego z nich. Jak radzisz sobie z tym zadaniem? W jaki sposób kontrolujesz postępy prac zespołu?

W SEMSTORM pracujemy w metodologii Scrum, czyli programowania iteracyjnego i przyrostowego. Zadania są podzielone na małe bloki programowe, są one omawiane a następnie wykonywane, testowane i wdrażane na produkcję. Raz na dwa tygodnie spotykamy się w gronie programistów, żeby ustalić kolejne kroki rozwojowe SEMSTORM. Dzięki takiemu rozwiązaniu system cały czas jest udoskonalany i poprawiany. Na bieżąco widać wykonane zadania, możemy też szybko reagować na problemy. Jednocześnie obserwujemy zachowania użytkowników i dzięki analityce możemy określić kierunek kolejnej iteracji oprogramowania.

Czy stosujesz code review? Jak to wygląda u Was w praktyce? Jeśli tak, w jakim stopniu przyczynia się to do rozwoju, a w jakim są konfliktogenne?

Mamy ścisłe reguły pisania oprogramowania, dzięki czemu każdy członek zespołu może bez większych problemów odnaleźć się w kodzie pisanym przez innego programistę. Dzięki zastosowanemu frameworkowi mamy automated code reviews dla podstawowych błędów formalnych i tych, związanych z bezpieczeństwem. Aplikację testujemy pod względem poprawności działa modułów oraz wyników, jakie zwraca. Dzięki odpowiedniemu procesowi wytwarzania oprogramowania szybko wychwytujemy błędy, a po ich poprawieniu jesteśmy w stanie sprawnie wypuścić małą porcję nowych funkcji na produkcję. Modułowa budowa aplikacji umożliwia niezależną pracę wielu programistów, dzięki czemu unikamy konfliktów.

W jaki sposób dbasz o swój rozwój? W dzisiejszych czasach dużo osób chorują na dolegliwość pt. „jutro”. Czy masz jakiś sposób na to?

Myślę, że najcenniejszą wiedzę czerpie się z praktyki, a tylko uzupełnia ją teorią. Doświadczanie zdobywam budując rozwiązania nowe i innowacyjne. Wieczorami poświęcam dużo czasu na czytanie o nowościach w IT. Wybieram tylko takie publikacje, które zawierają konkretne rozwiązania, przykłady oraz prezentację wyników. Omijam szerokim łukiem artykuły w stylu „6 sposobów na …”. Nieustannie poszerzam także wiedzę na temat budowy i optymalizacji firm sprzedających usługi w modelu SaaS.

Kończąc już wywiad, chciałam się dowiedzieć, jak się widzisz (zawodowo) za 5 lat?

Ostatnio moją uwagę przyciągnęły zagadnienia związane z machine learningAI. w SEMSTORM poczyniliśmy już pierwsze kroki w kierunku implementacji uczenia maszynowego, ale to dopiero początek. Chciałbym dalej rozwijać się w tym kierunku i w najbliższych latach zrealizować projekt związany z wykorzystaniem wspomnianych technik.

Wywiad powstał dzięki:

Coders Lab

Łącząc doświadczenie edukacyjne ze znajomością rynku pracy IT, Coders Lab umożliwia szybkie i efektywne zdobycie pożądanych kompetencji związanych z nowymi technologiami. Skupia się się na przekazywaniu praktycznych umiejętności, które w pierwszej kolejności są przydatne u pracodawców.

Wszystkie kursy odbywają się na bazie autorskich materiałów, takich samych niezależnie od miejsca kursu. Dzięki dbałości o jakość kursów oraz uczestnictwie w programie Career Lab, 82% z absolwentów znajduje zatrudnienie w nowym zawodzie w ciągu 3 miesięcy od zakończenia kursu.


Do góry!

Polecane artykuły

22.09.2020

Comarch e-Sale, jako e-commerce na dobry ...