Archiwum miesiąca: listopad 2018

Czy jesteśmy bezpieczni w sieci?

Niedawno uczestniczyłem w szkoleniu traktującym o cyberbezpieczeństwie i cyberzagrożeniach. Zajęcia, w których uczestniczyłem skupiały się np. na „cichym” skanowaniu sieci LAN, wykorzystaniu innych komputerów do skanowania sieci (czyli tak, aby nie pozostawiać śladów), wykorzystaniu socjotechniki w celu uzyskania informacji czy dostępu do stanowisk komputerowych, a głównie na wykorzystaniu tych informacji do przejęcia kontroli nad zaatakowanym komputerem. W trakcie trwania tego szkolenia naszło mnie kilka myśli, którymi chciałbym się z Tobą, drogi Czytelniku, podzielić.

Czy jesteśmy bezpieczni w sieci?

Pierwszy dzień szkolenia skupiał się głównie na odnajdywaniu w sieci komputerów ale w taki sposób, aby oszukać systemy IDS/IPS. Czym są takie systemy? Otóż mają one wykrywać (IDS) i blokować (IPS) ataki sieciowe. Jak działają? W skrócie: analizują pakiety krążące w sieci pod kątem np. wystąpienia znanych sygnatur ataków (analiza sygnaturowa) bądź wykrywaniu anomalii w ruchu sieciowym (np. jeden komputer zaczyna rozsyłać pakiety do innych komputerów w danej sieci). W połączeniu z dobrze skonfigurowanym firewallem stanowią niezłe podstawy do zwiększenia bezpieczeństwa w sieci.

Jedną z metod próbujących oszukać te systemy jest zbudowanie sobie własnego pakietu (drugiej, trzeciej lub czwartej warstwy modelu OSI) i wysłanie go do sieci. Jeden taki pakiet nie jest żadną anomalią ani nie zawiera złośliwych nagłówków, więc systemy bezpieczeństwa raczej go zignorują. Natomiast umiejętne połączenie takiej metody z jakimś narzędziem do automatyzacji może dać nam przepiękny obraz tego, jak wygląda skanowana sieć. Możemy poznać jakie hosty są włączone, jakie usługi są na nich zainstalowane i w jakich wersjach (co jest istotne do skutecznego przeprowadzenia ataku na daną maszynę).

A dlaczego tytułowa myśl pojawiła się w mojej głowie? Otóż na szkoleniu mieliśmy przygotowane dobre warunki laboratoryjne. Sala, w której szkolenie się odbywało była izolowana od pozostałej części sieci w budynku, abyśmy spokojnie mogli atakować każdą znalezioną maszynę (bo – przynajmniej w teorii – każdy znaleziony host powinien być albo naszym komputerem albo przygotowanym przez prowadzącego komputerem „ofiarą”). Niektórym uczestnikom udało się jednak tak przeskanować sieć, że znaleźli drukarkę której znaleźć nie powinni. Kilka chwil później mieliśmy już dostęp do każdego innego komputera z budynku, gdyż ta drukarka posłużyła nam jako „pomost” do reszty świata.

Nawet jeśli administrator „poprawnie” skonfigurował swoją sieć izolując pewne jej części, separując je od innych sieci w celu ograniczenia możliwości ataków (dobrym przykładem może tu być np. biuro kadr czy księgowej, gdzie są wrażliwe dane firmowe i nikt nie powinien mieć do nich dostępu) nie zawsze jest w stanie przewidzieć, jakie nowe zagrożenia mogą się pojawić.

Czy warto aktualizować oprogramowanie?

Dlaczego udało nam się za pomocą drukarki wydostać z izolowanej sieci? Przede wszystkim oprogramowanie drukarki było dawno nieaktualizowane. Znalezienie odpowiedniego exploita też nie było żadnym problemem, gdyż drukarka przedstawiła nam się pięknie z imienia, modelu i konkretnej wersji oprogramowania. Działała też ona jako serwer wydruku w firmie i przez niewłaściwą konfigurację była dostępna w każdej sieci.

No dobrze, teraz powiesz mi: „W takim razie odłączę drukarkę od sieci i będę używał starego, dobrego USB. Będę bezpieczny?”. Ja odpowiem: „NIE”*.

Skanując sieć dalej odnalazłem komputer działający pod kontrolą systemu z nadgryzionym jabłkiem, na którym mieliśmy odpaloną prezentację multimedialną (dodam, że był on na bieżąco aktualizowany). Wiedziałem, że włamanie się do tego komputera nie będzie łatwe (o ile w ogóle możliwe na tym etapie na którym jestem). Jednak kilka narzędzi do których miałem dostęp wskazały mi kilka wektorów ataku. Wykorzystując jeden z nich udało mi się nawiązać połączenie „z ofiarą”. Niestety, niedostateczna jeszcze wtedy wiedza nie pozwoliła mi nic z takim połączeniem zrobić. Kolejnego dnia szkolenie rozpoczęło się z lekkim poślizgiem, bo MAC OS wymusił aktualizację systemu. Byłem ciekaw, jaki to miało wpływ na sytuację z dnia poprzedniego. Co się okazało? Po aktualizacji nie byłem już w stanie nawet nawiązać połączenia z tym komputerem. Dziura, którą udało mi się wykorzystać poprzedniego dnia w tej aktualizacji została załatana. Komputer był bezpieczny. Teraz ponownie zadasz mi pytanie: „Świetnie! W takim razie jeśli będę aktualizował swoje oprogramowanie mogę czuć się bezpiecznie?”. Ja znów odpowiem: „NIE”*.

Czy warto stosować programowy firewall i antywirus?

Dlaczego NIE? To, że dziś nie mogę się włamać do Twojego komputera nie oznacza, że jutro ktoś nie znajdzie nowej podatności. Pojutrze znów zaktualizujesz komputer, a za tydzień znów będzie podatny na ataki. Nie mówi się o tym wiele, ale istnieje nieustanny wyścig producentów oprogramowania z grupami, które to oprogramowanie próbują złamać. Można natomiast wspomagać systemy operacyjne stosując dodatkowe narzędzia chroniące nasze dane.

Ostatni dzień szkolenia pokazywał, jak używając narzędzi socjotechnicznych można włamywać się na komputer ofiary. W wielu wypadkach włamanie odbywa się za pomocą pliku, który stanowi nośnik exploita, i został przygotowany tak, by udawać ważny załącznik do wiadomości. Wystarczy, że ofiara uruchomi go na swoim komputerze i pozamiatane. Brzmi znajomo? Ile razy słyszało się o atakach, które wyglądały tak: „W załączniku wysyłamy zaległą fakturę. Proszę ją opłacić gdyż już jest 3 dni po terminie!!!”. A w załączniku co? Plik zip z dokumentem pdf, który po odpaleniu albo szyfruje nam cały dysk (co jest od razu zauważalne) albo co gorsza rzeczywiście wyświetli nam jakąś fakturę (uff… na szczęście to nie do mnie, więc nie muszę się martwić), ale OD RAZU I NATYCHMIASTOWO DA DOSTĘP do komputera ofiary (na prawach użytkownika, który uruchomił wirusa – ale to też da się obejść).

