Artur Ter-Stepanyan z CodeRiders dzieli się przekonującymi spostrzeżeniami na temat swoich projektów outsourcingu oprogramowania

Opublikowany: 2023-02-06

Twórcy oprogramowania i inżynierowie nienawidzą mówić; większość z nas przynajmniej raz słyszała to zdanie. Ale czy to prawda, czy nie, potrzebujemy opinii bezpośrednio od profesjonalistów. Nikt nie może podzielić się bardziej dogłębnym wglądem w proces tworzenia oprogramowania niż sami programiści i inżynierowie.

CodeRiders kontynuuje serię wywiadów z naszymi czołowymi programistami i inżynierami. Wcześniej dzieliliśmy się doświadczeniami naszych pracowników w IT oraz ich umiejętnościami technicznymi i miękkimi jako profesjonalnych zdalnych inżynierów oprogramowania.

Tym razem kontynuujemy współpracę z naszym full-stack software developerem, Arturem Ter-Stepanyanem, który dzieli się swoją opinią na temat zarządzania outsourcingiem oprogramowania, zespołami Scrumowymi i swoimi ulubionymi projektami.

O Arturze Ter-Stepanyanie

Artur jest starszym programistą w firmie programistycznej CodeRiders. Jest jednym z najlepszych absolwentów CodeRiders, który utworzył główny zespół w 2016 roku.

Jeśli śledzisz CodeRiders od jakiegoś czasu, być może już wiesz, że CodeRiders weszło do międzynarodowej branży IT jako lokalna szkoła tworzenia oprogramowania w 2013 roku. W ciągu zaledwie roku szkoła dała ponad 800 absolwentów, z których 17 utworzyło CodeRiders firma outsourcingowa oprogramowania w 2014 roku.

Artur bardzo przyczynił się do międzynarodowego uznania CodeRiders jako jednej z najlepszych firm outsourcingowych oprogramowania na rynku. Pracował ze swoimi kolegami przy niektórych z najbardziej wymagających i złożonych projektów outsourcingu oprogramowania. Artur jest jednym z naszych ciężko pracujących programistów, który zdobył pozytywne recenzje klientów dla naszej firmy. Aktywnie reprezentował również naszą firmę podczas różnych wydarzeń – ostatnim z nich były Międzynarodowe Targi Hannover Messe 2022 w Hanowerze w Niemczech.

Zacznijmy od początku!

Cześć Arturze. Dziękujemy za poświęcenie czasu na rozmowę z nami. Zacznijmy od ogólnych informacji o sobie i swojej drodze do zostania odnoszącym sukcesy programistą. Jak trafiłeś do CodeRiders?

Cześć. Dzięki za propozycję. Myślę, że wielu ormiańskich twórców oprogramowania utożsamiałoby się z moją historią. W branży IT pracuję już 7 lat, ale bycie programistą nie było moim marzeniem z dzieciństwa, podobnie jak programowanie nie było moim kierunkiem na studiach. Jako zwykły młody dorosły interesowałem się wieloma przypadkowymi zawodami, w tym medycyną i opieką zdrowotną. Chciałem wybrać zawód, który naprawdę by mnie interesował. W końcu to na niej będziesz spędzać najwięcej czasu. Nie zapomniałem jednak również o przeciętnym wynagrodzeniu dla niektórych zawodów i ich środowisk.

Kiedy szukałem tak idealnej możliwości kariery, mój brat pracował w CodeRiders jako dyrektor działu rozwoju biznesu. Założyciel firmy i CTO to przyjaciel mojego brata z dzieciństwa. Tak więc firma była już dla mnie ciepła. Zasugerował, żebym zapisał się na ich kursy PHP, Laravel i JavaScript, aby sprawdzić, czy programowanie mnie zainteresuje. W połowie 2000 roku branża technologiczna w Armenii kwitła już. Zdecydowana większość obiecujących świeżo upieczonych absolwentów wybrała zawody takie jak programiści, inżynierowie, architekci, testerzy (specjaliści ds. kontroli jakości), PM-owie i marketerzy cyfrowi, a branża IT była bardzo silna i obfitowała w milion możliwości. Armenia była na najlepszej drodze do zostania kolejnym światowym centrum technologicznym.

