Kastomizacja oprogramowania - to do or not to do?

Kastomizacja przestaje być nowością, o czym świadczy coraz liczniejsza grupa firm oferująca produkty w modelu zindywidualizowanym.

Wydaje się, że dopasowany produkt będzie lepszy niż standardowy. Wszak buty czy marynarka wykonane "na miarę" lepiej leżą niż te produkowane masowo. Czy tak jest też z oprogramowaniem dla biznesu?

Zacznijmy jednak od początku i usystematyzujmy czy kastomizacja i personalizacja to terminy, które określają to samo? Często oba używane są wymiennie, ale w mojej opinii istnieje jednak między nimi różnica. Zacznijmy od personalizacji. Gdy uważnie przeanalizujemy ten model, dostrzeżemy, że preferencje użytkownika, na podstawie których przygotowywany jest produkt, często są wykrywane automatycznie. Dzieje się tak nawet gdy finalny odbiorca sam o tym nie wie. W tym przypadku nie tyle istotny jest sam automatyzm ile fakt, że zbiór preferencji odbiorcy w przewidzianym zakresie jest z góry określony przez Producenta. Możemy powiedzieć, że do personalizacji zaliczamy bardziej ustawienia parametrów dostępnych w standardzie. Kastomizacja to coś więcej! W tym modelu ingerencja w produkt jest głębsza, a dopasowanie do potrzeb odbiorcy bardziej zaawansowane. Upraszczając, można powiedzieć, że w przypadku personalizacji klient wybiera konkretne rozwiązania z listy, natomiast w przypadku kastomizacji nie ma  listy - rozszerzenia są określane indywidualnie. Przykładem branży z rozbudowaną personalizacją jest motoryzacja. Każdy producent ma bardzo bogatą ofertę, dzięki której zaspokaja potrzeby klientów. Mogą oni wybierać nie tylko spośród modeli samochodów, ale także licznych elementów wyposażenia i łączyć je w wielu konfiguracjach. Mimo, że kombinacji jest dużo, to jednak zbiór jest skończony. Klient wybiera ręcznie spośród dostępnych wariantów, możemy przyjąć, że jest to personalizacja.

Jednak istnieje również możliwość wyjścia poza zbiór opracowany przez producenta i zindywidualizowanie produktu. Zdarzają się bowiem klienci, którzy chcą umieścić na samochodzie własną grafikę, lub wybrać lakier o indywidualnie opracowanym składzie zawierającym np. złoto. W takich przypadkach możemy mówić już o kastomizacji. Oczywiście nie obejmuje ona jedynie zapotrzebowania na ekstrawaganckie zmiany. O kastomizacji możemy również mówić wtedy, gdy Producent dostosuje auto do konkretnych potrzeb np. osoby niepełnosprawnej. W takich przypadkach modyfikacje nie mogą być określone z katalogu, a będą zawsze precyzyjnie dopasowywane do konkretnego odbiorcy.

Inną – nieco mnie oczywistą ilustracją zagadnienia - może być rynek smartfonów, na którym mamy wielu producentów urządzeń i dwa bardzo popularne systemy operacyjne. Pomijając cześć sprzętową (gdzie personalizacja sprowadza się przede wszystkim do koloru obudowy i ewentualnie doboru dodatkowych akcesoriów), w części związanej z oprogramowaniem mamy ponownie rozdział na to, co podlega personalizacji i zostało przewidziane w systemie jako „ustawialne” (kolory, dźwięki, tła, wygaszacze ekranu, wielkość czcionki, itp.). Tu rodzi się pytanie, czym są kastomizacje w przypadku smartfona? Chyba tym, co odróżnia go od telefonu – aplikacjami, które wzbogacają system właściwie w nieograniczony sposób. Standardowe aplikacje dostarczane w systemie operacyjnym oczywiście też istnieją, ale ich zakres jest skromny (zegarek, budzik, kalkulator) i znany jeszcze z telefonów, które nie były kombajnami multimedialnymi. O sile smartfona i jego systemu operacyjnego decydują aplikacje możliwe do zainstalowania – zarówno te, które już ktoś stworzył i umieścił sklepie dostawcy systemu, jak i te, które zostaną wymyślone i dodane. 

Do działania!

W przypadku systemu ERP, gdy mówimy o kastomizacji, raczej nie mamy na myśli takiego czy innego koloru lub kształtu przycisków – tu gra toczy się o konkretną funkcjonalność. Użytkownicy do „wystroju” aplikacji przyzwyczajają się szybciej bądź wolniej, kastomizacje zaś pojawiają się w procesach istotnych dla użytkowników i mających znaczenie dla prowadzonego biznesu – tam gdzie niezbędna jest implementacja ponadstandardowych funkcjonalności, aktualnie niedostępnych w wersji podstawowej.  Nie można przy tym wykluczyć, że ERP w przyszłości wzbogaci się o takie lub podobne funkcje - systemy klasy ERP są rozwiązaniami dynamicznymi i siłą rzeczy nowe funkcjonalności muszą być wdrażane również w części standardowej systemu.