No dobrze, ale dlaczego nagłówek akapitu pyta o antywirusy? Już spieszę z odpowiedzią. Przygotowane przez prowadzącego maszyny, które mogliśmy atakować były jak najbardziej „gołe” (bez ostatnich aktualizacji, bez antywirusów czy innych dodatkowych zabezpieczeń). Ale ja nie byłbym sobą, gdybym nie spróbował zaatakować swój własny komputer (Windows 8.1, wszystkie aktualizacje + zewnętrzny program antywirusowy). I powiem Ci czytelniku jedno: żeby świadomie i z premedytacją zawirusować mój własny komputer musiałem godzinę walczyć z moim antywirusem, który za żadne skarby (nawet po wyłączeniu wszystkich aktywnych ochron) nie chciał mi pozwolić na tak głupi manewr. W końcu mi się to udało, ale czynności, które musiałem wykonać dały jednoznaczną odpowiedź na pytanie z nagłówka. TAK – jak najbardziej warto używać zewnętrznego programu antywirusowego. I niech on sobie przez cały rok subskrypcji leży w trayu i nie zgłasza żadnego zagrożenia. Wystarczy jedna udaremniona próba ataku na komputer, aby docenić wartość takiego oprogramowania.

A co z mechanizmami zabezpieczającymi dostarczanymi przez system?

Na zakończenie wspomnę o jeszcze jednej sytuacji ze szkolenia. Mieliśmy tam chwilę, aby pobawić się z nowym narzędziem służącym do exploitacji systemów rodziny Windows. Narzędzie to (w dniu szkolenia) pozwalało „zarządzać” komputerami pracującymi pod kontrolą systemów Microsoftu od 7 w dół. Ja oczywiście spróbowałem go użyć na moim Win8.1. O dziwo (wbrew zapewnieniom prowadzącego) udało mi się podnieść uprawnienia uruchomionej aplikacji omijając mechanizm UAC (w zasadzie nie omijając, ale odpowiednio modyfikując komunikat proszący o podniesienie uprawnień). Bo powiedzmy sobie szczerze: kto czyta wszystkie okna systemowe? Podejrzewam, że nawet gdyby tam było wielkimi literami napisane: „CZY ZGADZASZ SIĘ, ABY TA APLIKACJA UZYSKAŁA UPRAWNIENIA ADMINISTRATORA W CELU WŁAMANIA SIĘ DO TEGO KOMPUTERA?” – mało kto by to przeczytał. Niestety rutyna, która wkrada się podczas codziennego używania komputera skutecznie znieczula nas na komunikaty, które pojawiają się na ekranie.

Co do samego UAC to prowadzący zarzekał się, że jeszcze tydzień wcześniej na poprzednim szkoleniu nikomu się ta sztuczka nie udała. Od razu wypróbowaliśmy to na komputerach z Windowsem 10. Efekt był zdumiewający – nie dość że udało się wyświetlić na ekranie zmodyfikowane okno UAC to po kliknięciu na „TAK” dostaliśmy pełny dostęp do zaatakowanego komputera na prawach ADMINISTRATORA. Strach pomyśleć, co z takim dostępem cracker by mógł zrobić.

Podsumowanie

Ze szkolenia z cyberhackingu wróciłem z uczuciem przerażenia. Mnogość narzędzi wspomagających ataki oraz metody ataków ewoluują po każdej aktualizacji oprogramowania. Świadomość, że są ludzie posiadający podobną (a wręcz dużo większą) wiedzę, ale wykorzystujący ją do złych celów nie napawa optymizmem. Wszak codziennie w spamie ląduje przynajmniej kilka wiadomości sugerujących: „Dopłata do faktury 1zł” czy „Wygrałeś najnowszego iPhona X – kliknij tutaj aby odebrać nagrodę”. Natomiast wiedza o tym, jak wygląda taki atak „z drugiej strony” pozwala mi lepiej zabezpieczyć swój sprzęt a także sieci, którymi się opiekuję lub będę się kiedyś opiekował.

Bo jeśli chcielibyśmy mieć w 100% bezpieczny i wolny od zagrożeń komputer należałoby go nigdy nie podłączać do sieci. Ale jeśli już musimy, to należy mieć na uwadze kilka rzeczy:
1. W każdym momencie jesteśmy narażeni na ataki internetowe.
2. MOŻEMY z wielką skutecznością bronić się przed nimi.
3. Najsłabszym ogniwem podczas ataków jest użytkownik (bo źle skonfigurował usługę, bo dał się podejść atakowi socjotechnicznemu, bo WYŁĄCZYŁ antywirusa).
4. Zwiększając swoją świadomość na temat cyberzagrożeń podnosimy swoją skuteczność na ataki.

Wracając jeszcze na chwilę do udzielanych przeze mnie odpowiedzi na poszczególne pytania z nagłówków chciałbym dodać: nie jesteśmy w pełni bezpieczni w sieci, ale możemy z wielką skutecznością chronić swój komputer. Warto (a wręcz trzeba) aktualizować oprogramowanie. Nie tylko w komputerach, ale też (a może zwłaszcza) w innych urządzeniach podpiętych do sieci (drukarkach, konsolach, lodówkach (sic!)).
Aktualizacje bezpieczeństwa wydawane są właśnie po to, by owo bezpieczeństwo podnosić. Wskazane jest też zainstalowanie na swoim komputerze jakiegoś programu antywirusowego. Jeśli nie stać Cię na komercyjne rozwiązanie jest wiele darmowych programów. Z uwagą należy także czytać wyskakujące komunikaty systemowe. Nie każdy uruchomiony program powinien działać na prawach administratora (jeśli Twój nowy, świeżo pobrany super-kalkulator tego wymaga to warto zastanowić się, czy nie lepiej użyć innego?).

PS W tekście celowo nie podaję nazw oprogramowania. Niektóre sytuacje zostały też „nagięte” lub uproszczone na potrzeby napisania tego tekstu.

PPS A taką wiadomość dostałem od sąsiada po powrocie ze szkolenia:

Autorem tekstu jest Łukasz Wojtyczka.

Konteksty i ich wpływ na rozwój oprogramowania

W branży IT niezmiernie ważnym obszarem jest development. Angielskie słowo “develop”, w dosłownym tłumaczeniu oznacza rozwijać i to właśnie ten rozwój jest dla nas obecnie niesamowicie istotny. Dziś, pisząc o nim, mamy na myśli przede wszystkim ekspansję wykorzystywanych w organizacji metod pracy nad oprogramowaniem. To aspekt, który mocno determinuje odkrywanie innowacji technologicznych, eskalację oprogramowania oraz samo wdrożenie systemu. Obserwując różne, popularne w ostatnich latach modele pracy zespołu wybraliśmy, najważniejsze w naszej opinii, zalety każdego z nich. Ich połączenie okazało się dla nas na tyle interesujące, że postanowiliśmy wdrożyć u siebie model pracy w zespołach kontekstowych.

Czym są i jak powstały zespoły kontekstowe?