Postanowiłam więc spróbować i jak widać był to doskonały wybór. Odnalazłem się w branży programistycznej, a zespół idealnie do mnie pasował. Po pomyślnym ukończeniu szkoły programistycznej, w 2016 roku zostałem zatrudniony jako programista back-end. CodeRiders to moja pierwsza i jedyna przestrzeń robocza. Stworzyliśmy atmosferę, w której sformułowanie „jestem tylko pracownikiem” nie jest odpowiednie. Wszyscy szczerze dbamy o dobre samopoczucie i reputację firmy i to niesamowite, jak daleko przeszliśmy od bycia małym start-upem do uznanego na całym świecie dostawcy oprogramowania. Wiem, że znalezienie idealnego miejsca pracy za pierwszym razem zdarza się rzadko, dlatego bardzo to doceniam. Myślę, że mój sukces osobisty, jak również sukces firmy, jest silnie związany z naszą wizją i zaangażowaniem. Jesteśmy jak jedna wielka rodzina, która zebrała się dla jasnej misji, aby pomóc ludziom pracować wydajniej i dobrze się bawić.

Wspomniałeś, że zespół jest dla ciebie jak rodzina. Czy fakt ten nie tworzy „luźnego” środowiska pracy i dyscypliny?

Wielu uważa, że ​​przyjaźnie ze współpracownikami lub bliskie kontakty w pracy szkodzą biznesowi/wydajności pracy. Nie będę się z tym kłócić, bo przypadki są różne. Jednak w CodeRiders jest to raczej dodatkowy bodziec do lepszej pracy. Dzięki CodeRiders jestem sobą. Nie jestem pod żadnym przymusem, ani nie czuję potrzeby popisywania się. W rezultacie skupiam się tylko na swojej pracy i robię to, co robię najlepiej: kodowanie i tworzenie oprogramowania. Dobre efekty i pozytywne opinie klientów świadczą o skuteczności mojej pracy.

Opisz swój typowy dzień pracy w CodeRiders.

Zaczynamy oczywiście od filiżanki kawy. Jeśli jest poniedziałek, wszyscy członkowie zespołu, w tym dział rozwoju biznesu, zbierają się na porannym spotkaniu. Dzielimy się tym, co robimy i upewniamy się, że wszyscy są na dobrej drodze. Potem wszyscy zaczynają działać.

Wszyscy pracujemy w kilku dużych, wygodnych pokojach. Nie mamy oddzielnych pokoi, co moim zdaniem jest super, bo wspólna praca w jakiś sposób uwalnia od stresu. Na przykład podczas pracowitego dnia jeden z członków naszego zespołu może rzucić żart, a wszyscy się śmieją i kontynuują pracę.

Posiadamy również oddzielne pokoje do dyskusji lub wideorozmów. Jeśli więc potrzebujemy prywatnej przestrzeni i ciszy, możemy przenieść się do tych pomieszczeń. Dla nas, programistów, zwykle dzieje się to rano i wieczorem, kiedy mamy rozmowy z klientem i zdalnym zespołem programistów. Możemy też mieć kilka przerw na kawę, podczas których możemy po prostu porozmawiać na różne tematy, zrelaksować się i odświeżyć umysł. CodeRiders oferuje hybrydowy model pracy, co oznacza, że ​​pracownicy mają swobodę wyboru pomiędzy pracą zdalną lub w biurze. Wolę pracę wewnętrzną, ponieważ lubię przebywać z kolegami (bratem i bliskimi przyjaciółmi), co pomaga mi działać jeszcze bardziej produktywnie.

Czy omówisz bardziej szczegółowo swój obecny projekt?

Obecnie pracuję nad kompleksową platformą do zarządzania sportem. Jej głównym celem jest usprawnienie organizacji klubów sportowych. Jest to jedna z wiodących platform do zarządzania sportem na rynku międzynarodowym. Automatyzujemy zarządzanie każdym klubem sportowym. Każdy może wziąć udział i zachęcić swój lokalny klub z dowolnego miejsca na świecie. Produkt jest jak posiadanie całego zespołu administracyjnego w kieszeni. Pomaga użytkownikowi łatwo zarządzać swoim klubem w dowolnym miejscu i czasie na wszystkich swoich urządzeniach. Współpracuję ze zdalnymi inżynierami oprogramowania i programistami z niemal każdego kontynentu. Mamy kilku kierowników projektów, którzy ściśle współpracują ze wszystkimi członkami zespołu technicznego i klientem.

