Bez%c2%a0tytu%c5%82u
Już dawno udowodniono, że zadowolony klient to klient powracający, a prawdziwy fan to największy skarb. Najlepszym przykładem jest firma Apple i jej iPhone, gdzie kolejki po zakup flagowca bywały dłuższe niż w czasach PRL-u po mięso i papier toaletowy. 😊 Dlatego też coraz ważniejsze staje się właściwe badanie klientów, aby wiedzieć jaka jest ich opinia na nasz temat, co powinniśmy poprawić oraz co robimy dobrze, aby robić to dalej lub przenosić na inne obszary działalności. W tym właśnie celu podjęliśmy się stworzenia narzędzia, które ułatwi sprawne badanie klientów, dokona analizy ich odpowiedzi oraz zasugeruje odpowiednią korelację między nimi. O tym jak przebiegał proces projektowy, czym się kierowaliśmy, z jakimi zagwozdkami się mierzyliśmy oraz co przyniesie przyszłość dowiecie się w poniższych częściach artykułu.


Czym jest CXUP?

Tworzone przez nas narzędzie jest dostępne w modelu SaaS przy pełnym hostowaniu w Microsoft Azure. W skrócie: jest dostępne dla każdego. Oprogramowanie kryjące się pod nazwą „CXUP” ma kilka podstawowych zadań. Po pierwsze, umożliwi stworzenie i przeprowadzenie badań oraz wizualizację odpowiedzi respondentów. Wyliczy odpowiednie miary i wskaźniki oraz znajdzie zależności między metadanymi odbiorców, a ich odpowiedziami. Z czasem, kiedy uzyskamy więcej danych, będziemy mogli uruchomić mechanizmy machine learning oraz inne zaawansowane algorytmy, które znacząco pomogą wyszukiwać wieloaspektowe zależności pomiędzy różnymi odpowiedziami respondentów.

Dlaczego Microsoft Azure? 

Jesteśmy firmą specjalizującą się w technologiach chmurowych. W zespole LAB zrealizowaliśmy już niejeden projekt przy użyciu różnych technologii Microsoft oraz doradziliśmy wielu klientom jak efektywnie i optymalnie użyć Chmury. Azure daje nam wiele komponentów, które przyspieszają rozwiązywanie typowych scenariuszy tworząc aplikacje web, rest API, takich jak: app service, gateway, blob storage, table storage, sql db, azure functions. Dodatkowo, pozwala odciąć się od zmartwień dotyczących warstwy sprzętowej, zapewniając gotową infrastrukturę w mgnieniu oka.

Wchodząc w buty developera

Naszymi podstawowymi założeniami przy tworzeniu aplikacji jest jej elastyczność, szybkość rozwoju, niezawodność, łatwość monitorowania, utrzymania oraz wysokie standardy bezpieczeństwa. Całość jest wielojęzykowa oraz działa w modelu multitenancy, zapewniając klientom benefity, np. fizyczną separację danych. Dokonaliśmy fizycznego podziału aplikacji UI od API, ułatwiając rozwijanie każdej z części niezależnie.

Tworząc UI postawiliśmy na dobrze znany, chodź wciąż nowy framework od Facebooka – React. Daje on możliwość tworzenia wydajnego interfejsu przy zachowaniu komponentowej budowy oraz reużywalnych elementów. Interfejs użytkownika odcina się od logiki domenowej dzięki ukryciu jej za RESTowym API. Buduje to kolejną warstwę abstrakcji, dzięki czemu interfejs użytkownika możemy w wielu aspektach rozwijać niezależnie od API. Zrezygnowaliśmy z tworzenia kodu reactowego w TypeScript - uznaliśmy, że silne typowanie nie przyniesie nam aż tylu korzyści vs dodatkowy narzut w postali ilości napisanego kodu. Wiem, że wiele osób się oburzy czytając wcześniejsze zdanie, ale to nasza decyzja i zdajemy sobie sprawę jakie są (czy też mogą być) jej konsekwencje. Uznaliśmy, że przy pomocy nowoczesnego IDE jakim jest VSCode oraz bazując na naszych umiejętnościach i doświadczeniu, jesteśmy w stanie tworzyć na tyle poprawny kod JavaScript, unikając błędów niezgodności typów itp. Innym powodem takiej decyzji jest dobra znajomość JavaScript, a stosunkowo niewielka TypeScript.