Konteksty charakteryzują się ukierunkowaną strukturą rozwoju, a ich główna idea polega na kumulacji wiedzy w ramach konkretnego, ograniczonego obszaru. Inspirację dla modelu zespołów kontekstowych stanowiło podejście Domain Driven Design. W przypadku naprawdę rozwiniętego oprogramowania mamy do czynienia z pewnym rozmyciem się wiedzy, w wyniku którego, zachodzące w nim procesy mogą stać się niejasne. W praktyce może to powodować zahamowanie rozwoju oprogramowania. Skupiając pracę i rozwój projektu w niezależnych kontekstach umożliwiamy zespołom gromadzenie wiedzy i dzielenie się zdobytym doświadczeniem. Ponadto, wymuszona przez konteksty mniejsza skala, a więc skupienie się na ograniczonym, konkretnym obszarze, znacznie ułatwia analizę czy projektowanie. Zespół kontekstowy posiada swoich, jasno określonych właścicieli, którzy dbają o spójność i jakość wykonywanych prac. Dobrze postawione granice konkretnych obszarów (kontekstów) nie tylko przyspieszają rozwój projektu, ale także stymulują komunikację między zespołową tam, gdzie w danym momencie jest ona najbardziej potrzebna i wartościowa.

Do tej pory w i-systems procesy tworzenia i rozwoju oprogramowania skoncentrowane były w ramach konkretnych mikrozespołów, które składały się z osób o różnych specjalizacjach. Zauważyliśmy jednak, że w tym modelu, wiedza jest bardzo mocno skumulowana w konkretnym zespole, który tak naprawdę nie ma gdzie adresować pozyskanego feedbacku. Jeśli zatem wykonywane były jakieś zmiany czy podejmowane były jakieś działania, to wiedza o tym co i dlaczego zostało zrobione pozostawała tylko w zespole, który się tymi konkretnymi działaniami zajmował. Po zakończeniu projektu zespół podejmował się realizacji kolejnych prac, a tym samym feedback pozostawał nieskonsumowany. Z drugiej jednak strony, dzięki pracy w mikrozespołach, pracownicy są bardzo silnie zaangażowani w jeden, konkretny projekt, przez co czują się bardziej odpowiedzialni za jego wdrożenie i rozwój. Taki charakter działań buduje również przestrzeń do twórczego myślenia i eksperymentowania, co pozytywnie wpływa na pojawianie się innowacyjnych rozwiązań.

”Dostrzegając siłę, jaka tkwi w mikrozespołach postanowiliśmy utrzymać ich główną ideę, przeobrażając jednak zespoły zajmujące się do tej pory tylko danym projektem, w zespoły kontekstowe, których rolą jest tworzenie i rozwój danego kontekstu” – stwierdza Konrad, koordynator zespołów IT w i-systems.

Odpowiednia metoda pracy = efektywne budowanie systemu

Tworzenie oprogramowania, w wielu obszarach jest bardzo podobne do budowy domu. W przypadku obydwu procesów mamy do czynienia z koniecznością podjęcia licznych, często wzajemnie od siebie zależnych działań. Obszar wspólny stanowi tu także konieczność pogodzenia pewnych niezbędnych w realizacji założeń oraz unikatowych preferencji klienta. Co zatem jest gwarantem efektywnego budowania systemu? Przede wszystkim dobór odpowiedniej metody pracy. Praca w wykorzystywanym przez nas modelu, jakim jest dedykowany SaaS oraz postawienie na wspomniane już wcześniej zespoły kontekstowe sprawiają, że oprócz głównych funkcjonalności naszego systemu, klientom gwarantujemy również realizację ich indywidualnych potrzeb biznesowych, dbając jednocześnie o to, aby core systemu stale rozwijał się i wyznaczał nowe trendy.

Do podstawowych korzyści płynących z pracy w zespołach kontekstowych należy zaliczyć:
– wybór zawsze najlepszego rozwiązania – dane zadanie omawiane jest w zespole specjalistów, po czym wybierany zostaje najlepszy sposób jego realizacji
– eliminacja ewentualnego przestoju – cały kontekst potrafi zrealizować wyznaczony cel, ponieważ wiedza jest skumulowana i przekazywana w ramach zespołu
– ciągłe podnoszenie jakości rozwiązań – każdy zespół odpowiedzialny jest za rozwój konkretnego obszaru
– stała możliwość poszerzania kompetencji programistów poprzez przekazywanie wiedzy w zespole
– realny wpływ zespołu na rozwój danego kontekstu
– dostarczenie klientowi najwyższej jakości rozwiązań, dzięki połączeniu pracy kilku zespołów kontekstowych

Konteksty w praktyce

Obecnie, w i-systems funkcjonuje dziewięć zespołów kontekstowych, które pokrywają najważniejsze, kluczowe dla firmy obszary. Członkowie każdego z zespołów dobierani są na podstawie posiadanych kompetencji, wiedzy oraz doświadczenia, dzięki czemu każdy kontekst składa się z najlepszych specjalistów w danej dziedzinie. Kontekst CI odpowiada za wdrożenie i rozwój praktyki Continuous Integration, zajmując się w szczególności wyszukiwaniem najlepszych rozwiązań z zakresu optymalizacji i stabilizacji testów automatycznych oraz rozwoju środowisk i ich konteneryzacji. Kontekst integracji trzyma pieczę nad połączeniem oprogramowania dostarczanego przez i-systems z zewnętrznymi systemami klasy ERP, z kolei kontekst order, to zespół osób specjalizujących się w szeroko pojętej obsłudze zamówień. Czwarty zespół, to kontekst RMA, czyli osoby odpowiedzialne za obszar zwrotów/reklamacji, a zespół piąty to kontekst CRM, który odpowiada m.in. za możliwość migracji z obecnej struktury czy dodanie wielu użytkowników do jednego konta. Obok tych zespołów, w obecnej strukturze wyróżniamy jeszcze kontekst PIM, odpowiadający za stworzenie systemu do zarządzania informacją o produkcie oraz kontekst rabatów, którego członkowie pracują nad refaktoryzacją polityk rabatowych, tak by zapewnić użytkownikom większą swobodę w tworzeniu własnych rabatów. Kontekst GUI, to z kolei zespół, który jest swego rodzaju pomostem między backendem a użytkownikiem – jego głównym zadaniem jest wsparcie i uzupełnienie pozostałych zespołów kontekstowych. Ostatnim z funkcjonujących obecnie zespołów kontekstowych jest Shop App, który zajmuje się tworzeniem webowych i mobilnych aplikacji klienckich, a także pracuje nad PWA.

W naszych planach na najbliższy czas jest stworzenie jeszcze dwóch zespołów kontekstowych – Allegro i POS.

Każdy z zespołów zajmuje się przypisanym do siebie obszarem, realizując przy tym wszystkie zmiany, które go dotyczą, w każdym projekcie, w którym się pojawia. W przypadku, gdy jakiś element dotyka wielu kontekstów jednocześnie, obowiązkiem zespołów staje się stworzenie komunikacyjnego interface’u, z którego skorzystać będzie mógł każdy zainteresowany.

Model zespołów kontekstowych niesie ze sobą naprawdę wiele korzyści. Dzięki wykorzystaniu tego podejścia, klient otrzymuje najwyższej jakości system sprzedaży, który umożliwia mu stały rozwój, oferując jednocześnie nieograniczone możliwości customizacji. Ponadto, w przypadku wykorzystania tego modelu pracy, klient nie musi już pełnić roli nawigatora projektu, ma bowiem pewność, że kolejne elementy jego systemu tworzone są przez specjalistów. Zespół programistów z kolei, dzięki kontekstom jest silnie zaangażowany w rozwój danego obszaru, a poprzez pracę wśród grupy osób o podobnej specjalizacji ma możliwość ciągłego poszerzania swoich kompetencji i budowania trwałych relacji.

Poznaj praktykę Continuous integration Badania i Rozwój w i-systems