Co najbardziej lubisz w swoim obecnym projekcie rozwoju oprogramowania?

Oprócz tego, że projekt jest duży i nigdy cię nie nudzi, podoba mi się nasz proces pracy i metodologia. Wykorzystujemy metodologię wytwarzania oprogramowania Scrum, która doskonale sprawdza się przy tak złożonym projekcie. Scrum jest najpopularniejszym frameworkiem Agile i oczywiście przestrzega 5 zasad Agile: zaangażowanie, skupienie, szacunek, otwartość i odwaga. Ogólnie rzecz biorąc, iteracyjne modele tworzenia oprogramowania są bardzo elastyczne i „przyjazne zmianom”. Nie musisz trzymać się planu. Dzięki Scrum nadal możesz odnieść sukces w tworzeniu i wdrażaniu oprogramowania, nawet jeśli nie masz na myśli ostatecznej wersji produktu. W międzyczasie, w przeciwieństwie do modeli oprogramowania o stałej cenie, iteracyjne metodologie outsourcingu oprogramowania zapewniają, że klient płaci tylko za wykonaną pracę.

Opisz swój typowy dzień pracy w ramach tego projektu. Co to znaczy być full-stack developerem pracującym z międzynarodowym zespołem?

Nasz zespół składa się z kierowników projektów, programistów back-end i front-end, inżynierów oraz testerów. Kierownicy projektu dzielą pracę na sprinty, a my ściśle współpracujemy, aby ukończyć i przetestować każdy sprint po przejściu do przodu. Tak więc proces tworzenia oprogramowania i oś czasu wyglądają następująco:

  1. Zaczynamy od planowania sprintu. Każdy sprint rozpoczyna się w następujący sposób: Twórcy oprogramowania, inżynierowie i właściciele produktów omawiają, które elementy rejestru produktu (PBI) powinny zostać uwzględnione w sprincie. Właściciel produktu jest odpowiedzialny za ustalanie priorytetów PBI dla określonego ekranu. Jednak jesteśmy również zachęcani do dzielenia się naszymi opiniami, przemyśleniami i obawami dotyczącymi decyzji, co jest wspaniałe. Na koniec uzgadniamy realistyczny cel sprintu i backlog.
  2. Codzienny Scrum obejmuje codzienne spotkania, które trwają od 15 do 30 minut, podczas których sprawdzamy, dzielimy się naszymi postępami i przeglądamy nasze działania na dany dzień.
  3. Kontynuujemy przeglądy sprintu: na koniec każdego sprintu mamy spotkanie online z zespołem zarządzającym i pokazujemy naszą pracę końcową. Zespół zarządzający przegląda działające funkcje, które zostały wdrożone podczas sprintu i przekazuje informacje zwrotne. Informacje zwrotne są uwzględniane w rejestrze produktu, co pomaga nam lepiej ustalać priorytety podczas przyszłych sprintów.
  4. Ostatnim etapem jest retrospekcja sprintu. To czas, kiedy zespół Scrumowy dokonuje przeglądu rzeczy, które powinniśmy poprawić i proponuje metody doskonalenia na przyszłość. Współpracujemy i odpowiednio planujemy nasz następny krok.

O ile podoba Ci się metodologia Scrum, czy w Twoim projekcie są jakieś wady, które chciałbyś naprawić?

Szczerze mówiąc, czasami mam wrażenie, że tracimy czas. Lubię rozmawiać i pilnować, aby wszyscy członkowie zespołu podążali tą samą drogą. To oczywiście klucz do sukcesu. Czasami jednak niektóre rozmowy lub czaty są niepotrzebne i możemy spędzić więcej czasu na omawianiu problemu niż na faktycznej pracy nad projektem.

Jak wygląda praca z obcokrajowcami? Czy są jakieś różnice kulturowe?

