Salesforce CRM jako ścieżka rozwoju developera. Warto ją podjąć?
– Dla ludzi z zewnątrz Salesforce to smok, o którym każdy coś słyszał, ale nikt nie potrafi określić, co jest prawdą – powiedział nam Stefan Abramiuk, Technical Architect w PolSource. Według niego powinniśmy więcej mówić o samej platformie, czym jest i do czego służy, czym jest i do czego służy, ale również o programowaniu, aby przybliżyć to środowisko młodym ludziom.
Stefan Abramiuk i Michał Pycek, Senior Salesforce Developer w PolSource, opowiedzieli nam o swojej ścieżce kariery i o tym, jakie są wady i zalety pracy Salesforce Developera.
Spis treści
Salesforce – charakterystyka i doświadczenia programistów
Jak zainteresowaliście się Salesforcem?
Michał: Będąc studentem pierwszego roku studiów inżynierskich na Polsko-Japońskiej Akademii Technik Komputerowych, rozpocząłem poszukiwania w zdobyciu pierwszego doświadczenia w pracy zawodowej. W tamtym czasie bardziej niż na ewentualnym wynagrodzeniu za moją pracę zależało mi na dołączeniu do innowacyjnego środowiska profesjonalistów, w którym mógłbym skonfrontować swoją wiedzę zdobytą na studiach z aktualną sytuacją na rynku IT.
Szczęśliwie tak się złożyło, że dołączyłem do firmy, która była partnerem Salesforce, technologii, o której wiedziałem tylko tyle, że jest czymś nowym i przełomowym w kontekście podejścia do wdrażania systemów informatycznych. Jednocześnie była to firma, która wymagała znajomości tych samych zagadnień, z którymi miałem już kontakt wcześniej na studiach.
Stefan: Pewnie jak większość z nas w tamtych czasach: przez przypadek. Mój ówczesny pracodawca zajmował się outsourcingiem i pojawił się klient, a ja byłem na ławce rezerwowych. Na początku było ciężko. Trudno było się przekonać do kolejnej technologii, nie było wtedy tyle dokumentacji czy Trailheada. Jednak budowa aplikacji na gotowej platformie ma swoje niepodważalne zalety.
O czym w kontekście Salesforce’a mówi się za mało? Jak zdefiniowalibyście Salesforce?
Michał: W przypadku Salesforce, zdecydowanie za mało mówi się o możliwościach tej technologii. Większość ludzi, którzy nie mieli z nią bezpośrednio kontaktu, postrzega Salesforce jako gotowy system CRM w chmurze, który za pomocą kilku kliknięć dostosowujemy tak, aby pozwalał realizować procesy biznesowe firmy. W pewnym sensie jest to prawda, ale taka opinia nie odzwierciedla w całości rzeczywistych możliwości technologii. W tym miejscu musimy odróżnić model usług chmurowych typu SaaS (Software as a Service), który oferowany jest przez Salesforce w formie gotowej aplikacji Sales Cloud, ale także PaaS (Platform as a Service), w którym Salesforce udostępnia całą swoją platformę do budowania dedykowanych rozwiązań.
Stefan: Mogę śmiało powiedzieć, że w Polsce o Salesforce w ogóle mówi się mało, szczególnie w kręgach akademickich. Dla ludzi z zewnątrz jest to smok, o którym każdy coś słyszał, ale nikt nie potrafi określić, co jest prawdą. Według mnie powinniśmy więcej mówić o samej platformie, czym jest i do czego służy, ale również o programowaniu, aby przybliżyć to środowisko młodym ludziom. Prężnie działające, polskie Salesforce community z pewnością mogłoby wesprzeć rozwój wiedzy na temat technologii.
Dlaczego warto wybrać Salesforce? Czym wyróżnia się na tle innych technologii?
Michał: Dzięki połączeniu gotowych rozwiązań i szerokiego spektrum narzędzi, z których można skorzystać, Salesforce pozwala wdrożyć skomplikowany system informatyczny w błyskawicznym tempie, zapewniając przy tym wydajność i jakość, których często brakuje w systemach budowanych od zera.
Stefan: Przede wszystkim wyróżniają się ilością dostarczanych funkcjonalności oraz możliwością ich modyfikacji/dostosowania. Salesforce już dawno przestał być tylko CRMem a wyrósł na kompleksową aplikację zdolną obsłużyć większość procesów w firmie. Sprzedaż, obsługa klienta, marketing, HR, wszystko to jest dostępne w jednym miejscu. Dla programisty natomiast jest to gotowy produkt, który rozszerzamy, a więc nie zaczynamy od zera, przez co, rezultat naszej pracy jesteśmy w stanie dość szybko zobaczyć.
Jakie problemy biznesowe rozwiązuje CRM Salesforce?
Michał: Pierwsza odpowiedź, która przychodzi mi do głowy to, że wszystkie, które jest w stanie rozwiązać jakikolwiek system informatyczny.
Stefan: Przede wszystkim umożliwia centralizację procesów. Dane różnych działów firmy są dostępne w jednej aplikacji, co umożliwia ich łatwe przetwarzanie oraz analizę. Dla przykładu, gdy chcemy zareklamować produkt, który kupiliśmy, kontaktujemy się z biurem obsługi klienta. Osoba odbierająca reklamację od razu widzi jaki produkt kupiliśmy i kiedy go kupiliśmy. Jako manager możemy sprawdzić, jak często dany produkt był reklamowany i zadecydować o jego wycofaniu lub konieczności poprawy.
Oczywiście muszę też tu wspomnieć o szybkości dostarczania nowych rozwiązań. Złożone projekty w świecie IT często ciągną się długimi miesiącami, a nawet latami. My często dostarczamy gotowy produkt w okresie 3-6 miesięcy.
Na czym polega praca Salesforce developera?
Michał: Rolą Salesforce Developera jest dobranie odpowiednich narzędzi do zrealizowania wymagań w sposób jak najbardziej efektywny, co niekoniecznie oznacza użycie narzędzi, które są niejako wbudowane w platformę, ponieważ sama platforma jest otwarta na korzystanie z dowolnego zestawu technologii i języków programowania.
Stefan: Odpowiadając najprościej jak umiem: praca taka polega na rozwiązywaniu zadań powierzonych przez przełożonego. Metodologia jest taka sama jak w każdym innym projekcie IT. Różnica jest natomiast w sposobie osiągnięcia celu. W przypadku Javy wszystko musi się znaleźć w kodzie. Jeżeli chcemy stworzyć stronę www, musimy ją zaimplementować. W Salesforce mamy często wybór.
Dostarczamy funkcjonalność za pomocą konfiguracji (zmiany parametrów wbudowanych elementów) lub poprzez jej zakodowanie. Najczęściej zadania, które taki programista ma dostarczyć składają się ze zmian w kodzie oraz konfiguracji. Znaczy to mniej więcej tyle, że programista nie może tylko programować, musi poznać środowisko Salesforce i potrafić się nim posługiwać. Nie możemy być zwykłymi koderami.
Salesforce dla developera – jak się nauczyć i zacząć pracę w tej technologii
Jak zacząć pracę w Salesforce? Jaka wiedza jest potrzebna, by poradzić sobie z pierwszymi zadaniami na stanowisku Salesforce Developera?
Michał: Najlepiej udać się na stronę internetową firmy, która specjalizuje się we wdrażaniu systemów Salesforce i sprawdzić aktualne oferty pracy. Nawet jeśli akurat brakuje jakiejś oferty na stronie internetowej, to polecam wysłanie wiadomości e-mail z CV do działu HR, bo w rzeczywistości może się okazać, że taka możliwość zatrudnienia na wymarzonym stanowisku lub podobnym istnieje, tylko z pewnych przyczyn zabrakło jej na stronie. W tym przypadku warto również zwrócić uwagę na możliwość odbycia stażu, pod okiem doświadczonych programistów, którzy wprowadzą w świat Salesforce i zadbają o prawidłowy rozwój. Do podjęcia pracy z technologią Salesforce wymagana jest przede wszystkim wiedza na temat programowania obiektowego, technologii webowych i znajomość języka angielskiego.
Stefan: Oczywiście na początku trzeba zdobyć wiedzę na temat samej platformy. Raczej żadna firma nie zatrudni nas na stanowisku Salesforce Developera, jak nie będziemy znali środowiska Salesforce. Są oczywiście różne programy stażowe, akademie i szkolenia z Salesforce od podstaw do wersji zaawansowanych. Jest to chyba najkorzystniejsza opcja dla nowicjuszy, ale też dla firm. Uczymy się pod okiem ludzi, którzy sami są programistami i poznajemy kolejne elementy układanki w bezpośrednim kontakcie z prowadzącym. Z drugiej strony prowadzący może nas wstępnie ocenić.
Ostatnimi czasy obserwuję wysyp książek o tematyce Salesforce. Jednak powstrzymałbym się przed zakupem, zanim nie zobaczymy, co tak naprawdę chcemy wiedzieć. Chodzi mi przede wszystkim o to, aby wybrać książki, które nam posłużą i będą stanowiły bazę wiedzy. Osobiście polecam oczywiście platformę Trailhead. Jest to ogromne źródło wiedzy ułożone w postaci krótkich lekcji zakończonych testem. Nie jest to platforma tylko dla programistów. Możemy się z niej nauczyć sporo o procesach biznesowych, a nawet o sposobie pracy w zespole. Tak więc jeżeli interesuje nas technologia Salesforce, zanim zaczniemy staż, praktyki, czy szkolenie, zanim wyposażymy się w mądre książki powinniśmy zajrzeć na Trailhead.
Co do pytania, jaka wiedza jest potrzebna, oczywiście musimy poznać język Apex. Programista Salesforce jest często zarówno front, jak i back-end developerem, a więc uczymy się Lightning Components, Lightning Web Components do tego wszystkiego dochodzą metadane, oraz SFDX, który jest obecny już w większości projektów. No i oczywiście GIT. Nie wszystko na raz. Nie musimy od razu rzucać się na front end, ale w pewnym momencie i tak będzie trzeba się z tym zmierzyć.
Co do pierwszych zadań to trzeba przede wszystkim zrozumieć, czego przełożony od nas oczekuje. Musimy zrozumieć, co mamy konkretnie zrobić. Czyli trzeba komunikować się, pytać, ale też szukać i doszkalać.
Jak na początku wygląda praca w technologii Salesforce?
Michał: Początki pracy w technologii Salesforce to głównie nauka i poznawanie możliwości platformy. Do dyspozycji mamy darmowe środowiska Salesforce, a także całą platformę szkoleniową stworzoną w tym celu. Istnieje również bardzo dużo materiałów online i jedna z najlepszych dokumentacji technicznych, z których miałem możliwość korzystać. Z każdym rokiem tematów do nauki jest coraz więcej, ponieważ platforma jest ciągle rozwijana o najnowocześniejsze rozwiązania ze świata IT.
Stefan: To wszystko zależy od tego czy dopiero zaczynamy swoją przygodę z programowaniem, czy przesiadamy się z innej technologii. Przesiadka jest prostsza, gdyż mamy już pewną wiedzę o świecie IT. Gdy jest to nasz debiut mamy sporo rzeczy do nadrobienia, takich jak organizacja pracy w zespole, czy narzędzia.
Wspomniałem już o programach stażowych. Na nich często mamy okazję zobaczyć jak wygląda praca na projekcie od wewnątrz. Dodatkowo dzięki temu osoby zaczynające pracę w Salesforce w mojej firmie mogą udowodnić, że posiadają minimum wiedzy potrzebnej do pracy na projekcie. W mojej firmie mamy 3 etapy, gdzie najpierw jest czyste szkolenie oparte o trailhead, potem dostajemy ćwiczenia tzw. “Hands-On”. Trzecim etapem jest praca jako “cień” programisty. Przyglądamy się prawdziwemu kodowi na prawdziwym projekcie.
Jakie są wady, a jakie zalety pracy Salesforce Developera?
Michał: Zaletą pracy Salesforce Developera jest możliwość korzystania z najnowocześniejszych technologii przy budowaniu systemów klasy enterprise, które wymagają nierzadko rozwiązywania ciekawych problemów architektonicznych wychodzących poza schemat pracy programisty danego języka programowania. Jednym z największych wyzwań, z którymi należy się zmierzyć jest tak naprawdę zdobycie obszernej wiedzy na temat platformy. Następnym krokiem jest nabycie umiejętności wykorzystania jej w najlepszy możliwy sposób i jednocześnie aktualizowanie jej na bieżąco wraz z wprowadzanymi aktualizacjami. Nie jest to zadanie proste, ponieważ platforma oferuje ogromną ilość możliwości zarówno w modelu SaaS jak i PaaS, aczkolwiek z pewnością warto zdać kilka dostępnych certyfikatów Salesforce, które potwierdzą znajomość platformy, a także pomogą w aktualizowaniu wiedzy.
Stefan: Może najpierw zalety. Jest to środowisko, w którym nie musimy najpierw narysować kwadratu, by w końcu nadać mu kształt samochodu. Znaczy to mniej więcej tyle, że nie martwimy się konfiguracją bazy danych, czy serwera www. Zajmujemy się tym, co potrafimy i lubimy, czyli programowaniem. Samo środowisko deweloperów zarówno na świecie, jak i w Polsce mocno się rozwinęło. To znaczy, że mamy dużo więcej materiałów, oraz pomocy z zewnątrz. Dodatkowo programiści dość często rozwijają się poza otoczkę samego programowania i stają się konsultantami, którzy potrafią doradzić klientowi optymalne rozwiązanie.
Co do wad. Jest to środowisko oparte o gotową platformę zbudowaną na chmurze, a więc mamy całą gamę limitów, z którymi musimy się zmierzyć. Nie są to tylko limity techniczne, ale również ograniczenia spowodowane konstrukcją pewnych funkcjonalności. Dla przykładu dodanie własnego przycisku na pewnych wbudowanych stronach jest często nie lada wyzwaniem. Większość wad samego kodowania widzimy jeżeli mamy doświadczenie z innymi technologiami. Pierwotnie projektując możliwość pisania kodu, architekci Salesforce założyli, że będzie to robione tylko i absolutnie tylko wtedy, gdy nie da się inaczej. W ich mniemaniu było to bardzo rzadko. Okazało się jednak inaczej. Co prawda wiele się już zmieniło i zmienia nadal na korzyść programistów, ale jest jeszcze pewna droga do pokonania.
Z czego Waszym zdaniem wynika obecna popularność tego kierunku kariery dla developerów?
Michał: Wydaję mi się, że jest to świetna platforma do rozwoju umiejętności programowania, która dzięki swojej architekturze wymaga od programisty stosowania najlepszych praktyk, pisania wydajnego i skalowalnego kodu. Jednocześnie nie zamyka programisty na daną technologię i daje możliwość poszerzania wiedzy w dowolnym kierunku.
Stefan: Według mnie jest to proste prawo popytu i podaży. Rośnie zapotrzebowanie na Salesforce Developerów, gdyż jest więcej firm chcących ich zatrudnić, a to z kolei przez to, że jest więcej klientów zainteresowanych technologią. Firmy tego segmentu też dość dynamicznie się rozwijają. Od momentu dołączenia do mojej obecnej firmy do teraz, czyli w ciągu 4 lat, firma urosła 4 krotnie.
Jakie firmy/branże korzystają z rozwiązań opartych o platformę Salesforce i dlaczego?
Michał: Salesforce jest na tyle wszechstronną platformą, że korzystają z niego firmy z wielu różnych branż. W jednym z projektów dla firmy Home | Azur (azuruw.com), w którym miałem przyjemność brać udział, stworzyliśmy produkt oparty o Salesforce łączący brokerów ubezpieczeniowych i ich klientów. Dzięki zastosowanej technologii byliśmy w stanie w bardzo krótkim czasie stworzyć innowacyjne rozwiązanie, które pozwala brokerom z łatwością współpracować z wieloma firmami ubezpieczającymi, jednocześnie spełniając ich obietnicę, że zadbają o indywidualne potrzeby każdego klienta, zapewniając przy tym wysoki standard obsługi.
Aktualnie pracuję na projekcie dla firmy Motorola Solutions Polska – Motorola Solutions Polska, gdzie przeprowadziliśmy cyfrową transformację mającą na celu migracje partnerów biznesowych ze starego systemu do Salesforce Community. Dzięki temu udało nam się ułatwić prowadzenie sprzedaży, zapewnić spersonalizowaną obsługę, skonsolidować starsze systemy i jednocześnie zmniejszyć koszty związane z ich obsługą. Projekt obejmował spełnienie wymagań wielu grup użytkowników, współpracę między wieloma zespołami deweloperów i integracji łączących się w jedno zaawansowane rozwiązanie.
Stefan: Może odpowiem z drugiej strony. Jeżeli chodzi o branżę, to do tej pory nie spotkałem się jeszcze z wojskową. Biorąc pod uwagę ilość rozwiązań dostarczanych przez Salesforce, każda firma przetwarzająca większe ilości danych lub gdzie pracują większe zespoły, znajdzie tu coś dla siebie. Jest oczywiście jedno “ale”. Chodzi o koszt pojedynczych licencji. Innymi słowy, raczej nie zaprzęga się Salesforce do pojedynczego salonu fryzjerskiego a do całej sieci, chociaż nie mówię, że nie można.
Jak waszym zdaniem będzie wyglądała przyszłość Salesforce’a?
Michał: Nic nie wskazuje na to, żeby Salesforce przestał się rozwijać w najbliższym czasie. Wręcz przeciwnie, to właśnie szeroka ekspansja firmy poprzez pozyskiwanie innych technologicznych gigantów takich jak: Slack, Mulesoft, czy Tableau, pozwala sądzić, że platforma będzie dalej poszerzana i rozwijana w oparciu o najnowocześniejsze technologie.
Stefan: Już teraz widzimy, że Salesforce dynamicznie rozwija rozwiązania dokoła samej platformy niebędące jej integralną częścią, ale będące jej rozszerzeniem. Mówię tutaj np. o MuleSoft, który jest elementem służącym do budowania integracji. Sporo się też dzieje jeżeli chodzi o możliwości dawane programistom i tutaj wskażę Lightning Web Components czy SFDX. Na pewno będziemy obserwować kolejne zmiany, nowe elementy, może nowe technologie, za którymi będzie trzeba nadążyć. Salesforce rozwija się też w innych dziedzinach takich jak np. AI. Możemy już budować chatboty, uczące się ludzkiego języka. Wszystko to tworzy zapotrzebowanie na kolejnych inżynierów.
Dzięki mądrym posunięciom Salesforce dawno zostawił w tyle takie rozwiązania, jak Microsoft, Oracle czy nawet SAP będące dość długo na czele stawki i odnotował prawie 20% wzrost dochodu w stosunku do roku 2016. Widząc to wszystko, możemy się spodziewać kolejnych wzrostów i kolejnych miejsc pracy.
Jak według was wygląda przyszłość/rozwój Salesfoce’a na polskim rynku?
Michał: Uważam, że Salesforce dalej będzie zajmował wysokie miejsce na polskim rynku, dzięki dalszemu rozwojowi firm, które będą starały się używać najnowocześniejszych technologii do świadczenia usług na najwyższym poziomie. Według danych z 2018 roku Salesforce oferuje usługi dla 99 ze 100 firm z listy Fortune 100, podczas gdy na całym świecie, już ponad 150 000 firm korzysta z platformy Salesforce, aby usprawniać swoją działalność – World’s #1 CRM – Salesforce EMEA.
Oznacza to także, coraz większe zapotrzebowanie na usługi profesjonalistów, którzy będą umieć zaimplementować rozwiązanie oparte o tę technologię, dlatego wydaję mi się, że jest to świetna droga kariery dla programistów chcących tworzyć aplikacje, z którymi wszyscy na co dzień mamy kontakt, może nawet czasami nieświadomie.
Michał Pycek. Senior Salesforce Developer w PolSource. Posiada 13 certyfikatów Salesforce oraz ponad pięcioletnie doświadczenie pracy w technologii. Poprzez lata pracy nad zróżnicowanymi projektami IT, zdobył rozległą wiedzę na temat zarządzania wszystkimi aspektami cyklu życia oprogramowania w różnych technologiach, strukturach, branżach i metodologiach. Prywatnie interesuje się e-sportem.
Stefan Abramiuk. Technical Architect w PolSource. Pracuje w branży IT od 9 lat. Poza Salesforce zajmował się programowaniem w takich językach jak ANSI C, C++ oraz Java. Dołączył do warszawskiego zespołu PolSource 4 lata temu. Zaczął jako Senior Software Developer. Od trzech lat w roli Technical Architect’a. Posiada 10 certyfikatów Salesforce i jest na ścieżce do Certified Technical Architect. Prywatnie interesuje się astrofizyką oraz muzyką.