#235 Bezpieczeństwo danych – urządzenia mobilne

Niemal wszyscy korzystamy z mobilnych urządzeń elektronicznych. Najwięcej rodaków używa smartfonów, na drugim miejscu znajdują się laptopy. Dopiero trzecie miejsce zajmują komputery stacjonarne, ale tuż za nimi plasują się tablety. Badania wykazują, że 65 proc. użytkowników urządzeń mobilnych wykorzystuje je do transakcji online, w tym dokonywania comiesięcznych opłat, a 23 proc. podaje podczas zakupów numer karty płatniczej. Ale zaledwie 32 proc. zabezpiecza swoje urządzenia przed cyberatakami.

Z dzisiejszej lekcji dowiesz się:

          • jak bezpiecznie korzystać z telefonu by nie stracić danych oraz pieniędzy;

Brak świadomości zagrożenia

Wielu użytkowników nie zdaje sobie sprawy, że na zagrożenie wirusami i złośliwym oprogramowaniem narażone są nie tylko komputery, ale każde urządzenie, za pomocą którego można połączyć się z Internetem. Niemal połowa właścicieli smartfonów nigdy nie zastanawiała się nad koniecznością posiadania programu antywirusowego w swoim telefonie. Tymczasem system operacyjny Android, w którym działa ogromna większość urządzeń mobilnych, zwłaszcza smartfonów i tabletów, jest najbardziej narażony na cyberataki. Dotyczy to w szczególności starszych wersji systemu. Około 20 proc. smartfonów rocznie jest zainfekowanych wirusami, w nieco ponad 15 proc. przypadków mamy do czynienia z włamaniami na konto w portalu społecznościowym, w 6 proc. na konto pocztowe, a 5 proc. to włamania na konto bankowe użytkownika. W liczbach bezwzględnych oznacza to, że w ciągu roku dokonuje się około 15 milionów cyberataków na smartfony w Polsce.

Rodzaje zagrożeń

Najczęstsze zagrożenia to wspomniane zainfekowanie przez wirusy oraz włamanie hakerskie na konto – pocztowe, bankowe, w sklepie internetowym lub portalu społecznościowym. Wielu użytkowników dokonuje zakupów i opłat za pomocą smartfona, tą drogą loguje się też do portali i serwisów, bagatelizując kwestię bezpieczeństwa. Aż jedna trzecia posiadaczy smartfonów nie ma obaw przed korzystaniem ze swoich urządzeń dokonując zakupów lub płatności, a jedna czwarta ufa zabezpieczeniom bankowym i uważa je za wystarczające. Niestety, wystarczy np. przypomnieć sobie o terminie płatności, będąc w mieście. Schemat postępowania jest wówczas prosty. Wystarczy, że znajdując się w centrum handlowym, zalogujemy się do stworzonej przez cyberprzestępcę publicznej sieci Wi-Fi celem dokonania płatności, zanim znów o niej zapomnimy. Następnie logujemy się do naszego banku, aby dokonać przelewu. W tym momencie nasz login i hasło zostają przechwycone.

Zagrożeniem jest też zgubienie lub kradzież smartfona i przechwycenie przez hakera informacji o odwiedzanych przez nas stronach.

Jak zatem chronić nasze urządzenie mobilne, aby każdorazowe łączenie się z Internetem nie przyprawiało o obawy przed utratą prywatności?

Blokada aplikacji

Większość smartfonów i tabletów ma możliwość ukrycia lub wyłączenia zainstalowanych aplikacji. Nie stanowi to jednak pełnego zabezpieczenia. Dlatego zostały stworzone aplikacje uniwersalne, które mogą ukryć w bezpieczny sposób zainstalowane oprogramowanie. Przykładem jest AppLock, aplikacja bardzo prosta i zapewniająca bezpieczeństwo. Po jej zainstalowaniu tworzy się hasło dostępu, przeznaczone do uruchomienia samej aplikacji, jak i zablokowanego oprogramowania. Za pomocą AppLock można przeglądać listę programów, które można zablokować jednym przyciskiem. Można również zarządzać rozmowami przychodzącymi, ustawieniami urządzenia, odinstalowywaniem oprogramowania, zdjęciami i innymi plikami.

Aktualizacja systemu i menedżer urządzenia

Aktualizacja Androida do najnowszej wersji jest podstawą ochrony przed złośliwym oprogramowaniem. Po dokonaniu aktualizacji należy zainstalować odpowiedni program antywirusowy i zabezpieczający. Z publicznymi sieciami Wi-Fi (np. w centrach handlowych, hotelach, na lotniskach) można się łączyć jedynie mając pewność, że urządzenie jest bezpieczne.

Menedżer urządzenia jest niezbędny dla jego bezpieczeństwa; co więcej, stanowi jego konieczne minimum podczas korzystania. Menadżer jest oprogramowaniem, za pomocą którego można namierzyć zgubione urządzenie, zdalnie je zablokować, włączyć alarm. W razie utraty smartfona można, korzystając z menadżera, przywrócić ustawienia fabryczne, co powoduje utratę danych, zgromadzonych w pamięci urządzenia. Nie dostaną się one wówczas w niepowołane ręce.

Program antywirusowy

Zainfekowanie urządzenia mobilnego wirusem staje się coraz poważniejszym problemem, zwłaszcza że system Android umożliwia zainstalowanie aplikacji pochodzących z niesprawdzonych źródeł. Ryzyko infekcji jest więc znaczne. Dlatego zalecane jest zainstalowanie takiego programu antywirusowego, który umożliwia skanowanie smartfona, usuwanie plików systemowych i bezpieczne używanie przeglądarki. Ponadto istnieją programy antywirusowe, które wskazują, jakie czynniki wpływają na szybkość działania procesora bądź wyczerpywania się baterii.

Szyfrowanie telefonu

System Android daje możliwość włączenia funkcji szyfrowania telefonu, uniemożliwiającej uzyskanie osobom niepowołanym dostępu do danych. Funkcję uruchamia się wchodząc w Ustawienia > Zabezpieczenia > Szyfrowanie i wybierając Zaszyfruj telefon. Jeżeli zachodzi konieczność użyczenia telefonu innej osobie, ale bez udostępniania jej wszystkich funkcji, można skorzystać z opcji przypięcia ekranu danej aplikacji, którego nie można odpiąć bez podania hasła. Opcję tę włącza się wchodząc w Ustawienia > Osobiste > Zabezpieczenia > Zaawansowane > Przypinanie ekranu > Włącz, a następnie zatwierdza się odpinanie za pomocą hasła.

Wirtualna Sieć Prywatna

VPN jest siecią z ograniczonym i kontrolowanym dostępem, co ma duże znaczenie dla bezpieczeństwa podczas korzystania z Internetu w miejscach publicznych. Usługodawcy VPN oferują aplikacje na smartfony zarówno z Androidem, jak i iOS. VPN zapewnia bezpieczeństwo korzystania z serwisów i blokowanie stron internetowych, anonimowe korzystanie z przeglądarki (ukrywa IP Androida i lokalizację), ochrania hasła, korespondencji, itp. W sieci można znaleźć ranking VPN i wybrać najlepsze dla siebie rozwiązanie.

Autor: Konrad Bielawski, specjalista ds. odzyskiwania danych w firmie DATA Lab. Informatyk z wykształcenia. Pasjonat sportów motorowych i brytyjskiego kina.