Oczywiście doświadczenie jest bardzo różne i jest naturalne. Żyjemy w różnych środowiskach i mamy różne nawyki, sposób myślenia i mentalność. Czasami nie rozumiemy swoich żartów. Nie jest to jednak wielka sprawa i nie szkodzi naszemu procesowi pracy. Rzeczywiście, jest to kwestia czasu. Im dłużej razem pracujemy, tym lepiej rozumiemy swoją lokalną kulturę. W każdym razie, pomimo tych wszystkich różnic, nadal lubię pracować z profesjonalistami z innych krajów. Dzięki temu praca jest jeszcze ciekawsza.

Jak ważne jest dobre zarządzanie projektami dla programisty?

Zarządzanie projektami ma kluczowe znaczenie. Projekt prawdopodobnie zakończy się niepowodzeniem w 90% przypadków, jeśli nie będzie przejrzystej komunikacji między klientem a członkami zespołu. Solidne zrozumienie odpowiedzialności jest warunkiem powodzenia projektu.

Pracowałem nad projektami, które miały i nie miały kierowników projektów. W pierwszym przypadku płynnie i łatwo komunikowałem się z innymi inżynierami oprogramowania i programistami. Zespół techniczny miał czasami trudności z komunikacją z członkami zespołu nietechnicznymi, ale to była kwestia czasu. Zależy to również od doświadczenia programisty w pracy z osobami nietechnicznymi. Jeśli programista jest biegły w pracy z pracownikami nietechnicznymi i rozumie ich logikę, komunikacja jest prosta i mniej czasochłonna. W przeciwnym razie może to potrwać minutę, ale znowu wrócą na właściwe tory. Małe i proste projekty nie potrzebują nawet kierowników projektów. Nie lekceważę jednak roli kierowników projektów w małych projektach. Oczywiście zarządzają współpracą w bardziej profesjonalny i korzystny sposób.

Których języków lub stosów technologii chciałbyś się nauczyć w przyszłości?

Obecnie badam Unity. Jest to wieloplatformowy silnik gry. Jest bardzo popularny i prawdopodobnie już o nim wiesz. Unity obsługuje różne platformy mobilne, konsolowe, stacjonarne i rzeczywistości wirtualnej. Jest używany głównie do tworzenia gier na iOS i Androida i jest szczególnie popularny w tworzeniu gier niezależnych (niezależnych gier wideo).

Jedną z głównych zalet niezależnego publikowania jest to, że jest ono dostępne dla dużej liczby osób. Na przykład indywidualni programiści i inżynierowie lub małe zespoły programistów mogą tworzyć swoje gry bez wsparcia technicznego i finansowego ze strony dużych wydawców gier. Bawię się silnikiem Unity, tworząc gry 3D i 2D, interaktywne symulacje i inne ekscytujące rzeczy.

CodeRiders to Twój pierwszy i jedyny obszar roboczy. To nie zdarza się często. Dlaczego?

Nie mam wcześniejszej przestrzeni roboczej do porównania z CodeRiders i nigdy nie myślałem o jej opuszczeniu. To już oznacza, że ​​jest to wyjątkowa przestrzeń do pracy. Byłem świadkiem rozwoju tej firmy od małego start-upu do uznanego na całym świecie dostawcy oprogramowania. Ufam i cenię moich współpracowników, ponieważ jesteśmy odpowiedzialni za wysoką reputację firmy. Wierzę w firmę programistyczną CodeRiders i jej wizję. Mam również członka rodziny i większość moich bliskich przyjaciół wśród personelu, więc myślę, że ta trójka stanowi solidne podsumowanie tego pytania.

Zakończmy ten wywiad kilkoma informacjami o Arturze jako osobie. Twoje hobby i zainteresowania?

Cóż, lubię sport, zwłaszcza piłkę nożną. Lubię też grać w gry wideo.

Dziękuję Arturze za poświęcenie czasu na rozmowę z nami. Myślę, że podzieliłeś się z naszymi odbiorcami wieloma przydatnymi informacjami.

Jeśli potrzebujesz utalentowanych programistów i inżynierów, takich jak Artur, nie wahaj się i wyślij nam krótką wiadomość tutaj. Jesteśmy również otwarci na swobodne dyskusje. Zostaw nam swoją wiadomość, a jeden z członków naszego zespołu ds. rozwoju biznesu skontaktuje się z Tobą w ciągu jednego dnia roboczego.