W systemie informatycznym dobrym i prostym przykładem jest raport. Może istnieć standardowy, nawet w kilku wersjach pokazujący dane w różnych układach. Mało tego – standard może przewidywać parametryzację raportu, aby niezależnie od potrzeb użytkownika z góry umożliwić mu jego wydruk w różnych wariantach. Jeśli jednak mimo wielu dostępnych opcji, Klient chce mieć bardzo specyficzny raport, którego układ jest zupełnie inny niż jakakolwiek oferowana wersja standardowa, to konieczne jest przygotowanie wersji indywidualnej. I tu też przypadki są dwa – gdy raport operuje na danych już dostępnych w standardzie, to przygotowanie takiej wersji indywidualnej będzie dość łatwe. Taki raport po utworzeniu ma szanse przez długi czas działać prawidłowo i cieszyć Klienta swoim układem. Zawsze występuje pewne ryzyko, że koncepcja w standardzie ulegnie zmianom w takim stopniu, że spowoduje to braki oczekiwanej informacji w raporcie indywidualnym. Co wówczas? Klient zawsze ma możliwość powrotu do standardowych rozwiązań, ale zwykle po niewielkich korektach również indywidualny raport może być nadal używany.

Zdarzają się również przypadki trudniejsze, gdzie oczekiwania Klienta znacząco wykraczają poza standardowe rozwiązanie. Wówczas nie tylko układ raportu wymaga dostosowania, ale ulega zmianie również sam etap pozyskiwania i gromadzenia danych. Konsekwencją takich działań jest znaczne oddalenie się od wersji standardowej. 

Dług, który zawsze musi być spłacony

Tam, gdzie dostosowania nie ingerują głęboko w system i bardziej usprawniają analizę danych niż wpływają na proces ich gromadzenia, sytuacja jest stosunkowo prosta, a indywidualizmy mają szanse przynosić korzyści. Wyzwania zaczynają się, gdy pojawiają się dodatkowe zmienne wpływające na przebieg całego procesu pozyskiwania danych. Wplecenie indywidualnych rozwiązań do standardowej wersji może być bardzo trudne, a niekiedy niezbędna może okazać się wymiana całego fragmentu systemu. To oznacza zerwanie ze standardem i w pewnym sensie uzależnienie się od systemu zindywidualizowanego. Z czasem rozdźwięk będzie się pogłębiał, kastomizację będzie coraz trudniej utrzymać w zdatności do użycia i może dojść do sytuacji, w której kolejne, coraz większe fragmenty systemu będzie trzeba indywidualizować po to, żeby mogły funkcjonować pierwotne zmiany. Ogon zacznie machać psem, zamiast pies ogonem. Pojawi się dług technologiczny, o czym pisze Jarosław Żeliński na swoim blogu IT-Consultant.pl – zjawisko, o którym mało się mówi, a prawie każdy się z nim boryka.

Z jednej więc strony mniejsza ingerencja w podstawowe procesy, a z drugiej regularne aktualizowanie oprogramowania do bieżących wersji będą w ostatecznym rozrachunku tańsze i lepsze niż odkładanie w czasie tego, co i tak niezbędne. Obrazowo wyjaśnia to autor wspomnianego bloga – W dużym uproszczeniu to jak zmywanie naczyń: jeżeli robimy to regularnie po każdym posiłku, to zajmuje to góra kilkanaście minut, a do wykonania wystarczy ściereczka. Jeżeli jednak uznamy, że zmyjemy naczynia dopiero jak “statki” w zlewozmywaku zasłonią okno kuchni :), to nie tylko jednorazowo stracimy znacznie więcej czasu, ale dodatkowo zafundujemy sobie walkę z zaschniętym tłuszczem i resztkami jedzenia, dlatego – co ciekawe – czas i wymagane “środki” potrzebne na rzadkie pozmywanie tej góry nagromadzonych naczyń, są zawsze większe niż suma nakładów pracy na częste drobne zmywanie. Zmywanie naczyń to nielubiana a konieczna czynność. Z technologią w firmach jest bardzo podobnie: postęp techniczny i ewolucyjne zmiany w biznesie są jak narastająca liczba brudnych naczyń: prędzej czy później będziemy musieli to uporządkować (nadrobić) – albo wyrzucić i kupić nowe. – kończy Żeliński.

Umiar i rozsądek

Jako praktyk mogę powiedzieć, że dobra indywidualizacja jest zawsze „blisko” standardu. Gdy zbyt daleko wyjdziemy poza ramy tego, na co standard pozwala, wówczas nie będzie to już kastomizacją w standardowym produkcie, a po prostu produktem indywidualnym. Podsumowując: stosujmy indywidualizację z umiarem i rozsądkiem. Tam, gdzie jest nieodzowna, a nie tam, gdzie możliwe jest użycie - czasem bardzo bogatej - standardowej funkcjonalności. Korzystajmy z siły standardu, wspierając go dopasowaniami a nie odwrotnie.

Rafał Tyrala
Menadżer Zespołu Kastomizacji
 

Artykuly-powiazane-psi-ogon