7 trafnych decyzji, czyli sukces w omnichannel

Omnichannel, to niejako dalszy krok w rozwoju firmy. To naturalna transformacja koncepcji multichannel, idea gwarantująca spójność doświadczeń we wszystkich kanałach, za pośrednictwem których organizacja dociera do klienta. To zrozumienie nowego pokolenia kupujących i wreszcie – gwarancja sukcesu w sprzedaży. W dzisiejszym artykule udowadniamy, że powodzenie funkcjonowania tej strategii jest kwestią podjęcia 7 trafnych decyzji biznesowych.

Decyzja pierwsza – wybór metody pracy nad rozwiązaniami = siła zespołu

Istnieją różne metody pracy nad rozwiązaniami z obszaru IT – wykorzystywane są one nie tylko podczas tworzenia danego rozwiązania, ale również, a może i przede wszystkim podczas jego wdrożenia. Nie tak dawno temu, jednym z najpopularniejszych podejść do pracy nad projektem było tworzenie dedykowanych, przypisanych do danego klienta zespołów. Klient, który posiadał w firmie IT swój własny zespół specjalistów postrzegany był jako ważny. Okazało się jednak, że tego typu podejście nie jest wolne od wad – wiedza skondensowana była tu w ramach jednego zespołu, a przy wdrażaniu nowych rozwiązań, zespół ten niejako uczył się wszystkiego od zera, zamiast rozwijać zdobytą już w danym obszarze wiedzę.

Z biegiem czasu podejście to musiało jednak ustąpić miejsca nowszej i bardziej efektywnej metodyce pracy, jaką jest kontekst. Zespoły kontekstowe specjalizują się w konkretnym, wybranym zagadnieniu, wdrażając je we wszystkich, wymagających tego projektach w obrębie danej firmy. W praktyce oznacza to kumulację i eskalację wiedzy, jeszcze efektywniejszy przebieg prac oraz zapewnienie klientowi gwarancji najwyższej jakości dostarczonego rozwiązania.

Podjęcie decyzji o pracy nad projektem z wykorzystaniem modelu kontekstowego stanowi doskonały punkt wyjścia i podstawę efektywnego rozwoju każdej marki.

Decyzja druga – ponowne rozpatrzenie potencjału aplikacji mobilnych

Kilka dobrych lat wstecz miał miejsce prawdziwy boom na aplikacje mobilne, który jednak nie zapisał się na kartach historii, jako wielki sukces. Dlaczego? Technologia nie nadążała wówczas za potrzebami rynku i użytkowników. Aplikacje mobilne były bardzo mocno ograniczone funkcjonalnie, a przede wszystkim nie były z niczym powiązane, w wyniku czego większość firm zrezygnowała z ich wykorzystania. Dlaczego zatem sugerujemy ponowne rozpatrzenie potencjału tego kanału? Od tamtej pory na rynku zaszło wiele zmian. Zmieniły się przede wszystkim nawyki zakupowe klientów, a to właśnie one zawsze stanowią największy bodziec do podjęcia działania. Za nowymi nawykami, potrzebami, powinno zatem pójść podjęcie przez markę kolejnych kroków, dzięki którym mogłaby ona nadążyć za oczekiwaniami i zwyczajami klientów. Nowoczesne aplikacje mobilne oferują spektrum możliwości, takich jak np. informacje o aktualnych promocjach, możliwość powiadomienia o dedykowanych ofertach, wiadomość o etapie realizacji zamówienia, sposób na porzucone koszyki czy zaproszenie do odwiedzenia sklepu stacjonarnego.

Połączenie systemu e-commerce z aplikacją mobilną staje się niesamowicie ważne. To właśnie ono nadaje sprzedaży zupełnie inny wymiar. W i-systems stworzyliśmy aplikację mobilną, która obsługiwana jest z poziomu tego samego miejsca, z którego zarządzany jest system e-commerce. Taka spójność sprawia, że możliwa jest pełna automatyzacja oraz budowanie związków przyczynowo-skutkowych. W efekcie prowadzi to do powstania jednego, spójnego ekosystemu omnichannel i zmniejszenia ilości czasu pracy poświęcanego po stronie klienta.

Z perspektywy marki ponowne rozpatrzenie potencjału aplikacji mobilnych i podjęcie decyzji o ich wykorzystaniu w swoim biznesie staje się zatem kluczowe.

Decyzja trzecia – aplikacja mobilna, jako nasz pracownik

Aplikacja mobilna, to jednak coś więcej, niż narzędzie wspierające sprzedaż. To coś, co potrafi w nieoceniony wręcz sposób usprawnić pracę zespołu. Możemy wyróżnić przynajmniej dwa aspekty, zautomatyzowane za jej pośrednictwem.

Aspekt pierwszy, to pełnienie przez aplikację mobilną funkcji dodatkowego, niewidocznego, lecz cały czas aktywnego pracownika. Współczesnego klienta charakteryzuje chęć korzystania z samoobsługi – od momentu odnalezienia interesującego go produktu, poprzez zdobycie o nim wszelkich informacji, aż po jego zakup. Naszą odpowiedzią na tę potrzebę klientów jest funkcjonalność skanera kodów kreskowych zawarta w aplikacji mobilnej. Wystarczy, że klient zeskanuje występujące na produkcie kody kreskowe, a aplikacja przekieruje go bezpośrednio na kartę tego produktu w sklepie internetowym. Dzięki temu, klient będzie mógł zdobyć szczegółowe informacje o produkcie, sprawdzić dostępność jego różnych wariantów w poszczególnych lokalizacjach, czy też od razu złożyć zamówienie na niego.

Aspekt drugi dotyczy z kolei wsparcie przez aplikację mobilną pracowników sklepów stacjonarnych. Niewiele osób myśli o aplikacji mobilnej, w ujęciu sprzedaży stacjonarnej, co jak się okazuje, jest poważnym błędem. Aplikacja mobilna stanowi bowiem nieocenione źródło wiedzy o kliencie, jego lokalizacji czy historii zakupowej. Informacje te gromadzone są w aplikacji podczas każdych, dokonanych przez użytkownika w sklepie stacjonarnym lub internetowym danej marki zakupów. Ich odpowiednie wykorzystanie (np. podczas tworzenia dedykowanych ofert promocyjnych) może znacznie wpłynąć na podniesienie jakości obsługi klienta, a co za tym idzie, na zwiększenie poziomu sprzedaży.

W tym miejscu, po raz drugi musimy podkreślić, że decyzja o wykorzystaniu przez markę aplikacji mobilnej staje się dla niej kluczowa i to jak widać – na bardzo wielu obszarach.

1

Decyzja czwarta – wybór polityki rabatowej oraz sposobu jej obsługi

Z rozmów z naszymi klientami oraz bacznych obserwacji rynku wiemy, jak kluczowy element dla wszystkich marek retailowych stanowi obecnie polityka rabatowa. To właśnie dodatkowy rabat niejednokrotnie jest dla klientów bodźcem bardzo silnie skłaniającym do dokonania zakupu. Wychodząc naprzeciw oczekiwaniom naszych klientów, zwłaszcza tych działających w sektorze B2C, stworzyliśmy zaawansowane narzędzie polityki rabatowej, które w sposób łatwy i bezbłędny umożliwia marce zarządzanie wszystkimi rabatami i promocjami. Pozwala ono na tworzenie niezwykle zaawansowanych scenariuszy sprzedaży, ustawianie kolejności naliczania rabatów oraz zależności między nimi, a także umożliwia ustalenie indywidualnej podstawy obliczania ceny.