Do samego projektu interfejsu aplikacji także podeszliśmy nietypowo. Zrezygnowaliśmy z typowych elementów „strony” jakimi są nagłówek i stopka, gdyż konsumują one za dużo miejsca, nie wnosząc przy tym zbyt wiele użyteczności z perspektywy naszej aplikacji. Dane, formularze, kreatory, które znajdą się w aplikacji wymagają dużo miejsca, aby zapewnić użytkownikom wysoki komfort pracy i czytelność. Dlatego zredukowaliśmy elementy interfejsu do niezbędnego minimum. Główne menu nawigacyjne aplikacji to wertykalna belka przyklejona do lewej krawędzi okna, zabierająca raptem kilkadziesiąt pikseli ekranu. Reszta okna dostępna jest dla właściwych nośników informacji. Zmniejsza to konieczność przewijania przez użytkownika ekranu, co pozytywnie wpływa na szybkość i wygodę pracy.

Dylematy i wyzwania 

Jednym z ciekawszych elementów projektu już na samym jego początku była analiza sentymentu wypowiedzi udzielana na pytania otwarte. Obecnie jest kilku dużych dostawców takiego API. Ocena dokonywana jest w procentach od 0 do 100, gdzie 0% to wypowiedź negatywna, a 100% to najbardziej pozytywna. Wykonaliśmy Proof of Concept przy wykorzystaniu kilku API (m.in. od Google i Microsoftu). Ciekawostką jaką zaobserwowaliśmy jest niezbyt udana analiza tekstu w języku polskim, podczas gdy teksty po angielsku są analizowane z bardzo dużą trafnością.

W aplikacjach typu multitenancy częstym wyzwaniem staje się właściwy routing przy hostowaniu wielu wersji tej samej usługi. Jasne, możliwe jest napisanie całego mechanizmu w oparciu o jakiś wybrany serwer www. Wymaga to jednak stworzenia, utrzymania i rozwoju kolejnego elementu oprogramowania. Tutaj ponownie z pomocą przychodzi Azure. Aby rozwiązać powyższy problem użyliśmy komponentu Application Gateway, pozwalający właściwie zarządzać ruchem zapytań kierowanych do naszych usług. Dzięki gateway możemy kierować routingiem oraz balancing’iem, uzyskując dużą skalowalność usług.

Ważnym elementem systemu jest także forma graficzna, szczególnie części raportowej. Ona również dostarczyła nam wielu wyzwań. Początkowo próbowaliśmy wykorzystać PowerBI – narzędzie do prezentacji danych. Okazało się jednak, że PowerBI wymuszał dodatkową komplikację źródła danych (relacyjna baza danych), to z kolei wymuszało stworzenie mechanizmu importu danych do bazy raportowej oraz napisania procedur ich transformacji. Kilka proof of concept pokazało że PowerBI nie jest dostosowany do scenariuszy w jakich chcieliśmy go użyć. Stąd decyzja o wycofaniu się z pomysłu jego użycia na rzecz własnego (customowego) prezentowania wyników badań, czy wizualizacji informacji. Jak się okazało - słusznie, ponieważ daje nam to większą swobodę w kształtowaniu interfejsu, dzięki czemu możemy skupić się na jak najlepszym, czytelnym, wygodnym i miłym dla oka prezentowaniu informacji. Po rezygnacji z PowerBI do rysowania wykresów możemy użyć dowolnego komponentu, który w danej sytuacji będzie nam odpowiadał, czy wręcz samemu taki stworzyć od podstaw. Będziemy prezentować ładne i czytelne infografiki, które pomagają użytkownikom analizować zebrane dane.

Co przyniesie jutro?

W kolejnych iteracjach narzędzia klasy business intelligence będą systematycznie rozwijane w celu ułatwienia pracy mniej doświadczonym użytkownikom stawiającym pierwsze kroki w badaniu customer experience.

Większe organizacje zapewne skorzystają na integracji naszej platformy ze swoimi CRM-ami. Dla nas CRM klienta może być źródłem respondentów.

Dziś klient wyraża swoją opinię na temat usług i produktów w wielu mediach i w różnej formie. Chcemy dążyć do dostarczania i analizy informacji spoza własnych źródeł danych (jakimi są ankiety), analizować social media oraz wypowiedzi na różnego typu forach.

Pracujemy nad wygodnym API i bibliotekami dla naszych partnerów, aby mogli swoje platformy i systemy łatwo zintegrować z CXUP - poprzez osadzanie ankiet na własnych stronach, we własnych aplikacjach, czy połączeniu maszyn typu kiosk.

Stawiamy na docieranie do respondentów różnymi kanałami, nie tylko przez badania na stronie internetowej, ale także przez sms, integrację z innymi mediami, czy dedykowane aplikacje mobilne oraz biblioteki ułatwiające integrację.

Aplikacja wewnętrznie używana jest od kilku miesięcy. Oficjalne testy jeszcze w tym półroczu. Wierzymy? Nie, jesteśmy przekonani, że CXUP pozwolili realnie polepszać relacje oraz traktować Klientów wyjątkowo i indywidualnie.