#19 — CRM, CMS, data science – jak odnaleźć się w gąszczu skrótów i pojęć w IT? – część 1
W tym odcinku omawiam szereg popularnych – z punktu widzenia biznesu – skrótów i pojęć ze świata IT, które nierzadko mogą wprawiać w zakłopotanie.
Transkrypcja odcinka
Cześć, nazywam się Krzysztof Rychlicki-Kicior i witam cię serdecznie w podcaście „Software z każdej strony”, w którym dowiesz się, jak łączą się ze sobą świat biznesu i IT.
To jest odcinek dziewiętnasty - CRM, CMS, data science - ja odnaleźć się w gąszczu skrótów i pojęć IT - część pierwsza. W tym i kolejnym odcinku rozwinę i omówię szereg popularnych z punktu widzenia biznesu skrótów i pojęć ze świata IT, które nierzadko mogą wprawiać w zakłopotanie. Z pewnością część z tych skrótów i pojęć wyda ci się znajoma, stąd też omawiam bardzo różnorodne pojęcia - pojęcia z różnych światów i dlatego też ten odcinek został podzielony na 2 części. W tym odcinku skupię się bardziej na skrótach i pojęciach związanych z systemami informatycznymi, a w kolejnym odcinku z pojęciami ze świata danych.
Zaczniemy od skrótu CMS - Content Management System, czyli system zarządzania treścią. CMS-y zastąpiły w dużej mierze zwykłe, statyczne strony internetowe, czyli takie, w których jeżeli chcieliśmy zmienić coś na stronie, potrzebna była pomoc - teraz już nawet nie używanego zawodu - webmastera, osoby, która zmieniała, często bezpośrednio w kodzie HTML, treści związane ni tyle ze strukturą strony czy z jej wyglądem, czy zachowaniem, tylko po prostu treść aktualności czy danych kontaktowych do firmy. Z CMS-ami wiąże się jeden z moich ulubionych tematów do dyskusji, czasami podrzucam go też studentom - czy CMS to strona internetowa czy też aplikacja webowa. Aplikacja oferuje pewien zestaw funkcji, który zakłada istotna interakcję z użytkownikiem, a także możliwość osiągnięcia pewnych konkretnych zadań, realizacji tych zadań. Strona ma zdecydowanie charakter bardziej informacyjny, można powiedzieć - jednokierunkowy. CMS-y są to w praktyce aplikacje webowe, natomiast są to aplikacje, które tak naprawdę posiadają rozbudowaną cześć administracyjną dla tych, którzy tą stroną chcą zarządzać, natomiast dla użytkowników końcowych, którzy odwiedzają efekt tych prac administracyjnych, tak naprawdę jest to często po prostu taka zwykła strona internetowa. Do popularnych CMS-mów można zaliczyć takie, jak Wordpress, Joomla czy Drupal, ten ostatni, zwłaszcza w przypadku takich bardziej rozbudowanych serwisów, można powiedzieć - portali internetowych i jeśli chodzi o większość CMS-ów, nie tylko tych wymienionych, można je często zainstalować zarówno na własnym serwerze, na własnym hostingu, czyli jakby w swojej przestrzeni cyfrowej, natomiast są też liczne usługi, gdzie możemy sobie taką stronę uruchomić i to firma zewnętrzna będzie dbać o jej prawidłowe działanie.
Zwróćmy uwagę, że choć głównym celem CMS-a jest publikowanie zróżnicowanych treści - blogów, stron firmowych, w ogóle szeroko pojętego contentu, jak to się mówi, czyli po prostu treści, chociaż też byłem świadkiem dyskusji, czy kontent jest to po prostu treść - moim zdaniem trochę jest to przesadzone. Można przyjąć, że kontent jest to po prostu treść - moim skromnym zdaniem. Chociaż mamy różne rodzaje treści, różne rodzaje stron, to w praktyce możemy też w Internecie znaleźć często - albo za darmo, albo za drobną opłata rozszerzenia, które są w stanie taką platformę, jak na przykład Wordpress, przekonwertować, chciałoby się powiedzieć, tak informatycznie, umożliwić stworzenie w ramach Wordpress-a platformy sklepowej - na przykład za pomocą wtyczki WooCommerce, tak rozbudowane rozwiązanie, jakieś dedykowane aplikacje czy też choćby takie typowo commersowe platformy jak Magento, natomiast można, zwłaszcza w przypadku mniejszych firm, które mają prostsze modele działania - można wtedy z takich wtyczek skorzystać. Z CMS-ów można też korzystać choćby do dystrybucji treści multimedialnych, przydzielanie dostępu po zakupie… - tych opcji łączenia takich sterydów dla pozornie prostych CMS-ów jest naprawdę wiele.
Kolejne ważne pojęcie - CRM, Customer Relationship Management, czyli oprogramowanie do zarządzania relacjami z klientami. W praktyce to pojęcie, czyli właśnie Customer Relationship Management, wykracza poza samo oprogramowanie, natomiast przyjęło się w takiej potocznej mowie mówić - jakiego CRM-a używasz w firmie. Oprogramowanie przy takim zarządzaniu relacjami jest - nie da się ukryć - bardzo, bardzo ważne. Oprogramowanie klasy CRM ma na celu usprawnienie bardzo różnych działań, można by wymienić ich bardzo wiele, natomiast wszystkie one są nakierowane na budowanie i utrzymywanie relacji z już istniejącymi klientami, ale też na pozyskiwanie i śledzenie tych tworzących się relacji z nowymi klientami. Sam jestem dość mocno przywiązany, można powiedzieć, do takiego programowania, bo Makimo, czyli w software house, którego jestem współwłaścicielem, to właśnie mi przypadła rola związana ze sprzedażą, nadzorowanie tego działu firmy, więc korzystam z CRM-a na co dzień i widzę naprawdę wiele zalet w porównaniu do zarządzania sprzedażą bez takiego oprogramowania. Podstawową funkcją CRM-a jest rejestrowanie informacji o klientach, a także o działaniach, które w związku z tymi klientami chcemy podjąć. Jeżeli na przykład dany klient powinien podjąć jakąś decyzję w sprawie chociażby oferty, którą wysłałeś tydzień temu, to taka informacja powinna znaleźć się w CRM-ie. Dawno nie odzywałeś się do wieloletniego klienta - w CRM-ie znajdziesz historię kontaktów, dzięki czemu będziesz wiedział/wiedziała w jaki sposób do tego klienta się odezwać. Przy odrobinie wysiłku można zintegrować CRM z różnymi innymi aplikacjami czy chociażby stroną internetową firmy, dzięki czemu, jeżeli ktoś wypełni formularz kontaktowy, to informacja również trafi od razu CRM-a. Jeśli chodzi na przykład o integrację z innymi narzędziami, to coś, co znam na co dzień, z życia firmy - jest to integracja CRM-a z narzędziem typu Slack, czyli z platformą do komunikacji wewnątrzfirmowej i w momencie, w którym trafia nowy link ze strony, czyli na przykład ktoś zostawił dane kontaktowe, to trafia to co CRM-a i do Slacka, czyli od razu widzimy, że jest jakieś zainteresowanie, ktoś coś napisał.
W tej pięknej historii jest tylko jedno “ale”. CRM nie zadziała bez danych, a jednym z podstawowych grzechów użycia CRM-a, który, nie da się ukryć ja też popełniam, jest konieczność stałego i regularnego aktualizowania informacji. Bo o czym ma nam przypomnieć CRM, jeżeli nie wpiszemy danych o klientach czy informacji, że klient powinien podjąć decyzję w sprawie oferty - najlepszy system po prostu sobie tego nie wymyśli.
Drugą ważną kwestia przy wyborze CRM-a jest kwestia dopasowania tego CRM-a do procesu, który mamy w firmie - proces sprzedaży, ewentualnie dostosowanie tego procesu do narzędzia, chociaż to raczej kwestia jakichś drobnych optymalizacji, a nie naginania się do narzędzia, zresztą opinie bywają różne. W Internecie można znaleźć materiały osób bardziej doświadczonych w temacie CRM-ów, natomiast nie się ukryć, że proces sprzedaży i CRM muszą współgrać, bo inaczej ten CRM będzie leżał odłogiem i nie przyniesie nam żadnych realnych korzyści.
Kolejnym, może mniej popularnym, ALE też zyskującym na znaczeniu, zwłaszcza od czasu Covidu, rodzajem oprogramowania, takim skrótem, jest LMS, czyli Learning Management System - system do zarządzania kursami learningowymi, ale i można powiedzieć szerzej, w ogóle system do zarządzania procesem edukacji z wykorzystaniem środków elektronicznych. Typowy LMS to platforma, która pozwala na cyfrową realizację zadań, które znalazłyby się w procesie edukacji - od dystrybucji treści szkoleniowych, czy to w formie prezentacji, nagrań wideo, materiałów tekstowych, nagrań dźwiękowych czy jakichś ćwiczeń, przez weryfikację wiedzy, różnego rodzaju testy, quizy, które system jest w stanie sprawdzać samodzielnie, ale też możliwość na przykład udzielenia dłuższych odpowiedzi tekstowych, które już potem weryfikuje jakiś mentor czy nauczyciel i oczywiście zarządzanie całym procesem edukacji, podziału na grupy, generowanie certyfikatów, rywalizacja, zbieranie również feedbacku, ocen od uczestników.
Chciałbym przy tym zwrócić uwagę, że choć, oczywiście jeśli pada takie hasło, to kojarzy nam sę to po prostu z programowaniem placówkę stricte edukacyjnych - szkół, uczelni wyższych, to coraz częściej spotyka się sytuacje, w których tego rodzaju rozwiązania są wdrażane w firmach na wewnętrzne cele szkoleniowe. takie platformy można też przekonwertować w pewien sposób, zastosować jako bazy wiedzy, nawet jeżeli ten aspekt zaliczania kursów nie jest dla nas istotny, to jest to na pewno ciekawe miejsce, w którym można zebrać wiedzę, przedstawić ją w ciekawej formie i dostępnej na przykład dla wszystkich pracowników.
W dobie Covidu ważnym aspektem stała się możliwość uczestniczenia w procesie dydaktycznym także w czasie rzeczywistym, bo choć platformy e-learningowe istniały od kilkunastu lat, jeszcze przed Covidem, to głównie polegały one na asynchronicznym przyswajaniu treści, czyli krótko mówiąc - każdy korzysta sobie z tych materiałów, kiedy chce, natomiast właśnie konieczności przeniesienia z wielu usług edukacyjnych do sieci, pojawiła się kwestia takiego synchronicznego uczestnictwa w zajęciach, czyli w czasie rzeczywistym. Jest nauczyciel, jest szkoleniowiec, który prowadzi zajęcia i uczestniczą w nim także kursanci, studenci czy też uczniowie. I tu było wiele wyzwań, bo tak naprawdę transmisja, zwłaszcza wideo, ale też audio, transmisja z kamerek pomiędzy grupami liczącymi do kilkudziesięciu czy kilkuset osób to jest bardzo duże wyzwanie dla mniejszych systemów od strony technologicznej. I z tego względu, istotnym fragmentem takiej infrastruktury dla LMS-ów stały się rozwiązania takie, jak Teams czy Zoom, bo one już nawet wcześniej - umożliwiały taką transmisję. Jeśli chodzi o LMS-y, to tak naprawdę Teamsy, które być może początkowe były traktowane jako platforma do współpracy w formach z opcją rozmów grupowych, zaczęły być używane na wielu uczelniach, w wielu szkołach, właśnie z uwagi na możliwość transmisji zajęć. Z drugiej strony nie są to - zwłaszcza Teamsy - platformy stricte przystosowane do edukacji, czasami brakuje jakichś bardziej zaawansowanych opcji i pod tym względem, pod względem stopnia skomplikowania, jeśli chodzi o tworzenie quizów, jak bardzo skomplikowane quizy czy egzaminy możemy tworzyć - tutaj takie typowe LMS-y mogą być w lepszej sytuacji, jak chociażby Moodle czy Blackboard. Jeżeli aspekt tej transmisji w czasie rzeczywistym wydaje się dla ciebie ważny, to wydaje się, ze rozsądnie jest sięgnąć po Teamsy czy inne tego rodzaju usługi, natomiast warto pamiętać, że w dzisiejszym świecie integrowania oprogramowania ze sobą nie jest takie skomplikowane i tutaj jest możliwość integracji Moodle’a, czyli klasycznego LMS-s z Teams’ami czy Zoomem i wtedy możemy skorzystać z najlepszych cech obu rozwiązań.
Drugą część tego odcinka chciałbym poświęcić pojęciom z trochę inne grupy - zaczęliśmy od typowych rodzajów oprogramowania, natomiast, można powiedzieć, bardziej od strony biznesowej, teraz chciałbym przejść do strony bardziej technologicznej, natomiast to też jest niezwykle ważne, bo pojęcia przenikają coraz części do świata biznesu, a są one ważny chociażby pod kątem wspomnianego już przed chwilę integrowania usług ze sobą.
Obcując ze światem IT, nawet niekoniecznie w przypadku oprogramowania dedykowanego, ale też i gotowych rozwiązań, można spotkać się coraz częściej z pojęciem API. API to Application Programming Interface i jest to pojęcie bardzo szerokie, które w różnych epokach rozwoju informatyki miało nieco inny wydźwięk i znaczenie, natomiast taka podstawowa definicja była zawsze taka sama - API to sposób dostępu do jakiegoś systemu informatycznego, do jakiejś aplikacji, który jest przeznaczony nie dla człowieka, nie dla takiego użytkownika ludzkiego, można by rzec, tylko dla innego systemu informatycznego. Być może brzmi to dziwnie, dlatego od razu przejdę do przykładu. Wspomniałem, że gdy dodaję nową szansę sprzedaży do CRM-a, akurat my używamy Pipedrive’a to na naszym Slacku pojawia się informacja o tej szansie sprzedaży. Mógłbym oczywiście zadziałać ręcznie, metodą doktora Copiego Pasta, czyli skopiować i wkleić dane z CRM-a a wkleić na Slacku. I to oczywiście by zadziałało, natomiast nie dość, że wymagałoby to mojej interwencji, to jeszcze trwałoby to pewnie dłużej. Musiałbym wtedy skorzystać z interfejsu graficznego obu aplikacji, najpierw oczywiście z Pipedrive’a, żeby coś skopiować, a potem wkleić to w drugiej aplikacji w Slacku. A jak takie rzeczy dzieją się automatycznie? Nasz CRM nie próbuje udawać użytkownika będącego po prostu człowiekiem, przez jakieś wyklikanie interfejsu w Slacku, to aż mi się dziwnie kojarzy jakby to miało wyglądać - dałoby się to zrobić, ale to byłoby to potencjalnie problematyczne w przyszłości. Zamiast tego Slack udostępnia API, czyli taką metodę, z której mogą korzystać inne systemy, dzięki czemu Pipedrive, oczywiście wiedząc w jaki sposób z tym Slackiem się połączyć, może przesłać te informacje automatycznie z góry ustalonym formacie. Najpierw nasz CRM łączy się właśnie ze Slackiem, następnie musi się oczywiście uwierzytelnić, tak jak i my musimy wprowadzić login i hasło, tak są metody uwierzytelniania przez te systemy - głupio by było, gdyby każdy system, każde cyfrowe urządzenie mogło tak po prostu wysłać sobie dane do naszego Slacka, natomiast jak już się uwierzytelni, powie, że tak, jestem Pipedrive’m, chcę wysłać komunikat, to Pipedrive przesyła odpowiedni komunikat z odpowiednimi informacjami i zamyka tą całą procedurę. Wszystko to trwa tak naprawdę ułamek sekundy - przy zwykłych wiatrach jedną, dwie sekundy, natomiast nie dość, że dzieje się coś automatycznie, to jeszcze dużo szybciej, niż gdyby człowiek to skopiował i wkleił. Właśnie takie zachowanie jest możliwe dzięki API, Slack udostępnia takie API, które pozwala innym maszynom, innym automatycznym usługom korzystać z jego funkcji.
Tu pojawia się takie pytanie odwrotne - czy człowiek, zwykły użytkownik, może udawać maszynę i wysłać taki komunikat. Tak. Jest to niezwykle niewygodna dla zwykłego, nietechnicznego użytkownika, byłoby to bardzo trudne, natomiast, zwłaszcza, kiedy mechanizmy automatyzacji, integracji przestają działać, to właśnie programiści często udają maszyny i starają się wysłać komunikat tak, jakby to zrobił inny system, aby sprawdzić co tam przestało działać.
Widać, myślę, że API daje bardzo duże możliwości i nie jest to jedyne zastosowanie, bo API są również często stosowane w aplikacjach mobilnych. Odwołując się do odcinka piętnastego tego podcastu, czyli alfabet Kiciora w zakresie aplikacji webowych, można powiedzieć, że API to zdecydowanie część aplikacji należąca do backend-u, czyli do tej części, która jest zlokalizowana na serwerze, łączy się z bazami danych, w odróżnieniu od front end-u, czyli tej części widocznej dla użytkownika. W momencie, kiedy tworzymy takie API nie musimy od razu stworzyć do niego tej części front end-owej, zamiast tego można stworzyć inne aplikacje czy też możemy skorzystać z innych systemów, które mogą po prostu wpiąć się niejako do tego API i korzystać z niego jako te maszyny, jako ci użytkownicy automatyczni.
I w tym momencie dochodzimy do niezwykle ważnego pojęcia, może nawet z perspektywy biznesu ważniejszego od samego API, ale to API było konieczne do wprowadzenia, zresztą zaraz dowiecie się dlaczego, natomiast mowa o technologiach, które są określane mianem headless, czyli bezgłowe. Brzmi to tak średnio, więc jakkolwiek nie jestem fanem używania pojęć angielskich bezpośrednio, to zostańmy przy tym headless-ie.
Wiele się mówi o tych headless-owych CMS-sach i e-commerce’ach, natomiast warto sobie określić czym ten headless jest. Aplikacja, która jest określana tym mianem jest w założeniu aplikacją bez interfejsu użytkownika, zawierającą jedynie metody z korzystania przeznaczone do automatycznego użycia. W przypadku aplikacji webowych jest to właśnie udostępnienie swoich funkcji przez API. Warto dodać, że aplikacja headless-owa to nie tylko aplikacja webowa, możemy mówić również o aplikacjach desktopowych, uruchamianych bezpośrednio na komputerze, pod warunkiem, że nie zawiera ona interfejsu użytkownika i na przykład żeby z niej skorzystać trzeba użyć innej aplikacji desktopowej. Jest to formalnie możliwe, natomiast jest to przypadek dużo rzadszy. Headless jest więc całkiem zgrabnym określeniem tego, właśnie w kontekście biznesowym, co w kontekście technicznym moglibyśmy nazwać jako aplikacja zawierająca jedynie API. A po co w ogóle mielibyśmy coś takiego robić? Przede wszystkim, niektóre rodzaje oprogramowanie nie wymagają takiej bezpośredniej obsługi użytkownika, bo na przykład są to aplikacje, które integrują ze sobą inne rodzaje oprogramowania, natomiast nawet jeżeli mówimy o takim bardziej tradycyjnym oprogramowaniu, dajmy na to platformy e-commerce, to jej istnienie w trybie headless nie oznacza, że użytkownicy nie mogą z niego skorzystać - wręcz przeciwnie. Do takiego bezgłowego rozwiązania można dorobić wiele głów, czyli różnych interfejsów użytkownika, będących osobnymi aplikacjami, na przykład aplikacją webową do użycia na komputerach stacjonarnych, laptopach, osobno stworzyć aplikację mobilną, która oczywiście będzie działała na iOSie bądź Androidzie, a nawet osobna aplikację desktopową. I będziemy mieli takie 3 głowy jak u cerbera, ale jedno ciało, jedno headless-owe centrum.
Na tym kończymy ten odcinek. Pojęć może nie było zbyt wiele, ale też starałem się je omówić w takim bardziej praktycznym aspekcie, nie tylko przywołać jakieś definicje, ale też podać jakieś przykłady, troszeczkę szerzej ten kontekst nadać. W kolejnym odcinku przejdziemy do świata danych i tego, co jesteśmy w stanie z nich wyciągnąć, także gorąco zapraszam, jak zawsze za 2 tygodnie, a teraz nie pozostaje mi nic innego, jak podziękować za uwagę, ukłonić się nisko i powiedzieć do zobaczenia.