Wybór odpowiedniej polityki rabatowej i sposobu jej obsługi to dla marki z pewnością ciężki orzech do zgryzienia, jednak podjęcie odpowiedniej decyzji w tym obszarze, w sposób bezpośredni, przekłada się dla organizacji na szereg korzyści takich jak np. zwiększenie poziomu sprzedaży, czy wzmocnienie lojalności klientów.

2

Decyzja piąta – przygotowanie się na duży ruch = siła cloud

Kluczowym elementem wszystkich systemów e-commerce są serwery. Odpowiednio wypromowany sklep internetowy musi zmierzyć się z ogromnym ruchem klientów, generującym niejednokrotnie nawet kilka tysięcy zamówień w ciągu jednego dnia. Wzrost liczby użytkowników, zwłaszcza w krótkim okresie czasu oraz potrzeba obsłużenia dużego ruchu sprawiają, że coraz trudniej jest dostarczyć odpowiednią moc i zachować wysoką wydajność systemu. Aby sprostać tym wyzwaniom, stworzyliśmy niezależną, w pełni dostosowaną pod nasze wymagania infrastrukturę serwerową w niezależnym data center. Jest to rozwiązanie oparte o technologie wykorzystywane przez największe światowe brandy, charakteryzujące się niezwykłą szybkością i bezpieczeństwem.

Na co więc, w praktyce przekłada się podjęcie decyzji o wykorzystaniu nieocenionej siły cloud hostingu? Oprócz wspomnianej już możliwości przyjęcia wielokrotnie większego ruchu w bardzo krótkim czasie, marka otrzymuje również możliwość automatycznego wykrywania awarii i interwencji zespołu dyżurnego w wymiarze 24/7. To zatem decyzja, którą nie tylko warto, ale wręcz trzeba podjąć.

Decyzja szósta – omnichannel, czyli synergia online i offline

Firmy, które prowadzą jednocześnie sprzedaż w kanałach online i offline muszą stawić czoła nie lada wyzwaniu – połączenie ze sobą tych dwóch światów bywa prawdziwym sprawdzianem biznesowym. Nie jest jednak niemożliwe.

Duża ilość salonów stacjonarnych oraz miesięczna obsługa równie dużej ilości zamówień z pewnością nie ułatwiają sprawnej synchronizacji danych. Odpowiedni system omnichannel ecommerce jest jednak narzędziem, dzięki któremu dane np. o dostępności produktowej, cenach, możliwościach płatności czy sposobach odbioru zamówienia będą dokładnie takie same we wszystkich kanałach sprzedaży.

Synergia online i offline to jednak nie tylko spójność danych – to przede wszystkim efekt ROPO (Research Online Purchase Offline), czyli możliwość zapoznania się z produktem i jego parametrami (przez sklep internetowy lub aplikację mobilną) a następnie dokonanie jego zakupu już offline (w jednym z salonów stacjonarnych marki). W sprzedaży w modelu omnichannel, obok efektu ROPO ważny jest też odwrócony efekt ROPO (Research Offline Purchase Online), czyli możliwość weryfikacji produktów “na żywo”, dotknięcie ich, sprawdzenie jakości materiałów, z jakich zostały wykonane, a następnie dokonanie zakupu już w świecie wirtualnym.

Odpowiednie połączenie ze sobą tych dwóch kanałów charakteryzuje też usługa click&collect, która umożliwia dokonanie zakupu w sklepie online i osobisty odbiór zamówienia w wybranym przez siebie miejscu (najczęściej w jednym z salonów stacjonarnych danej marki). Tego typu usługa niejednokrotnie stanowi skuteczny sposób na zwiększenie sprzedaży, ponieważ klient odbierając zamówienie często dokonuje dodatkowych zakupów.

Podjęcie decyzji o pełnej synergii online i offline, a następnie wprowadzenie jej w życie znacznie wpływa na budowanie pozytywnych doświadczeń klienta, niezależnie od wykorzystywanego przez niego kanału sprzedaży.

Decyzja siódma – rozwój systemu

Wdrożenie systemu sprzedaży, który w pełni realizował by ideę omnichannel jest swego rodzaju wyzwaniem biznesowym, jednak prawdziwą “kropkę nad i” stanowią jego utrzymanie i rozwój. Zwyczajowy „cykl życia” systemu to około 3-4 lat. To czas kiedy jest on w pełni wydajny i prawidłowo spełnia swoje założenia. Co jednak po upływie tego czasu? Każdy z nas wie, że wdrażanie nowego systemu za każdym razem, po upływie 3-4 lat jest nie tylko czasochłonne, a także generuje koszty. Zazwyczaj, użytkownikom kojarzy się z procesem żmudnym i męczącym. Pytanie zatem, czy możliwe jest, aby raz wdrożony system był zawsze aktualny? Aby utrzymanie i rozwój systemu silnie bazowały na ciągłych aktualizacjach, zapewniając oprogramowanie, które rośnie wraz z naszymi potrzebami?

W i-systems te i wiele innych pytań zadawaliśmy sobie już kilka lat temu, lecz dopiero w ostatnich miesiącach, udało nam się na nie odpowiedzieć. Rozwiązaniem okazała się praktyka Continuous Integration. Zmiany wprowadzane są tu w sposób ciągły i scalane nawet co kilka minut. Taka wspólna praca nad kodem zapewnia jego najwyższą jakość i spójność. Co ważne, CI jest gwarantem poprawnego działania systemu dzięki zastosowaniu serii automatycznych testów. Obecnie liczba uruchomień pojedynczego scenariusza testu akceptacyjnego to u nas 1 682 100 testów. Jakie aspekty biznesowe niesie za sobą wykorzystanie Continuous Integration? Przede wszystkim, pozwala ono na wyeliminowanie czasochłonnych aktualizacji, zapewniając jednocześnie zawsze najnowszą wersję systemu. Dodatkowo, dzięki tej praktyce, dostawca systemu wykazuje pełną odpowiedzialność za jakość rozwiązania opartego o przetestowane elementy. Wreszcie – CI sprawia, że firmy gotowe są na wieloletni rozwój i wzmocnienie swojej pozycji rynkowej.

Decyzja o rozwoju systemu jest jedną z ważniejszych decyzji biznesowych. To właśnie rozwój ostatecznie definiuje sukces marki, bowiem, cytując Johann’a Wolfgang’a von Goethe’ge “kto nie idzie do przodu, ten się cofa”.

Sukces w omnichannel to nie mrzonki. To kwestia podejścia, działania oraz pewnej konsekwencji w dążeniu do celu. To coś, na co firmy muszą sobie zapracować. To siedem wyzwań, którym trzeba stawić czoła, siedem decyzji biznesowych, które trzeba podjąć.

Omnichannel Retailing

PWA (Progressive Web App)

Zacznijmy od wykresu pokazującego statystyczną ilość pobieranych aplikacji na telefon przez użytkowników smartfonów:

1

Średnia miesięczna Liczba pobranych aplikacji przez użytkowników smartfonów (źródło: Statista 2018)

