Mentionsy
DevTalk #140 – O Salesforce CRM ze Stanisławem Zaniem
Programowanie bez kubernetesów, dockerów i mikroserwisów? Dla wielu to brzmi jak cyfrowy skansen, ale dla Stanisława Zania to codzienność, w której realną wartość biznesową dostarcza się w godziny, a nie tygodnie. Choć praca na „niebieskiej platformie” wiąże się z rygorystycznymi limitami i brakiem klasycznego przycisku „rollback”, to właśnie te ograniczenia stają się paliwem dla kreatywnej […]
The post DevTalk #140 – O Salesforce CRM ze Stanisławem Zaniem appeared first on DevTalk.
Szukaj w treści odcinka
Witamy w kolejnym odcinku podcastu DevTalk, w którym to dzisiaj bardzo nietypowy temat, ponieważ Stanisław Zań wprowadzi nas w aspekty programowania Salesforce.
Jestem programistą Salesforce już od pięciu lat i w zasadzie zacząłem tak moją karierę w IT.
Nie pracowałem w innych technologiach, zacząłem od Salesforce-a i jakoś tak dostałem w tej branży na niebieskiej platformie.
Bardzo jestem ciekaw jak ta nasza rozmowa dzisiejsza się potoczy, bo szczerze mówiąc ja nigdy nie korzystałem z Salesforce'a, ledwo wiem co to jest i celowo się nie doszkalałem z tego tematu przed naszą rozmową, ponieważ prawdopodobnie większość naszych słuchaczek i słuchaczy jest na takim samym poziomie wiedzy na temat Salesforce'a jak ja teraz, więc poznanie co ty robisz na co dzień i co rozumiesz przez programowanie Salesforce'a może być wydaje mi się takim fajnym poszerzeniem horyzontów.
Więc może zacznijmy od tego, co to w ogóle jest Salesforce?
No to tu można rozdzielić na kilka warstw, ale tak od tej najbardziej ogólnej, no to Salesforce jest systemem CRM-owym, Customer Relationship Management, który pozwala nam zarządzać jakby relacjami z klientami, a już tak bardziej precyzyjnie to, co Salesforce oferuje, jeśli chodzi o pewne jego produkty, to jest głównie sprzedaż i serwis.
I Ty pracujesz jako programista, rozwijasz samego Salesforcea, czy pracujesz u jakiegoś klienta, który używa tego narzędzia i dopisujesz rozszerzenia specyficzne dla jednej konkretnej firmy?
Pracuję zwykle u klientów tych już końcowych, którzy licencję do Salesforcea sobie kupują od samego Salesforcea, a mnie wynajmują, żebym tą platformę rozwijał i robił im szeroko pojęty konsulting i rozwój tej aplikacji.
To jest to multitenantowe środowisko i po prostu Salesforce nam udostępnia pewne zasoby na swoich serwerach, do których my się łączymy chmurowo i to sobie w tej chmurze jakoś tam działa.
Mogę też rozwijać frontend poprzez języki JavaScript, powiedzmy, a chociaż technologii frontendowych na ten moment są trzy z jakiegoś powodu, bo Salesforce ogólnie lubi bardzo dużo zmian robić.
Ogólnie wszystkie te backendowe rzeczy, które w Salesforce chcemy zaprogramować, no to musimy respektować tzw.
To zależy w zasadzie, bo konie specyfiką Salesforcea jest to, że mamy obowiązkowe updaty trzy razy w roku, więc nie jest tak, że można się kisić na Javie 8 od 15 lat, tylko faktycznie trzy razy w roku mamy obowiązkowe przejście na nowszą wersję.
I Salesforce stara się rozwijać trochę te swoje narzędzia, więc raz na rok, raz na dwa lata dojdzie faktycznie coś, co pozwoli nam uprościć te poprzednie rzeczy i trochę to zoptymalizować.
O tamtą chwilę wygląda tak, że masz jakieś komponenty, które są przygotowane nie przez jakieś zewnętrzne biblioteki, tylko jakieś komponenty przygotowane przez Salesforce biblioteki, tak?
Ale no, raczej Salesforce nam udostępnia komponenty zbudowane przez niego.
I to faktycznie jest taki stack komponentów od Salesforce'a, które wyglądają jak Salesforce i można je rozwijać.
Natomiast tego frontendu z mojego doświadczenia robi się najmniej, no bo już frontend jakby jest zawarty w pakiecie z Salesforce'em.
Mamy tam, możemy sobie po prostu tak upraszczając chodzić po bazie danych i wyświetlać rzeczy w dynamiczny lub niedynamiczny sposób i faktycznie sobie te frontendowe rzeczy dostosowywać tym, co Salesforce nam gwarantuje i dopiero chcemy sobie to bardzo rozwinąć, dodać jakieś niesamowite kolorki, animacje, to dopiero przechodzimy do pisania tego frontendowego kodziku.
To Salesforce to trochę rozgranicza u siebie w nomenklaturze wewnętrznej, ponieważ mamy taki podział kompetencji na konsultantów i na deweloperów powiedzmy.
I to też w zależności od firmy wygląda trochę inaczej, natomiast modelowo według Salesforce konsultantem
Więc w zasadzie Salesforce jest fajną karierą dla kogoś, kto chce rozwijać biznes tak programistycznie, natomiast też lubi rozmawiać, bo faktycznie ta ścieżka konsultancka i wyklikanie tych rzeczy na bieżąco jest bardzo tutaj, mimo wszystko potężne.
Jednym z projektów ostatnich na przykład to było, musieliśmy zaimplementować na produkcie Salesforce'a kalendarz do spotkań powiedzmy i trzeba było dokonfigurować dostępność ludzi, zasobów i to było dużo administracji jakby powiedzmy
A jeżeli popsuje, no to wtedy są takie problemy, że Salesforce sam w sobie nie bardzo proponuje narzędzia do powrotu do poprzednich wersji, że tak powiem.
Jeżeli coś popsujemy w naszej bazie danych Salesforce'a, która jest bazą na ich serwerach,
I nie zrobimy sami rollbacka na zasadzie backupu, na zasadzie nie wciągniemy sobie starych danych do Excela, no to prawdopodobnie nie bardzo mamy jak te dane poprawić, no bo Salesforce takich narzędzi sam z siebie nie daje, chyba że zapłacimy naprawdę bardzo, bardzo dużo pieniędzy.
I są duże biznesy innych firm zewnętrznych, które się specjalizują tylko w procesie DevOpsowym dookoła Salesforcea właśnie, żeby te rollbacki umożliwić w sensowny sposób.
Salesforce teoretycznie wymaga przed wdrożeniem, żeby kod był pokryty testami na 75% minimum i jeżeli jest tego pokrycia procentowego mniej, no to nie możemy go przepchnąć na środowisko wyżej.
Chociaż wiem, że jakby ktoś spojrzał takim purystycznym okiem na te testy, to by powiedział, że to nie są wcale testy jednostkowe, tylko to są testy prawie że integracyjne, ponieważ sam Salesforce w dokumentacji wymaga, żeby...
Czy to są jakieś biblioteczki do testów, takie wzięte ze środowiska Javy, czy to są też dostarczane przez Salesforce'a, jakieś autorskie?
Są autorskie od Salesforce'a, natomiast przez to, że ta platforma jest bardzo ograniczona, to znaczy bardzo ograniczona.
I te wszystkie open source'owe podejścia, które do tego są, to jest to ładny framework do tego, żeby to, co Salesforce nam dostarczył, używać bardziej, powiedzmy, rozsądnie.
Natomiast mimo wszystko jest to dostarczane przez Salesforce.
Jakby jest dążenie, bo rozumiem, że jest społeczność wokół Salesforce'a również zbudowana czy w Polsce, czy w różnych krajach, tak?
Tak, to regularnie mamy, w każdym większym mieście w Polsce obecnie są meetupy z Salesforce'a, można przyjść zjeść pizzę, Salesforce na ogół płaci za to i sobie porozmawiać o praktykach.
Przez to jak Salesforce Ascend działa, to na przykład pewnych wyjątków nie da się złapać w testach, no i trzeba mieć ten margines, że nie wszystko się uda.
Jeśli chodzi o deklaratywne, to Salesforce już nie wymaga żadnych testów tam, więc zdecydowanie możemy sobie wyklikać.
Można jakoś tam zintegrować gita, czy jakieś inne repozytorium, może Salesforceowe jest dedykowane, gdzie ten kod faktycznie jest wersjonowany, można sobie go tam przewijać w historii, czy nie bardzo?
Korzystamy z gita po prostu zewnętrznego, Salesforce sam w sobie nic nie daje takiego.
Aczkolwiek jest też taka rzecz, że Salesforce udostępnia na swojej platformie konsolę deweloperską powiedzmy, która wygląda jak taki bardzo stary Notepad++ i przez to, że dużo jest kontraktorów z krajów Azji Wschodniej, którzy nie bardzo czasem stają dostępy, no to praktyką na pewnych dużych projektach jest to, że się z historii wersji po prostu nie używa.
Ja już bym powiedział, że jest problem projektowy, no bo Salesforce trochę nie służy do projektowania takich ogromnych kobył, tak?
Na pewno Salesforce obecnie bardzo promuje swoje rozwiązanie AI, które się nazywa AgentForce.
o to pisanie kodu Apexowego w tym przypadku, jak sobie porównywałem z chatem GPT, z Gminy itd., to Salesforceowe rozwiązanie jest zdecydowanie najgorsze i wypluwa najgorszy kodzik, który ma wszystkie złe praktyki, których ja się uczyłem.
AgentForce Vibes, bodajże się to nazywa, ponieważ Salesforce bardzo idzie w marketingowe nazwy, które też często zmienia.
Być może tak i na pewno Salesforce teraz udostępnia, bo bardzo promuje, żeby implementować różne agenty na swoich rozwiązaniach, którzy przejmą właśnie obowiązki.
Są duże problemy kosztowe i z testowaniem tego wszystkiego i Support z Salesforce też niekoniecznie jest tu pomocny, bo sami jeszcze nie wiedzą, jak to do końca działa.
Przypomniało mi się, w ogóle gdzie ostatnio Salesforce mi się obił o uszy i ja słucham takiego podcastu AI Daily Brief, zresztą bardzo fajnego, który tam mówi o nowinkach w świecie AI-owym i słucham tego dwa razy w tygodniu powiedzmy od
I właśnie jakoś przed wakacjami było dużo o tym, że właśnie jak powiedziałaś tę nazwę AgentForce, to mi tak kliknęło, że przed wakacjami chyba jakoś bardzo było głośno o tym, że Salesforce mocno idzie w tego AI-a i że faktycznie bardzo duży nacisk jest kładziony na to, żeby zawojować ten CRM-owy świat i być może nie tylko za pomocą tych technologii.
Na wakacjach chyba właśnie zmieniali model finansowania tego i wyszedł troszkę tańszy i powiedzmy pewnie dlatego też stąd zmiana i też jest duże wydarzenie z Salesforce Dreamforce na jesieni, więc pewnie to było marketingowo przygotowane też pod to.
Czy często spotykasz takie rozwiązania właśnie pół na pół, czy może nie pół na pół, a powiedzmy 80% Salesforce i 20% jakieś customowe apki dookoła, które robią bardziej to co...
Wiem, że Salesforce kiedyś próbował wprowadzić takie coś, co się nazywało Salesforce Function i to właśnie pozwalało na serwerach Salesforce'a chyba wykonywać kod Javy, który miał być super zoptymalizowany, natomiast tak dużą cenę dali, że nikt tego nie kupił i finalnie ten produkt po trzech latach chyba się wycofał.
Natomiast no Salesforce też nie jest dobrą maszynką do trzymania danych, że tak powiem, bo jest dość drogi.
Mamy dostęp do bazy, która jest w naszej instancji, natomiast przez to, że to środowisko jest multi-tenant i jest takie elastyczne, to jakbyśmy chcieli czytać, jak to działa pod spodem, to tak naprawdę my działamy na zwirtualizowanym, zdormalizowanym modelu, który się na bieżąco dla naszej instancji Salesforce'a buduje.
Natomiast jak to wygląda faktycznie na serwerze Salesforce pod spodem, no to tam już dostępu nie mamy.
I na przykład jak chcemy sobie zrobić jakieś lepsze indeksy, to też trzeba do Salesforce pisać, żeby nam po swojej stronie włączył indeks na konkretnym polu, żeby nam QR-ka szybciej działała, no bo po naszej stronie mamy trochę ograniczone te możliwości indeksowania.
I często jest taka sytuacja, że trzeba robiąc jakiś projekt odzywać się do supportu Salesforce'a, żeby to oni coś zrobili?
Natomiast na ogół się wygląda to w ten sposób, że wchodzimy sobie na stronę Salesforce'a, podpinamy sobie instancję, której się logujemy, robimy case do supporta, który następnie najczęściej osoba z Azji Wschodniej obsługuje.
Jeżeli na przykład mamy sytuację tego rodzaju, że raz w roku mamy kampanię marketingową i na ogół korzystamy z 10% limitów restowych, załóżmy, czyli tam chyba 100 tysięcy dziennie nam może przyjść i akurat przez jeden miesiąc w roku potrzebujemy więcej, no to Salesforce nam na jeden miesiąc może to włączyć.
No i czasem jak już wejdę sobie bardziej w ten kodzik i będę w stanie zoptymalizować coś, co wydawało mi się, że działa trochę inaczej, a jednak jest lepiej, ewentualnie największą radość mi sprawia to, jak znajdę coś, co działa inaczej niż jest napisane w dokumentacji i się okazuje, że dokumentacja jest zła, bo Salesforce czegoś nie napisał, nie dopowiedział albo o czym w ogóle nie ma wzmianki.
Co jeszcze byś chciał powiedzieć na ten temat Salesforce'a?
Szybkość dostarczania rozwiązań jest to na pewno czymś fajnym, no tylko, że z drugiej strony się to rozbija o biznes, który bardzo często, jak widzi Salesforce'a, no to jest mu to sprzedawane na poziomie, głównie przez Salesforce'a jako niesamowita platforma, która zrobi wszystko.
To, że na ogół klient potrzebuje Excela, który jest kolorowy i chce z Salesforce'a zrobić bardzo drogiego Excela, to już jest inna sprawa, ale to w naszej programistyczno-architektonicznej mierze, żeby to jakoś dograć.
Powiedz proszę jeszcze, gdzie można cię znaleźć, co planujesz, jeśli chodzi o Salesforce i swoją karierę dalej tutaj.
O Salesforce.
Tak, o Salesforce.
Ostatnie odcinki
-
DevTalk #141 – O technologii w służbie bezpiecz...
03.04.2026 10:41
-
DevTalk Trio S03E08 – Kto odpowiada za kod, któ...
28.03.2026 16:40
-
DevTalk Trio S03E07 – Taktyczne wzorce projekto...
26.03.2026 10:04
-
DevTalk Trio S03E06 – Czy AI odbiera nam umieję...
24.03.2026 09:33
-
DevTalk Trio S03E05 – Vendor lock-in i widmo dy...
18.03.2026 10:28
-
DevTalk Trio S03E04 – Poprawianie kodu po LLM-ie
16.03.2026 16:02
-
DevTalk Trio S03E03 – DDD w erze LLM
13.03.2026 09:15
-
DevTalk Trio S03E02 – Czy Twój SaaS przetrwa er...
11.03.2026 10:17
-
DevTalk Trio S03E01 – Czy AI zastąpi programistów?
09.03.2026 10:14
-
DevTalk #140 – O Salesforce CRM ze Stanisławem ...
02.03.2026 17:31