Wniosek? Ponad połowa użytkowników smartfonów nie pobiera aplikacji na telefon. Skąd taki wynik? Większość z nas korzysta tylko z kilku popularnych aplikacji natywnych, natomiast w stosunku do pozostałych stron chętniej korzystamy z witryn webowych. Dlatego właśnie mówimy o PWA (Progressive Web App).

PWA jest więc aplikacją webową, która dzięki kilku modyfikacjom, naśladuje działanie aplikacji natywnej. Zasady tworzenia aplikacji PWA zgodnie z checklistą Google:

  • Korzystamy z https, w celach bezpieczeństwa,
  • Strona musi być responsywna (RWD – responsive web design),
  • Działa w trybie offline (dzięki wykorzystaniu Service Worker),
  • Posiada web app manifest opisany w pliku manifest.json, który zawiera informacje o aplikacji (nazwę, ikonki itp) odpala się na starcie aplikacji,
  • Ładuje się szybko, nawet przy wolnych połączeniach (3G),
  • Działa na różnych przeglądarkach,
  • Płynnie reaguje na aktywność użytkownika (np. przy przejściu na kolejną stronę),
  • Każda strona posiada adres url (możliwość odtworzenia stanu aplikacji z podanego adresu url)

W tym artykule chciałam skupić się na dwóch istotnych zagadnieniach z powyższej checklisty – Service Worker oraz Web app manifest.

W celu pokazania aspektów technicznych posłużę się przykładem tworzenia aplikacji PWA z wykorzystaniem Angulara 6.

Web app manifest – manifest.json

Przykład:

{
  "name": "angular-pwa",
  "short_name": "app-pwa",
  "theme_color": "#1976d2",
  "background_color": "#fafafa",
  "display": "standalone",
  "scope": "/",
  "start_url": "/",
  "icons": [
    {
      "src": "assets/icons/icon-72x72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "assets/icons/icon-96x96.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "assets/icons/icon-128x128.png",
      "sizes": "128x128",
      "type": "image/png"
    },
    {
      "src": "assets/icons/icon-144x144.png",
      "sizes": "144x144",
      "type": "image/png"
    }
  ]
}

Co mówi nam powyższy plik?

{
  "name": "angular-pwa",
  "short_name": "app-pwa"
}

Nazwa aplikacji to „angular-pwa”, natomiast skrócona nazwa „app-pwa” pokaże się w miejscach gdzie do dyspozycji mamy ograniczoną przestrzeń np. pod ikoną na pulpicie urządzenia.

Gdy użytkownik doda naszą aplikację do ekranu głównego, możemy zdefiniować zestaw ikon do użycia w przeglądarce (w takich miejscach jak ekran główny, menu, ekran powitalny, itp). Ikony to tablica obiektów zawierająca ścieżkę src, rozmiar, typ obrazu.

{
 "icons": [
    {
      "src": "assets/icons/icon-72x72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "assets/icons/icon-96x96.png",
      "sizes": "96x96",
      "type": "image/png"
    },
 ]
}

start_url informuje przeglądarkę, gdzie powinna uruchomić się nasza aplikacja. Powinna być skierowana bezpośrednio do naszej aplikacji.

{
"start_url": "/"
}

Pozostałe informacje takie jak:

{
 "theme_color": "#1976d2",
  "background_color": "#fafafa",
  "display": "standalone",
  "scope": "/"
}

opisują kolor aplikacji, motyw tzw. splash screenu oraz sposób wyświetlania aplikacji. Właściwość „standalone” pokazuje aplikację w sposób natywny tzn. aplikacja działa we własnym oknie, niezależnie od przeglądarki i ukrywa standardowe elementy interfejsu użytkownika przeglądarki, takie jak pasek adresu URL itp.

Co najważniejsze nasz manifest.json, musi być dodany do naszej aplikacji. Po pierwsze do pliku index.html do sekcji head:

{
  <link rel="manifest" href="manifest.json">
}

Oraz do pliku angular.json w sekcji assets:

{
"assets": [
      "src/manifest.json"
    ]
}

Service Worker

Działanie Service Workera jest obszernym tematem, jednak to co nas interesuje można podsumować następująco:

Service Worker to skrypt działający w przeglądarce, który pełni rolę proxy pomiędzy aplikacją kliencką, a aplikacją serwerową. Przechowuje żądania sieciowe, aktualizuje zasoby znajdujące się na serwerze, określa które zasoby zapisujemy do cache’a, tak aby użytkownik przy kolejnym uruchomieniu aplikacji nie musiał czekać na pobranie tych danych z serwera. Service Worker pozwala także na implementację push notifications.

Jak dodać PWA do naszej aplikacji w Angularze?

Wykorzystując komendę angular cli wpisujemy w consoli:

ng add @angular/pwa --project *project-name*

Powyższa komenda dodaje @angular/service-worker do naszej aplikacji, importuje i rejestruje service worker w naszym app-module, aktualizuje plik index.html dodając manifest.json oraz tworzy plik konfiguracyjny ngsw-config.json, który zawiera mechanizm cache’owania aplikacji.

Przykładowy plik ngsw-config.json:

{
  "index": "/index.html",
  "assetGroups": [{
    "name": "app",
    "installMode": "prefetch",
    "resources": {
      "files": [
        "/favicon.ico",
        "/index.html",
        "/*.css",
        "/*.js"
      ],
      "urls": [
        "https://fonts.googleapis.com/css?family=Oswald:300,700",
        "https://fonts.gstatic.com/**"
      ]
    }
  }, {
    "name": "assets",
    "installMode": "lazy",
    "updateMode": "prefetch",
    "resources": {
      "files": [
        "/assets/**"
      ]
    }
  }],
}

W powyższej sekcji assetGroups mamy dwa obiekty app i assets. W pierwszym obiekcie konfigurujemy cache’owanie głównego pliku index.html, plików css, js. Natomiast drugi dotyczy cache’owania zasobów z folderu assets.

{
  "dataGroups": [
    {
      "name": "posts",
      "urls": [
        "https://jsonplaceholder.typicode.com/posts"
      ],
      "cacheConfig": {
        "maxSize": 5,
        "maxAge": "6h",
        "timeout": "10s",
        "strategy": "freshness"
      }
    }
  ]
}

Sekcja dataGroups określa mechanizm cache’owania wywołań z API.

Jak sprawdzić czy nasze PWA działa?

Najpierw musimy zbudować nasz projekt produkcyjnie

ng build --prod

Standardowa komenda ng-serve nie wspiera działania service-workera, dlatego aby uruchomić naszą aplikację PWA wykorzystamy http-server.

Instalujemy http-server za pomocą:

sudo npm install http-server -g

następnie, wpisujemy poniższą komendę:

http-server -p 8080 -c-1 dist/*project-name*

Projekt uruchamia się jako wersja produkcyjna na porcie 8080 (flaga c-1 wskazuje folder gdzie mieści się nasza zbudowana aplikacja).

Co otrzymujemy?

tech1

A co najważniejsze, wchodząc w tryb offline możemy zauważyć, że service worker działa. W kolumnie „size” widzimy, że zasoby pobierane są z service workera:

tech2

Podsumowanie

Podsumowując PWA jest zdecydowanie pożądaną funkcjonalnością i dużym ułatwieniem dla użytkowników smartfonów, tabletów jak i również developerów. Pisząc jedną aplikację webową tworzymy aplikację uruchamianą na wszystkich platformach (Desktop, iOS, Android), zarządzaną jednym wspólnym kodem.

Źródło:
1. https://developers.google.com
2. https://angular.io

Autorką tekstu jest Klaudia Moroń.

#234 Czym jest wysiłek klienta?

Klient, który dokonuje zakupów online czy też offline musi wykonać pewne działania, które przybliżą go do oczekiwanego rezultatu, jest nim posiadanie rzeczy, która zaspokoi jego potrzeby lub też rozwiąże jego problem. Zakup wiąże się z pewnym wysiłkiem, który musi ponieść klient. Jest to suma działań, które on podejmuje, aby sfinalizować zakup. Czasami są to także działania mało przyjemne, bowiem wiążą się z reklamacją, czy problemami z zamówieniem. Jak zatem kontrolować wysyłek klienta i sprawiać, by był on jak najmniejszy?

Z dzisiejszej lekcji dowiesz się:

          • czym jest i jak mierzyć wysiłek klienta;

Wysiłek klienta – mały i duży

Wysiłek klienta w kontakcie ze sklepem czy też z marką może być mały i duży. W przypadku kupowania produktów łatwo dostępnych, które nie są limitowane, które można kupić w każdym sklepie klienci oczekują małego nakładu „pracy”. Duży wysiłek jest akceptowalny przez nich tylko w przypadku zakupu towarów limitowanych, ciężko dostępnych, których posiadanie wiąże się z prestiżem, dużą satysfakcją itd.

Dlatego w e-commerce tak bardzo ważne jest uproszczenie wszystkich procesów, tak aby zakupy wymagały minimalnego wysiłku. Proces zakupowy w sklepie to przede wszystkim wyszukanie produktu, wrzucenie go od koszyka, wybranie sposobu zapłaty i dostawy, dokonanie płatności, jeśli płacimy z góry. Brak konieczności zakładania konta, przez wielu klientów traktowany jest jako plus. Wielu bowiem nie chce się wiązać na stałe z jednym sklepem, poza tym zakładanie konta wiąże się z wymogiem pamiętania dodatkowych haseł itd.

Dlatego możemy mówić, że klient kupując towar zmuszony jest do wysiłku na różnych płaszczyznach. Cztery główne to:

  • płaszczyzna emocjonalna – to wszystkie emocje, które pojawiają się podczas zakupu nie tylko te pozytywne, ale przede wszystkim negatywne. Pojawiają się one w chwili, gdy występują problemy z zamówieniem lub produktem;
  • płaszczyzna czasu – czyli to, ile klient poświęcił swojego czasu na sfinalizowanie całego zakupu;
  • płaszczyzna finansowa – łączy się ona niejako z czasową, bowiem tutaj mowa nie tylko o finansach, ale także o poświęconym przez klienta czasie rozpatrywanym jako walucie;
  • płaszczyzna fizyczna – czyli jakie działania fizyczne muszą zostać dokonane, aby złożyć i otrzymać zamówienie.

Co wpływa na wysiłek klienta?

Tak naprawdę na to, jak bardzo klient „zmęczy się” podczas zakupów wpływa bardzo wiele czynników. Możemy je podzielić na te, które nie wymagają kontaktu z obsługą sklepu i na te, które wymuszają na kliencie takowy. Wśród czynników wyróżnimy:

  • długie oczekiwanie – mowa o oczekiwaniu na paczkę, ale także o oczekiwaniu na połączenie na infolinii. Słuchanie muzyczki, to strata czasu, oczekiwanie na linii po kilkanaście minut także. Czasami czas oczekiwania na połączenie jest tak długi, że dzwoniący po prostu zostaje rozłączony. To powoduje frustrację, próbę wykonania kolejnych telefonów, a jeśli i one nie dojdą do skutku, próbę kontaktu mailowego. Tyle że zniecierpliwieni klienci nie lubią pisać maili;
  • przełączanie pomiędzy konsultantami oraz konieczność przetwarzania informacji – to kolejne dwie, związane z kontaktem telefonicznym czynności, które powodują zbędą frustrację. Konieczność powtarzania tej samej historii po kilka razy sprawia, że wysiłek klienta jest dużo większy, niż jeśli rozwiąże on swój problem za pierwszym „podejściem”;
  • źle zaprojektowany proces zakupowy – to bolączka niektórych sklepów, gdzie strona produktu, koszyk, a także cała droga od znalezienia towaru do jego zapłaty jest po prostu trudna i bardzo nieczytelna;
  • źle zautomatyzowana obsługa – kolejny proces, który ma ułatwić klientom kontakt ze sklepem, a który dla wielu z nich staje się ogromną przeszkodą. Problemem może być chatbot, z którym nie można łatwo przeprowadzić konwersacji, lub źle skonfigurowany system kontaktu online, który nie segreguje nadawców wiadomości;
  • brak zapisu interakcji z klientem – bardzo często zdarza się tak, że nikt nie pozostawia w systemie informacji na temat tego, jaki problem napotkał klient, co sprawia, że kolejny konsultant nie potrafi zidentyfikować nadawcy, a co za tym idzie rozwiązać jego problemu;
  • brak rozwiązań omnichannel – jeśli klient nie może rozwiązać swojego problemu w sklepie stacjonarnym, chociaż towar zakupił online, to może być to dla niego ogromna niewygoda. Dlatego też duże sieci coraz częściej umożliwiają na oddawanie towaru zakupionego online w stacjonarnych placówkach, wszystko po to, by ułatwić klientowi cały proces;

Czy możemy określić wysiłek klienta?

Okazuje się, że w pewien sposób możemy to zrobić. Wystarczy przeprowadzić proste badanie CES, czyli Customer Effort Score. Umożliwia ono sprawdzić ile klient musiał włożyć wysiłku, by zrealizować potrzebę. Pytanie takie zadaje się bezpośrednio po działaniu. Korzystają z nich na przykład telefonie komórkowe, które oddzwaniają do nas po rozmowie z konsultantem. Pytanie mają różną skalę przeważnie jest ona 5 lub 7 stopniowa. Wskaźnik CES mierzy się następującym pytaniem:

Czy nasza firma zrobiła wszystko, by ułatwić zamówienie produkty/usługi:

  1. Zupełnie się nie zgadzam.
  2. Nie zgadzam się.
  3. Raczej się nie zgadzam.
  4. Ani się zgadzam, ani się nie zgadzam.
  5. Raczej się zgadzam.
  6. Zgadzam się.
  7. Zdecydowanie się zgadzam.

Poziom CES to odsetek osób, które udzieliły odpowiedzi na poziomie “Raczej się zgadzam” lub lepszej.

Trzeba pamiętać, że osoby niezadowolone dużo chętniej podzielą się negatywną opinią w sieci, lub wśród znajomych. Badania CEB wykazują także, że aż 81% osób niezadowolonych z interakcji z przedstawicielami marki chętnie przekaże swoją negatywną opinię dalej. 94% będzie następnie wykazywać się działaniami nielojalnymi wobec marki.

Co zrobić, aby uniknąć takich sytuacji?

Przede wszystkim musimy dbać o najwyższą jakość obsługi klienta. Dlatego pojawiają się takie modele jak Supreme Service oraz Perfect Hospitality. Marki stawiają na budowanie relacji i dialog z kupujących, dzięki czemu mają pewność, że nawet w newralgicznych momentach kryzys będzie można usunąć w zarodku, bez konieczności gaszenia pożaru.