Rozdział 3. Wybór technologii i platformy Dedykowana platforma, oprogramowanie pudełkowe czy Open Source? Michał Handl Na rynku dostępnych jest obecnie całe spektrum platform do sprzedaży Internetowej. Oferowane są różne modele licencyjne i różne scenariusze wdrożenia. Wybór oprogramowania ma znaczenie zasadnicze, ponieważ wpłynie nie tylko na czas i koszty wdrożenia, ale też na możliwości późniejszego rozwoju. W pierwszej kolejności należy określić ważne wymagania, które później staną się kryteriami decyzji. Każdy produkt będzie miał swoje zalety i wady, których nie da się pogodzić trzeba dokonać wyboru mając na względzie wszystkie plusy i minusy. W bardzo dużym skrócie platformy e-commerce można podzielić na: Platformy dedykowane Oprogramowanie pudełkowe: Oprogramowanie pudełkowe darmowe Oprogramowanie pudełkowe płatne Oprogramowanie pudełkowe w formie dzierżawy Dzięki takiemu podziałowi będzie dostępny pierwszy punkt odniesienia do porównania. Platforma dedykowana Platforma dedykowana jest to oprogramowanie, które jest tworzone specjalnie pod potrzeby zamawiającego. Można mieć wpływ na wszystkie elementy i aspekty wytworzonego systemu, począwszy od technologii w jakiej zostanie wytworzone, a skończywszy na procesach przepływu danych, jakie zostaną zaimplementowane w tym rozwiązaniu. Często producenci i dystrybutorzy nazywają platformą dedykowaną oprogramowanie pudełkowe (gotowy produkt) przystosowywane w większym lub mniejszym zakresie do potrzeb klienta. W tym przypadku chodzi o oprogramowanie pisane zupełnie od podstaw pod klucz. Zaletą takiego rozwiązania jest możliwość stworzenia platformy idealnie dopasowanej do środowiska informatycznego, które już istnieje w przedsiębiorstwie (np. bardzo dobra integracja z systemem księgowym lub systemem magazynowym). Biorąc pod uwagę plusy tego rozwiązania trzeba zwrócić koniecznie uwagę na jego wady. Pomijając aspekt kosztowy i czasowy (wytworzenie oprogramowania od zera jest zazwyczaj bardzo drogie i trwa długo) warto zastanowić się czy będziemy w stanie zaprojektować dobry system i nie popełnić błędów, które już inni rozwiązali w swoich aplikacjach sprzedawanych od lat na rynku? Przy takim założeniu musimy wykonać projekt całego systemu, a nie tylko zmian dostosowawczych w istniejącym oprogramowaniu. Reguły cenowe, promocyjne, zarządzanie produktami...
Bardzo dużą wadą rozwiązań dedykowanych jest duży poziom odpowiedzialności obciążający zamawiającego. Nie ma co liczyć na aktualizacje producenta dodatkowe funkcjonalności czy poprawę błędów w ramach pojawienia się nowszych wersji. Koszt wszystkich modyfikacji oraz utrzymania oprogramowania nie jest pomijalny. Oprócz sytuacji wyjątkowych jak sprzedaż nietypowych produktów cyfrowych, wejście na rynek z bardzo innowacyjną platformą transakcyjną tworzenie systemu sprzedażowego od podstaw praktycznie nie znajduje uzasadnienia biznesowego. Oprogramowanie pudełkowe Oprogramowanie pudełkowe. To rodzaj oprogramowania, który można kupić bezpośrednio od dystrybutora, zainstalować i używać. W większości przypadków charakteryzuje się on dość zamkniętą strukturą, której użytkownik nie będzie musiał modyfikować. Produktów tego typu dostępnych na rynku jest bardzo dużo. Różnią się licencją, ceną oraz możliwościami. W przypadku rozwiązań z licencją komercyjną trzeba mieć na uwadze, że oprogramowanie pudełkowe może nie pozwolić na wprowadzenie wszystkich modyfikacji koniecznych do realizacji biznesu lub modyfikacje takie będą bardzo drogie. W celu usystematyzowania oprogramowanie pudełkowe podzielić można na trzy główne kategorie: Oprogramowanie pudełkowe w formie dzierżawy (rozwiązania płatne w formie ryczałtu miesięcznego) SaaS czyli Oprogramowanie Jako Usługa (Software As a Service) to najtańszy sposób na rozpoczęcie sprzedaży w Internecie. Zamawiający nie martwi się hostingiem, instalacją ani konfiguracja sklepu. Oprogramowanie pudełkowe zamknięte różnego rodzaju autorskie rozwiązania, wspierane najczęściej tylko przez producenta o zamkniętej licencji, która nie umożliwia wprowadzania zmian przez zamawiającego, Oprogramowanie pudełkowe otwarte (może być zarówno darmowe jak i płatne) oprogramowanie wydane na licencji Open Source. Producenci często świadczą dodatkowe, płatne wsparcie dla oprogramowania. Zamawiający może je jednak dowolnie modyfikować i rozwijać we własnym zakresie. Oprogramowanie pudełkowe otwarte Na rynku można spotkać kilka dobrych rozwiązań, które są darmowe, na przykład bardzo popularny PrestaShop czy Magento. Oprogramowanie takie dzięki zastosowaniu licencji otwartej może być dowolnie dostosowane do potrzeb zamawiającego. Może on skupić się na modyfikacji tylko tych mechanizmów, które powinny działać w sposób dedykowany, podczas gdy wszystkie inne działają z pudełka bez wprowadzania zmian. Trzeba pamiętać o tym, że jeśli rozpocznie się modyfikacje funkcjonalności wbudowane na we własnym zakresie to prawdopodobnie utraci się możliwość dokonywania aktualizacji dostarczanych przez producenta. W zależności od modyfikacji możliwości aktualizacji mogą się ograniczyć lub skomplikować w bardzo dużym stopniu. Przy zmianie kodu bazowego platformy w celu wykonania aktualizacji mogą być konieczne ręczne porównania i scalania plików. W efekcie może to spowodować, że użytkownik będzie w posiadaniu starej wersji znanego, otwartego oprogramowania, narażonego tym samym na ataki. Trzeba bardzo dobrze przemyśleć wszelkie modyfikacje w oprogramowaniu tak, aby zminimalizować ryzyko i zachować dostęp do aktualizacji producenta. Warto wybrać oprogramowanie, które będzie posiadało najwięcej przydatnych nam funkcjonalności oraz będzie umożliwiało dopisywanie pluginów (dodatków) nie zmieniających kodu bazowego. Oprogramowanie pudełkowe zamknięte, oprogramowanie w formie dzierżawy Oprogramowanie dostarczone w formie dzierżawy można podsumować stwierdzeniem: szybko i tanio, ale z ograniczonym wachlarzem możliwości.
Takie rozwiązania dobre są dla wszystkich tych, którzy szybko i bez dużych kosztów chcą uruchomić sklep internetowy, nie potrzebują integracji z innymi systemami. Rozwiązanie to jest idealne dla osób rozpoczynających mikro biznes, niezatrudniających informatyków, a także dla których IT nie jest szczególną pasją. Do uruchomienia sklepu nie są potrzebne prawie żadne informatyczne zdolności. Po zamówieniu i realizacji przez firmę (często producenta/operatora) grafiki resztę działań można zrealizować z poziomu panelu administracyjnego. W przypadku oprogramowania w formie dzierżawy praktycznie nie ma możliwości wprowadzania dedykowanych pod zamawiającego zmian. Oprogramowanie jest używane w takiej samej wersji przez wszystkich klientów platformy a utrzymywanie osobnych modyfikacji dla producenta jest zazwyczaj nieopłacalne. Jeśli wybrana przez nas platforma udostępnia wersję do instalacji na naszym serwerze czyli wersję zamkniętą, ale nie dzierżawioną wtedy prawdopodobnie zmiany będą możliwe. Trzeba pamiętać, że zazwyczaj w takim przypadku licencja nie umożliwia samodzielnego wprowadzania zmian lub takie działanie doprowadzi do wygaśnięcia licencji. Zmiany wykonywane tylko i wyłącznie przez producenta mogą być drogie, mogą wiązać się też z długimi czasami realizacji. Faktem jest, że oprogramowania pudełkowe zamknięte i dzierżawione często oferują mnóstwo gotowych funkcji, które są bardzo dobrze dopasowane do rynku, na którym działa zamawiający. Nic dziwnego firmy tworzące takie produkty z jednej strony mają motywację do rozwoju wynikającą wprost z opłat za oprogramowanie. Z drugiej strony posiadają dużą bazę klientów sugerujących zmiany i nowe funkcje które najczęściej stają się dostępne po pewnym czasie też dla wszystkich pozostałych. Okazuje się, że największym zagrożeniem w takim przypadku jest stabilność producenta oprogramowania. Decydując się na wybór platformy rozwijanej przez jedną firmę, czasami mniejszą niż biznes zamawiającego ponosi on duże ryzyko. Firma taka może zaprzestać rozwoju produktu lub zaprzestać działalności w ogóle. Decydując się na oprogramowanie, które ma wesprzeć nasz biznes przez najbliższych kilka lat warto pomyśleć o rozwiązaniu otwartym, które da większe bezpieczeństwo biznesowe. Oprogramowanie pudełkowe otwarte Open Source Open Source, to nie tylko sposób dystrybucji, ale ruch wolnego oprogramowania, który od końca lat 80tych cały czas rozwija się i skupia wokół siebie wielu sympatyków. Istnieje co najmniej kilka modeli biznesowych wspierających producentów oprogramowania otwartego. Przykładem osiągania zysków z oprogramowania Open Source może być świadczenie dodatkowych płatnych usług związanych ze wsparciem dla darmowego oprogramowania lub dystrybucja darmowej wersji oprogramowania z ograniczonymi opcjami, natomiast w wersji komercyjnej w opcji z rozszerzonymi funkcjonalnościami. Rozwiązania Open Source bardzo rozpowszechniły się i dzisiaj wiele serwisów internetowych opartych jest na nich w części lub całości (np. system operacyjny Linux, serwer www Apache, baza danych MySQL, język programowania PHP). Oprogramowanie Open Source, jak sama nazwa wskazuje ma otwarte źródła, dzięki czemu każdy użytkownik, który używa tego oprogramowania, może w razie potrzeby analizować i modyfikować jego kod źródłowy poprawiając błędy lub wprowadzając nowe funkcje. Ponieważ każdy może to zrobić, to zagrożeniem będzie pojawianie się w Internecie informacji o gotowych sposobach na włamanie czy wykradnięcie cennych informacji. Jednocześnie dzięki temu, że kod może być analizowany przez dosłownie każdego, przyspieszone jest wykrywanie błędów, a co za tym idzie pojawianie się łatek i zabezpieczeń. Z obu powyższych wynika konieczność częstego aktualizowania i śledzenia zmian systemów Open Source z których korzystamy. Rozwój projektów Open Source daje korzyści producentom rozwiązań komercyjnych. Między innymi IBM, RedHat, Varien, Intel i inni, rozwijają i wspierają projekty Open Source. Z jednej strony traktują taki model jako reklamę (dzięki rozwiązaniom otwartym jest szansa trafić do większej liczby użytkowników, którzy zapoznają się z rozwiązaniem i prawdopodobnie w przyszłości będą korzystali, z płatnych wersji, płatnego wsparcia itp.). Z drugiej strony takie podejście umożliwia im wykorzystanie wiedzy i doświadczenia programistów, którzy zainteresują się oprogramowaniem i dostarczą nowe moduły czy też znajdą i poprawią błędy. Zanim zastanowimy się nad rozwiązaniem Open Source to musimy także zwrócić szczególną uwagę na licencję dystrybucyjną danego oprogramowania. Sam fakt tego iż program posiada otwarte źródła, nie jest jednoznaczne z tym, że można go używać w dowolny sposób.
Licencje Open Source Oprogramowanie Open Source dystrybuowane jest na podstawie różnorodnych licencji tabela x.x). Niektóre z nich są dość skomplikowane i różnią się od innych tylko niewielkimi niuansami które czasami okazują się kluczowe. Lista dostępnych licencji Open Source znajduje się pod adresem: http://www.gnu.org/licenses/licenselist.pl.html. Licencje wolnego oprogramowania dzieli się na dwie kategorie. Pierwsza to licencje wolnego oprogramowania zgodne z GPL, druga to licencje wolnego oprogramowania niezgodne z GPL. Jest kilka elementów, które powtarzają się w większości licencji: Uznanie autorstwa. Niektóre licencje wymagają umieszczenia w widocznym dla użytkownika miejscu informacji O autorze inne wymagają tylko aby informacja o autorze nie była kasowana z komentarza w kodzie źródłowym. Są także licencje zawierające klauzule z których jasno wynika, że nie należy używać nazwy oryginalnego oprogramowania, jeśli mówimy o oprogramowaniu zmodyfikowanym. Copyleft. Licencje zawierające taką klauzulę są czasami nazywane wirusowymi. Jeśli użyjesz jakikolwiek fragment kodu, który używa tej licencji, wówczas cały program musi być wydany na licencji kompatybilnej. Celem tej klauzuli jest zatrzymanie producentów oprogramowania od kopiowania darmowych rozwiązań i w oparciu o nie budowaniu innych rozwiązań i dystrybuowania ich tylko odpłatnie. Copyleft dzielimy na dwa kategorie: Silna definiuje, że tylko programy które używają tej samej licencji mogą używać kodu dystrybuowanego pod tą licencją; Słaba definiuje, że tylko zmiany kodu muszą być publikowane na tej samej licencji, natomiast dodatkowe elementy oprogramowania mogą być zbudowane na zasadzie biblioteki i publikowane na podstawie innej licencji. Tolerancja. Czasami ludzie dopytują się jak bardzo tolerancyjna jest licencja. Im bardziej licencja jest tolerancyjna, tym więcej można zrobić z oprogramowaniem. Zasięg ograniczeń licencyjnych waha się od bardzo liberalnych licencji takich jak MIT czy X License, do bardziej ograniczonych pozwoleń takich jak EULA, dotyczących komercyjnych pakietów. Tabela x.x. Poniżej zestawienie najpopularniejszych licencji wraz z uwagami: Licencja Kod źródłowy Typ Klauzule Uwagi Brak licencji Otwarty Żaden 0 Brak licencji, tak naprawdę nie oznacza że można go użyć za darmo. Jest on bowiem chroniony prawami autorskimi i aby go użyć należy skontaktować się bezpośrednio z autorem i zapytać o pozwolenie. Domena publiczna Otwarty Tolerancyjny 0 Jeśli oprogramowanie umieszczone jest jako domena publiczna to każdy może go wykorzystać w dowolnym celu. Licencja GPL Otwarty Copyleft 12 Dystrybucja oprogramowania nie może być prawnie zastrzeżone w żaden sposób, nawet zmodyfikowana. Licencja LGPL Otwarty Copyleft (w większości przypadków) 16 Licencja identyczna jak GPL, ze sprytnie skonstruowanym mechanizmem, pozwalającym nakładać ograniczenia dystrybucyjne. Licencja MIT/X11 Otwarty Tolerancyjny 2 Bardzo krótka i ogólna. Zawiera tylko ogólne zastrzeżenia co do odpowiedzialności prawnej.
Licencja BSD Otwarty Tolerancyjny 2 Bardzo krótka i ogólna. Zawiera tylko ogólne zastrzeżenia co do odpowiedzialności prawnej. Licencja Apache Otwarty Tolerancyjny 9 Wymaga stworzenia dzieła pochodnego, aby zgłosić jakikolwiek zastrzeżenia prawne do kodu źródłowego. Eclipse Public License Mozilla Public License MS Permissive License MS Community License MS Reference License Otwarty Tolerancyjny 7 Licencja przyjazna dla biznesu. Umożliwia dla prac pochodnych wybór własnej licencji na ich publikację. Otwarty Słaby copyleft 13 Umożliwia wprowadzenie liberalnej mieszanki prawnie zastrzeżonego licencjonowania oprogramowania. Otwarty Tolerancyjny 3 Bardzo podobna do licencji MIT oraz BSD. Nie została zaakceptowana formalnie przez OSI Otwarty Copyleft 3 Bardzo podobna do licencji GPL. Wymaga aby wytworzony kod został opublikowany dla społeczności. Ten typ licencji nie został formalnie zaakceptowany przez OSI. Własność Tylko do odczytu 3 Można przeglądać kod źródłowy, zrobić kopię ale nie można go używać lub zmieniać w jakikolwiek sposób. Mit rozwiązań komercyjnych Firmy często korzystają z płatnych rozwiązań dlatego, że w naszej podświadomości zakorzenione jest przeświadczenie skoro oprogramowanie jest darmowe to na pewno jest kiepskiej jakości i dlatego nie jest godne zaufania. Co więcej pewnie nie ma wsparcia technicznego w przypadku awarii czy modyfikacji niektórych funkcjonalności. Rozwiązania komercyjne często charakteryzują się dużo bardziej istotnymi wadami: zamknięty kod źródłowy w większości przypadków rozwiązań komercyjnych kod źródłowy aplikacji nie jest dostępny do wglądu, modyfikacji czy zmian, przez co wykrycie potencjalnych błędów w oprogramowaniu jest utrudnione. Mniejsza ilość opublikowanych informacji na temat błędów nie oznacza, że oprogramowanie jest lepsze, uzależnienie się od dostawcy rozwiązania wdrożenie zamkniętej platformy całkowicie zamyka drogę do wyboru firmy wdrażającej czy rozwijającej wdrożony produkt. Powoduje to bardzo często problem związany z dużym kosztem utrzymania powdrożeniowego takiej platformy, niepewna stabilność rozwoju oprogramowanie komercyjne, zwykle jest rozwijane przez jednego producenta, który może zaprzestać rozwijać to oprogramowanie. Użytkownik posiadający wdrożone rozwiązanie, nie ma na to żadnego wpływu, brak dokumentacji jest to bardzo ogólna kwestia, dużo przypadków rozwiązań komercyjnych pokazuje, że dokumentacja oprogramowania jest niepełna, istnieje tylko w formie porad do najczęstszych problemów i procedur. Niektóre elementy dostępne są tylko za pomocą sprawdzania ich działania metodą prób i błędów, brak wsparcia wsparcie często ograniczone jest do płatnego supportu świadczonego poprzez producenta aplikacji, brak lub ograniczona ilość porad na forach internetowych. Biorąc pod uwagę specyfikę w jakiej się obracamy, czyli wdrożenia e-commerce, trzeba zastanowić się jaki jest do dyspozycji czas i budżet. Jak wcześniej już wspomniano najtańszym oprogramowaniem i pozbawionym
wszelkich aspektów związanych z technologią, jest platforma w formie najmu. Większość rozwiązań Open Source, oczywiście samo w sobie jest rozpowszechniane jako darmowe, jednak wdrożenie jako proces wprowadzania zmian i dostosowań oczywiście darmowy już nie jest. W ramach kosztów wdrożenia trzeba ująć wszystkie elementy konieczne do dostosowania lub modyfikacji. Można wymienić między innymi koszty związane z: Dostosowaniem wyglądu strony internetowej Tłumaczenia językowe Instalacja dodatkowych modułów (np. moduł płatności) Implementacja mechanizmów integracji (w niektórych przypadkach wytworzenie ich od podstaw) Jeśli chcemy uruchomić sklep w którym mamy zamiar wprowadzić dodatkowe usprawnienia lub nietypowe funkcje, których nie znajdzie się w sklepach pudełkowych to zdecydowanie powinno się zastanowić nad rozwiązaniami Open Source. Porównanie dostępnych opcji Wybór platformy jest bardzo istotny. Wybór formy dystrybucji i licencji jest decyzją podstawową na podstawie której powinno się dokonać analizy funkcjonalności i kosztów modyfikacji. Dopiero takie dwutorowe zestawienie pozwoli podjąć odpowiedzialną decyzję (tabela y.y). Warto mieć na uwadze jakie możliwości i ograniczenia są związane z modelami dystrybucji które zostały omówione w tym rozdziale. Tabela y.y. Skomplikowani e wdrożenia Integracja z innymi systemami Możliwość modyfikacji przez inny zespół Podatność na wirusy, ataki Oprogramowani e dedykowane Oprogramowani e pudełkowe otwarte Oprogramowani e pudełkowe zamknięte Oprogramowanie pudełkowe w formie dzierżawy Trudne Proste Proste Bardzo proste Możliwe do wykonania Praktycznie nie ma możliwości rozwoju przez inny zespół Powszechna opinia: mała, rozwiązania dedykowanego nikt nie zna. W praktyce takie oprogramowanie może nie być wystarczająco dobrze przetestowane. Bezpieczeństwo zależy od umiejętności programistów. Możliwe do wykonania Rozwiązanie ogólnodostępne, dzięki czemu dużo osób może się z nim zapoznać Mała, jeśli aktualizujemy. Łatki pojawiają się bardzo szybko. W przypadku braku aktualizacji duża. Atakujący mają dostęp do kodów. Możliwe tylko poprzez producenta Możliwe tylko poprzez zespół producenta Średnie, jeśli rozwiązanie jest popularne istnieje prawdopodobieńs two ataku. Jeśli firma nie prowadzi lub zaprzestanie aktywnego rozwoju podatność rośnie. Bardzo mało możliwości Wsparcie w Brak Duże Średnie Średnie Brak możliwości modyfikacji Średnie, jeśli rozwiązanie jest popularne istnieje prawdopodobieńst wo ataku. Oprogramowanie utrzymywane w abonamencie zazwyczaj jest na bieżąco aktualizowane.
Internecie Skalowalność W zależności od zaprojektowanego rozwiązania, z praktyki wiem że raczej ograniczona ze względów budżetowych Duże możliwości skalowalności, często jednak zależy to od wyboru produktu Średnie możliwości, pod warunkiem że producent zakładał taką możliwość Brak, oprogramowanie w formie najmu w 99% takie jakie jest i jest rozwijane niezależnie od naszych potrzeb Ścieżka rozwoju aplikacji Brak, oprogramowanie dedykowane nie posiada takiego elementu Nowe funkcjonalności często wprowadzane w formie dodatków tworzone przez entuzjastów rozwiązania Nowe funkcje wprowadzane przez producenta w zależności od potrzeb rynkowych, potencjalnych zysków ze sprzedaży Nowe funkcje wprowadzane przez producenta w zależności od potrzeb rynkowych oraz budowania przewagi nad innymi rozwiązaniami tej klasy Nowości, podążanie za trendami usability Brak, oprogramowanie wytworzone jako rozwiązanie statyczne Bardzo dużo nowości, w większości produkty oparte o system szablonów, łatwo dostosować do nowych trendów Umiarkowanie, system szablonów często ograniczony, trzeba czekać na rozwój przez producenta Umiarkowanie, system szablonów często ograniczony, trzeba czekać na rozwój przez producenta Dla praktyków, najpopularniejsze platformy Magento, to bardzo ciekawa platforma e-commerce, która w ostatnich latach nabiera ogromnej popularności wśród użytkowników. Przez światowych konsultantów zostało uznane za najszybciej rozwijającą się platformę e-commerce. W 2011 firma Magento została przejęta przez ebay, zyskując dzięki temu dodatkowe fundusze na dalszy rozwój oraz uwiarygodnienie marki. Licencja Magento przewiduje 2 warianty. Magento Community, które jest oparte o licencję oprogramowania Open Source, czyli dostarczanego z otwartym kodem źródłowym gotowym do modyfikacji. Magento Community jest dostępne na licencji OSL2. Magento Enterprise komercyjna licencja charakteryzuje się przede wszystkim gwarancją producenta oraz zgodnością z korporacyjnymi standardami bezpieczeństwa i wymiany danych. Prestashop, to z pewnością najpopularniejsza w całej Europie platforma e-commerce w całości dystrybuowana na licencji Open Source. Zaletą tego rozwiązania jest możliwość instalacji dodatków (pluginów) rozszerzających funkcjonalność sklepu dostępnych w tak zwanym centrum pobierania. Wiele z nich jest udostępnianych za darmo, a niektóre są dystrybuowane za niewielką opłatą. Oprogramowanie Prestashop jest o wiele mniej skomplikowane od platformy Magento. Prestashop jest dostępny na licencji OSL2. oscommerce, to chyba najstarsza platforma sklepowa online dostępna na licencji Open Source. W samym oprogramowaniu oscommerce ujawniono bardzo dużo luk bezpieczeństwa, dlatego też w przypadku tego oprogramowania szczególnie na bieżąco trzeba śledzić informacje o aktualizacjach. Niezależnie od tego posiada on bardzo dużo dodatków rozszerzających funkcjonalności, a w Internecie można znaleźć całkiem dużo informacji dotyczących rozszerzania czy modyfikowania platformy na forach społeczności internetowej. Dla odróżnienia od wcześniej wspominanych platform oscommerce dostępny jest w ramach licencji GPLv2. IAI-Shop, Shoper lub WellCommerce, to platformy oprogramowania sklepu internetowego dostarczana w formie usługi do wynajęcia (Software as a Service, w skrócie SaaS).
Uruchomienie takiego rozwiązania nie zajmuje dużo czasu, przeważnie około 3 4 tygodnie. W tym czasie otrzymamy platformę udostępnioną przez producenta, projekt graficzny, konfigurację najważniejszych parametrów oraz wprowadzenie produktów. W chwili obecnej platformy te są już na tyle rozbudowane, iż opisywanie poszczególnych funkcjonalności nie ma sensu gdyż różnią się szczegółami. Zwykle w pudełkowym rozwiązaniu zaimplementowane są mechanizmy integracji z najpopularniejszymi programami do prowadzenia firmy (np. Subiekt, WF-Mag czy CDN), integracje z najpopularniejszymi serwisami aukcyjnymi czy popularnymi porównywarkami cen, a także z systemami płatności elektronicznych i serwisami opinii. Open Source w sklepie Unizeto Wypowiada się: Daniel Korzeniowski, specjalista ds. Sprzedaży Internetowej w Unizeto Technologies S.A. Wybraliśmy oprogramowanie Open Source m.in. dlatego, że branża e-commerce charakteryzuje się dużą dynamiką rozwoju, by nadążyć za trendami zarówno w użyteczności (frontend sklepu) jak i technologii (panel administratora) trzeba mieć bezpośrednią i niezależną kontrolę nad systemem. Dzięki zastosowaniu Open Source możemy to osiągnąć dużo niższym kosztem niż poprzez budowanie własnego rozwiązania od podstaw. Niezależność od innych użytkowników (w odróżnieniu od np. modelu SaaS) pozwala na budowanie szybko i tanio bo właściciel systemu (którym sami sobie jesteśmy) nie musi dostosowywać go do uniwersalnych wymogów a jedynie do własnych oczekiwań. Dodatkową zaletą Open Source jest możliwość podpinania przeróżnych modułów, które nie są zaszyte bezpośrednio w kodzie i których autorem może być dowolny (inny niż utrzymujący platformę) podwykonawca. W naszym sklepie, CERTUM PCC obsługuje logowanie do systemu e-commerce i sprawuje pieczę nad danymi klientów co gwarantuje najwyższy stopień bezpieczeństwa. Takie rozwiązanie jest dedykowane i nie byłoby możliwości zaimplementowania go gdzie indziej lub implementacja byłaby nieporównywalnie droższa. Dlaczego PrestaShop, jako rozwiązanie Open Source? 1. Jest darmowy 2. Dokumentacja powszechnie dostępna 3. Aktywne forum producenta 4. Jest prosty w rozbudowie można pisać własne modułu i dołączać wtyczki 5. Ciągłe aktualizacje Zalety Open Source w e-commerce Niezależne aktualizacje Wielu dostawców między innymi np. PrestaShop, udostępnia nowe wersje swojego oprogramowania. Firma, która wykorzystuje ten silnik może zdecydować czy chce wykorzystać aktualizację przygotowaną przez dostawce czy nie. Nie jest w żaden sposób uzależniona od dostawcy i ten nie może jej narzucić swoich rozwiązań. Dzięki temu możemy sami rozwijać swoją platformę albo korzystać z udostępnianych aktualizacji. Czyli dostajemy silnik i możemy budować oprogramowanie szyte na miarę. Nieograniczony rozwój W innych rozwiązaniach np. w modelu SaaS mamy zapewnione, że wszystkie aktualizacje będą przygotowane za nas i dla nas. Ale tak na prawdę przygotowywane są dla wszystkich. Gdy używamy oprogramowania Open Source sami możemy obrać kierunek i rozwijać narzędzia, które są nam potrzebne. Co więcej, rozwijanie konkretnych narzędzi może przełożyć się na konkretną sprzedaż, zatem czemu mielibyśmy dzielić się z innymi swoimi rozwiązaniami? Podwykonawca Jeżeli nie dysponujemy siłą roboczą w postaci programistów, administratorów czy grafików możemy wybrać sobie podwykonawcę na zewnątrz (outsourcing), który będzie wykonywał pracę na nasze zlecenie i to niższym kosztem. Jeżeli w którymś momencie podwykonawca obniży jakość usługi bądź będzie niezdolny do napisania
jakiejś modyfikacji, zawsze możemy wybrać dowolnego, innego podwykonawcę, których na rynku krajowym i zagranicznym jest bardzo dużo. Integracje Dzięki elastyczności rozwiązań takich jak PrestaShop oraz autonomicznemu rozwojowi możemy zintegrować się z dowolną platformą w dowolnej chwili. Sami decydujemy kiedy ma zostać wdrożona integracja oraz w jakim kształcie. Dzięki technologii możemy wyprzedzić konkurencję, czego niestety w modelu np. SaaS zrobić nie możemy, bo wszyscy dostają taką samą technologię. Niski koszt wdrożenia systemu na miarę Systemy Open Source mają tą zaletę, że są gotowe do użytku praktycznie po instalacji i tylko od nas zależy jak bardzo potrzebujemy je zmodyfikować. Nie musimy natomiast martwić się o sam core systemu, który jest gotowy. To pozwala przeznaczyć 100% środków jakie posiadamy na rozwój już działającego systemu i dostosowanie go do naszych potrzeb zamiast na budowę nowego systemu od podstaw. Jak dokonać wyboru firmy wdrożeniowej? Michał Handl Wybór platformy to skomplikowany i czasochłonny proces, głównie ze względu na ilość dostępnych rozwiązań i ich specjalistyczne przeznaczenie. Platformy e-commerce, które można wybrać do wdrożenia wbrew temu iż posiadają wiele pokrywających się standardowych funkcjonalności, różnią się aspektami nie technologicznymi na które należy w szczególności zwrócić uwagę: Dostępny model posiadania platformy, czyli licencjonowanie: Platformy bezpłatne Platformy płatne SaaS Platformy płatne prowizja od obrotów/zysków Oprogramowanie komercyjne licencja jednorazowa Oprogramowanie komercyjne licencja odnawialna Open Source różne modele licencjonowania (opisane w rozdziale Jakie są zalety i zagrożenia związane z oprogramowaniem Open Source ) Brak licencji wdrożenie dedykowane Elastyczność wprowadzania zmian, czyli wsparcie w budowie wyróżników na tle konkurencji, szybkość reakcji na zmieniające się otoczenie biznesowe Koszty utrzymania powdrożeniowego, zwykle niedoszacowane. Utrzymanie platformy zwykle obejmuje, bieżące aktualizacje do najnowszych wersji o ile są możliwe, testowanie oraz naprawianie błędów, a także utrzymanie wydajnego działania. Koszty roczne z tym związane mogą sięgać kosztów wdrożenia (zakupu) nowego systemu Koszty modyfikacji i zmian w gotowym oprogramowaniu jest kilkukrotnie większy niż koszt zmian w specyfikacji funkcjonalnej, tworzonej na etapie przed wdrożeniem platformy Powszechność platformy (ilości wdrożeń). Im bardziej platforma jest powszechna tym więcej pojawia się do niej aktualizacji i rozszerzeń funkcjonalnych często produkowanych przez firmy trzecie. To zmniejsza koszty ewentualnej rozbudowy, ale także zmniejsza ilość wyróżników na tle konkurencji Raz wdrożoną platformę nie jest łatwo wymienić, wiąże się to z bardzo dużymi kosztami i zajmuje sporo czasu. Na etapie wyboru firmy wdrożeniowej koniecznie trzeba rozważyć: Prezentację rozwiązania, czyli wybór technologii wiodącej dla wdrażanego systemu, zarówno programistycznej, a także bazy danych, sposobu i częstotliwości pojawiania się aktualizacji,
Szczegółowe informacje, czyli porównanie aspektów funkcjonalnych aplikacji, z naciskiem na elementy krytyczne, Informacje o dostawcy i referencje, czyli sprawdzenie oferenta w już zrealizowanych projektach, Zespół projektowy, czyli informacje o specjalistach którzy mieliby realizować projekt wdrożenia. Udział w wyborze i analizie różnych rozwiązań platform, które potencjalnie mogą być wdrożone dobrze jest realizować w kilkuosobowym zespole specjalistów. W którym każdy z uczestników jest specjalistą z innej z innej dziedziny biznesowej. Analiza, weryfikacja, wizyta referencyjna w firmach, które korzystają z proponowanych przez dostawcę rozwiązań, to dobre praktyki w zakresie wyboru platformy do wdrożenia. Przygotowanie specjalnego zapytania do każdej z firm oferujących platformy w którym znajduje się nawet kilkaset pytań, za pomocą których można zbudować algorytm pozwalający zbadać wartość każdej z platform to także dobry pomysł. Z drugiej strony trzeba uważać aby nie stać się ofiarą zbyt dokładnej analizy, gdyż wiele platform może być do siebie bardzo zbliżonych funkcjonalnościami technologicznymi. Wtedy należy zwrócić uwagę na inne aspekty które będą pomocne w zbudowaniu przewagi konkurencyjnej na rynku e-commerce. Podchodząc do wyboru platformy trzeba określić ściśle wszystkie kryteria wyboru, w tym funkcjonalności które będą podlegały analizie i ocenie. Następnie określić ich wagi w punktowych rzutujących na całość oceny. Tylko dzięki temu można uzyskać dokładny obraz i relatywnie wiarygodne wyniki, ściśle dostosowane do zdefiniowanych potrzeb i wymagań. W innym wypadku analiza pokaże jedynie kto jest bardziej znany na rynku być może dzięki dobremu marketingowi, kto ma najlepiej oceniane oprogramowanie przez użytkowników, lub kto sprzedaje największą ilość pudełek z programem bo ma niskie ceny. Dla większości systemów informatycznych istnieje kilka elementów wspólnych oferty o które zawsze warto pytać dostawcę. Zanim zostanie wybrany, należy go dobrze zweryfikować. Poniżej znajduje się lista zagadnień które oferent powinien szczegółowo przedstawić. Prezentacja rozwiązania Prezentacja rozwiązania to ważny element każdej oferty. W zakresie tego zagadnienia powinno znaleźć się streszczenie proponowanego rozwiązania, w zwięzłych słowach opis całości, który pozwoli od razu zorientować się w najważniejszych kwestiach które chce przedstawić potencjalny dostawca. Powinny zostać ogólnie opisane założenia systemu, koncepcja ujęcia całości architektury platformy, opis używanych modułów (komponentów) oraz sposoby realizacji kluczowych procesów biznesowych zachodzących w zakresie proponowanej platformy. Dla e-commerce były by to procesy przedsprzedażowe, sprzedażowe, logistyczne, obsługi zgłoszeń, zarządzania danymi klientów, zarządzania produktem, zarządzania ofertą. Następnie przy prezentacji rozwiązania warto zapytać o: Politykę w odniesieniu do uaktualniania produktu, czyli w jaki sposób będą dostarczane aktualizacje systemu, czy dostawca będzie je wgrywał samodzielnie, czy będzie o nich informował, w jakiej częstotliwości będą pojawiały się aktualizacje. Techniki i metody wykorzystywane do wprowadzania zmian oraz rozszerzeń oferowanego systemu Sposób dzielenia się wiedzą z odbiorcą, w zakresie wykorzystania funkcjonalności systemu, rozwiązywania problemów, najlepszych praktyk w dziedzinie oferowanej aplikacji oraz planów rozwoju systemu Szczegółowe informacje To główny i najważniejszy element analizy oferty przy wdrażaniu oprogramowania. W zakresie informacji szczegółowych powinna zostać przygotowana wcześniej wspomniana lista pytań o funkcjonalności i możliwości wdrażanego systemu. Oferty opisane w formie otwartej ciężko jest porównać, pod kątem uwzględnienia czy jeden system posiada pożądaną funkcję, a czy inny porównywany także. Nie wiele osób będzie w stanie
spamiętać wszystkie informacje, szczególnie że często jest to nowość dla osób, które mają wybrać produkt do wdrożenia. Informacje o dostawcy i referencje Kolejne dane które powinny zostać zgromadzone to informacje o dostawcy. Ogólny opis firmy oferenta i jego działalności. W przypadku wdrożeń dużych systemów można zapytać oferenta o oceny wydane przez niezależne firmy badawcze w kategorii proponowanego rozwiązania. Jeśli dostawca posiada certyfikaty jakości, też powinien o tym poinformować jakie, kto i kiedy je wydał. Najbardziej kluczową informacją która zostanie pozyskana będzie referencyjna lista klientów, u których miało miejsce wdrożenie oferowanego produktu. Powinno zostać także wskazane przynajmniej dwóch klientów do których można udać się na wizytę referencyjną, aby zasięgnąć informacji od obiektywnego obserwatora. Zespół projektowy Informacje te nie są wymagane w małych projektach, jednak w większych mogą mieć kluczowe znaczenie dla osiągnięcia sukcesu. Dlatego też warto już w ramach oferty składanej przed dostawcę poprosić o wskazanie zespołu projektowego, który miałby uczestniczyć w naszym wdrożeniu wraz ze szczegółowymi informacjami na temat jego członków. Przedstawienie osób w formie podobnej do informacji zawartych w CV, wykształcenie, najważniejsze wdrożenia oraz osiągnięcia, nie tyle pozwoli zebrać suche informacje, ale także zapoznać się z zespołem dostawcy do kogo można w jakich sprawach się zgłaszać, a także kto za co jest odpowiedzialny. Dzięki temu będzie można oszacować czy wspomniany zespół projektowy będzie w stanie dźwignąć wdrożenie czy spotkali się z podobnymi problemami oraz czy mają doświadczenia na przykład w podobnej branży. Druga sprawa to zapewnienie, iż zespół projektowy który przedstawia w ofercie jest wiążący i nie zmieni się nagle na początku projektu, lub w jego trakcie. Dla praktyków, jak dokładnie prześwietlić dostawcę Wszystko co zostało opisane w tym rozdziale pozwoli stworzyć dobre zapytanie ofertowe do dostawców, ale to nie wszystko co należy zrobić. Zanim rozpocznie się proces prześwietlania dostawców, trzeba wysłać do nich krótką informację (zapytanie), na temat projektu czy oprogramowania jakim jesteśmy zainteresowani. W pierwszym zapytaniu powinny się znaleźć tylko ogólne informacje czym jesteśmy zainteresowani i w jakiej dziedzinie ma działać wspomniane oprogramowanie. Jeśli firmy nie znają się, nie komunikowały się wcześniej, można także przekazać kilka informacji podstawowych o naszym przedsiębiorstwie. Zapytanie wstępne należy przesłać do minimum trzech dostawców oprogramowania. W zależności od tego ile jest czasu na wdrożenie, oraz jak dobrze znany jest potencjalny rynek produktów które mogą być odpowiednie dla naszego wdrożenia, najlepszym sposobem będzie wybranie po 2 dostawców z każdej interesującej nas platformy do wdrożenia. Jednak nie wolno przesadzać, maksymalnie 12 oferentów na etapie wstępnego zapytania. Następnie, gdy już zebrana zostanie grupa oferentów, należy zaaranżować spotkanie z każdą firmą osobno, aby zapoznać się z zespołem oraz pozyskać informacje na temat firmy wdrożeniowej. Najprawdopodobniej wszystkie te informacje będą dostępne także do przeczytania w formie papierowej oferty, jednak warto zawsze spotkać się z żywymi ludźmi, zadać dodatkowe pytania, sprawdzić ich wiedzę i kompetencje podczas rozmowy. Po spotkaniu każdemu z oferentów, lub tylko już wybranym, w zależności od preferencji przekazujemy zapytanie ofertowe szczegółowe. Czyli to w którym zebrane będą już wszystkie informacje o których można było przeczytać w tym rozdziale. Dalszy proces analizy to porównanie zebranych ofert i wyłonienie małej grupy dostawców, maksymalnie trzech, którzy przechodzą do tak zwanej finałowej rozgrywki. Tutaj sprawa jest prosta, przeważnie decydują kompetencje zespołu, jakość przeprowadzonej prezentacji oraz cena wdrożenia. Ewentualnie także dodatkowe korzystne warunki po podpisaniu umowy, np. serwis powdrożeniowy.
Dobrym rozwiązaniem przed podjęciem finalnej decyzji jest także zaproszenie ostatnich wybranych kandydatów na dodatkowe spotkanie, ewentualnie zorganizowanie telekonferencji celem wyjaśnienia, bądź uzgodnienia szczegółów czy niejasności wykrytych w złożonej ofercie. Dodatkowe pytania i kwestie otwarte, zawsze się pojawiają. Które aspekty platformy są kluczowe do łatwego rozwoju i utrzymania? Piotr Karwatka Wybór platformy sklepowej to jedna z tych decyzji, z których w przyszłości trudno będzie się wycofać. Wdrożenie technologii zazwyczaj jest długotrwałe i drogie. Zwłaszcza gdy wiąże się z dostosowaniem jej do specyficznych potrzeb biznesowych. Jeszcze droższa może być późniejsza zmiana. Jeśli będziemy działać na średnią lub dużą skalę kluczowym zagadnieniem wyboru powinno być pytanie o łatwość rozwoju i utrzymania oprogramowania. Trzeba zdać sobie sprawę, że gotowe platformy, w których nie będziemy zmieniać nic oprócz wyglądu, nie wystarczą w tym przypadku. Częste problemy z rozwojem oprogramowania podnoszone przez działy IT to m.in.: licencja, która nie umożliwia wprowadzania zmian, zbyt duże koszty licencji developerskiej krótko mówiąc to zabójca możliwości jakichkolwiek zmian bez wiązania się z producentem, zagmatwany kod wprowadzanie zmian jest bardzo czasochłonne i programiści wręcz boją się dokonywać zmian brak dokumentacji zmiany trzeba dokonywać metodą prób i błędów co może doprowadzić do wymiernych strat w sprzedaży, brak wsparcia producenta lub autorów oprogramowania co w momencie występowania błędów pozostawia programistów samych sobie. Nie tak rzadkie są przypadki migracji i przepisywania od nowa oprogramowania nawet dużych sklepów. Często drastycznych zmian można uniknąć, zwracając zawczasu uwagę na kluczowe aspekty oprogramowania, z którym się wiążemy. To trochę jak z małżeństwem. Trzeba się dobrze poznać. Jeśli się tego nie zrobi, późniejsza konieczność zmian może być okupiona dużymi stratami. Zanim zanurzymy się w aspektach technicznych przejdziemy po krótce przez wyznaczniki organizacyjne związane z wyborem platformy. Przede wszystkim licencja Oprogramowanie sklepowe dostępne jest w najróżniejszych modelach licencjonowania. Praktycznie nie możliwe są zmiany jeśli nasze oprogramowanie jest dostępne w modelu subskrypcyjnym (SaaS Software as a Service). Jeśli oprogramowanie działa na naszych serwerach należy koniecznie dokładnie przestudiować jego licencje. Jeśli mamy do czynienia z licencjami wolnymi (open-source), takimi jak OSL,GPL, BSD, LGPL to zasadniczo mamy pełną dowolność wprowadzania zmian. Korzystając z dodatków do oprogramowania (plug-iny) koniecznie trzeba sprawdzić czy będziemy mogli je modyfikować i z czym będzie się to wiązało. Często bowiem plug-iny wydawane są na innych licencjach niż oprogramowanie bazowe. Obecnie jest dostępnych bardzo wiele licencji wolnych. Różnią się szczegółami w tym modelami dystrybuowania wprowadzonych zmian. Ten model jest bardzo istotny. Tworząc unikatowe rozwiązania dedykowane nie będziemy chcieli udostępniać kodów źródłowych użytkownikom a zwłaszcza innym developerom. W przypadku dużej części licencji wolnych obowiązuje znaczące w tym przypadku założenie. Otóż jeśli nasze zmiany wprowadzane są w ramach modułów (dodatków które nie modyfikują głównych kodów bazowych platformy) to możemy nadać im dowolną licencję, która niekoniecznie musi być licencją wolną. W przypadku
wprowadzania zmian do oprogramowania bazowego licencje decydują różnorako i warto skonsultować swój wybór z prawnikiem, aby uniknąć niepoprawnej interpretacji. W przypadku oprogramowania komercyjnego platform dedykowanych różnego rodzaju sytuacja jest bardziej skomplikowana. Koniecznie dowiedzmy się, czy producent przewiduje możliwość wprowadzania zmian na własną rękę. Czy w ogóle otrzymamy dostęp do kodu źródłowego? Najczęściej możliwości zmian są gwarantowane dopiero po wykupieniu specjalnej licencji developerskiej. Cena takiej licencji może być bardzo wysoka. Koniecznie w ramach umowy wdrożeniowej zapewnijmy sobie prawa autorskie do wszystkich wykonywanych w jej ramach modyfikacji i utworów. Przykładowo bez posiadania praw do modyfikacji plików PSD z grafiką sklepu, wprowadzanie zmian może być równie trudne co w przypadku braku dostępu do kodów źródłowych. Portfolio wdrożeń Dobrym wyznacznikiem tego, czy wybrana platforma jest łatwa do rozwoju i utrzymania jest sprawdzenie portfolia wdrożeń. Warto rozejrzeć się czy obecni użytkownicy dokonują modyfikacji, może warto zapytać ich w razie wątpliwości czy nie wiązało się to z problemami? Sama liczba klientów najczęściej też wskazuje na to czy oprogramowanie jest w stanie się obronić czy nie. Jest to szczególnie ważne w przypadku oprogramowania open-source. Po liczbie nowo powstających sklepów i użytkowników można ocenić czy oprogramowanie jest nadal aktywnie rozwijane. Wsparcie producenta Nawet jeśli korzystamy z platformy open-source często możemy kupić płatne wsparcie producenta. Sam fakt świadczenia przez autorów takiej usługi świadczy o profesjonalnym podejściu do tematu. W sytuacjach kryzysowych możliwość skorzystania z takiej usługi może pomóc nam błyskawicznie naprawić błędy lub uzyskać wsparcie dla programistów. Jeśli oprogramowanie które wybieramy nie posiada wsparcia producenta w żadnej formie (płatnej lub nie) powinna zapalić się nam lampka ostrzegawcza. Jaką mamy pewność, że firma której oprogramowaniu zaufaliśmy za miesiąc nie zakończy działalności? Wtedy zostalibyśmy skazani na samodzielny rozwój i naprawę wszystkich błędów jakie pojawią się w oprogramowaniu. W przypadku platform o zamkniętym kodzie źródłowym (gdzie nabywamy licencję rozwojową) wsparcie jest bardzo ważne. W tym przypadku w razie problemów nie będziemy mogli zwrócić się do społeczności skupionej chociażby na forach o pomoc. Istotnym problemem w tym przypadku jest też stabilność działania producenta. Dokumentacja Dokumentacja jest podstawową pomocą dla naszych programistów podczas rozwoju aplikacji. Podstawowa dokumentacja opisująca architekturę kodu źródłowego, sposób dodawania modułów oraz wykonywania podstawowych czynności developerskich to minimum. Po ilości dokumentacji najłatwiej ocenić które platformy są łatwe do rozwoju i utrzymania a które nie. Tworzenie dokumentacji jest procesem dość żmudnym oraz czasochłonnym. Dlatego w projektach open-source często przyjmuje się założenie, że kod źródłowy dokumentuje się sam. Dokumentacja jest przez autorów ignorowana. Takie podejście do pewnego stopnia jest uzasadnione przynajmniej nie mamy do czynienia z opisami które są nieaktualne lub wprowadzające w błąd. W przypadku dużych systemów niestety bez dokumentacji ciężko się obyć. Jej brak może powodować, że wprowadzenie nowego developera do zespołu będzie zajmowało niewspółmiernie dużo czasu. W przypadku oprogramowania dedykowanego koniecznie dowiedzmy się przed podpisaniem umowy jaka dokumentacja jest zawarta w ramach licencji developerskiej. Architektura Przechodząc do aspektów technicznych kluczowe znaczenie ma architektura oprogramowania.
Warto aby nasi programiści przeanalizowali kod źródłowy przed wyborem konkretnej platformy. Nawet jeśli jest zamknięta, to dobrze świadczy o producencie jeśli nie boi się pokazać nam fragmentów kodu. Oprogramowanie koniecznie powinno pozwalać na tworzenie wtyczek (pluginów) oraz działać w modelu zdarzeniowym (events) co pozwoli dodawać i zmieniać działanie funkcji bez modyfikacji kodu bazowego. Trudno sobie wyobrazić platformę bez obsługi mechanizmu szablonów za pomocą których, bez zmiany kodu można modyfikować wygląd. To w tej warstwie zmiany, przynajmniej początkowo, będą najczęstsze. Warto zwrócić uwagę czy kod źródłowy jest napisany z użyciem wzorców projektowych. One nie tylko zwiększają elastyczność. Ich podstawową funkcją jest ułatwienie komunikacji między developerami fakt, użycia danego wzorca jest dużym skrótem na drodze do zrozumienia sposobu działania kodu. Aplikacja koniecznie powinna być podzielona na warstwy minimum Widok, Kontroler, Model (podział popularnie nazywany wzorcem MVC). Dzięki temu podziałowi wprowadzanie zmian np. co do sposobu komunikacji z bazą danych teoretycznie nie wpłynie na działanie kodu odpowiedzialnego za logikę formularzy. Taką aplikację zdecydowanie łatwiej jest tez przetestować. Kod źródłowy powinien być udokumentowany w podstawowym zakresie (przeznaczenie klas, przeznaczenie metod koniecznie typy i znaczenie argumentów metod zwłaszcza w przypadku języków skryptowych bez ścisłej typizacji). Oprócz tego zwróćmy uwagę czy kod jest napisany w oparciu o jednolite standardy kodowania. Czy zmienne są nazywane wg. tego samego schematu, czy nie ma fragmentów kodu w innym języku (np. nazwy polskie i angielskie). To czynniki tylko z pozoru błahe i ważne stylistycznie. Bez zachowania porządku w kodzie aplikacja znacznie szybciej zacznie zdążać ku zwiększeniu swojej entropii (chaosu) a tym samym ograniczeniu możliwości rozbudowy. Jeśli będziemy chcieli stworzyć wersje językowe oprogramowania koniecznie zwróćmy uwagę czy kod źródłowy został napisany z wykorzystaniem narzędzi typu gettext lub innych branżowych standardów internacjonalizacji. Sprawa dotyczy też obsługi różnych kultur (czyli waluty, formatowanie liczb, miesiące i daty). Jeśli chodzi o aspekty na styku funkcjonalności i kodu źródłowego koniecznie sprawdźmy czy aplikacja posiada WebAPI (np. SOAP) czy też API w ogóle. Dzięki enkapsuowaniu w API bardziej skomplikowanych algorytmów, developerzy zyskają możliwość automatyzacji zadań, bez wprowadzania zmian w kodzie bazowym systemu. Import/export danych poprzez API umożliwi też łatwe integracje z systemami w przyszłości. Zasadniczo poprzez API powinna być dostępna całość funkcji backend. W zmianach stricte programistycznych duży udział będą miały operacje bazo-danowe. Warto upewnić się czy struktura bazy danych jest zgodna z rynkowymi standardami. Czy baza danych jest znormalizowana oraz czy są używane powszechnie znane wzorce projektowe? Czy baza danych wspiera model EAV (Entity-Attribute-Value) umożliwiający dodawanie pól i atrybutów do wszystkich modeli danych? Czy jest stosowane jednolite nazewnictwo oraz czy autorzy pomyśleli o odpowiednim wykorzystaniu indeksów oraz mechanizmów wyszukiwania. Testy automatyczne Wprowadzanie zmian do kodu którego nie jesteśmy autorami zazwyczaj wiąże się ze sporym stresem. Jeśli dochodzi do tego skąpa dokumentacja i np. brak wsparcia autorów stres jest jeszcze większy. Jeśli oprogramowanie z którego będziemy korzystać posiada automatyczne testy (jednostkowe lub np. behawioralne) to jest to ogromny plus. W tym przypadku nawet jeśli kod źródłowy jest trochę zagmatwany to jego refaktoryzacja (zmiana struktury bez zmiany sposobu działania) będzie o tyle łatwa, że dzięki testom błyskawicznie uda się wykryć ewentualne błędy w działaniu. Niestety przy bardzo dużych systemach a takimi są systemy e-commerce pełne pokrycie testami jednostkowymi należy do rzadkości. Oprogramowanie open-source takie jak Prestashop czy Magento posiada testy w bardzo ograniczonym zakresie. Z tego powodu aspekt testów automatycznych nie może być kluczowym czynnikiem wyboru oprogramowania, ale powinniśmy każdorazowo docenić ich występowanie. Świadczy to o dużej odpowiedzialności autorów. Historia dotychczasowych zmian W sytuacji w której przejmujemy rozwój platformy po innej firmie czyli po pewnym okresie maintenance kluczowe jest przekazanie wszystkich informacji o systemie i zmianach które w tym czasie zaszły.
Jeśli był wykorzystywany aktywnie system kontroli wersji oraz system ticketowy (np. Redmine) to sprawa jest prosta. Prawdopodobnie oba te systemy łącznie zawierają kluczowe informacje o zmianach jakie były wprowadzane do systemu. Jeśli wykonawca nie korzystał jednak z dobrych praktyk rozwoju oprogramowania przekazanie może być trudne. To trochę tak jakby w ramach prac budowlanych nie zaznaczać zmian przebiegu kabli elektrycznych w ścianach. Można wiercić, ale ryzyko zawsze jest. Może się okazać, że wiele algorytmów działa zupełnie inaczej niż wynikałoby to z pierwotnej dokumentacji. W tym przypadku koniecznie musimy poprosić o aktualizację projektu i dokumentacji. Możliwości integracji Wypowiada się Daniel Korzeniowski, Unizeto Technologies SA. Wybierając platformę sprzedaży internetowej koniecznie trzeba zwrócić uwagę na możliwości jej integracji z systemami które są już wdrożone w przedsiębiorstwie. Przesyłanie faktur do systemu FK czy aktualizacja stanów magazynowych to tylko niektóre przykłady takich integracji. Możliwości platform różnią się pod tym względem w zależności od modelu licencyjnego i modelu rozwoju przyjętego przez producenta. Open Source Możliwości integracyjne rozwiązań Open Source są bardzo duże. Ponieważ całe oprogramowanie jest zainstalowane na naszym serwerze i mamy dostęp do kodu źródłowego możemy go modyfikować zgodnie z zapotrzebowaniem. Ograniczenia będą zatem wynikały z ograniczenia samej technologii wykorzystanej do stworzenia danego rozwiązania Open Source i możliwości komunikacyjnych tego rozwiązania. Jeżeli nasze oprogramowanie e-commerce zostało stworzone przy użyciu języka PHP to jestem pewien, że nie będzie problemów ze zintegrowaniem się z dowolnym webserwisem w sieci. Zatem integracja z płatnościami internetowymi, portalem aukcyjnym czy API kuriera będzie możliwe. Problem pojawia się gdy coś przestaje działać. Jeżeli sami to napisaliśmy to sami odpowiadamy za jakość kodu. Nikt nie pomoże nam z błędami i nieoptymalnie napisanym kodem chyba, że zatrudnimy do tego stosownego specjalistę. Zatem ryzyko przy integracji wzrasta. Kolejną wadą integracji w Open Source jest brak aktualizacji naszych wtyczek. O wszystko musimy zadbać sami i każdy z elementów dopracować samodzielnie. Musimy się również liczyć z tym, że jeżeli dostawca rozwiązania dalej je rozwija i publikuje nowe wersje a my mocno wejdziemy w strukturę naszego systemu modyfikując go pod kątem własnych potrzeb integracyjnych aktualizacja do kolejnej, nowej, lepszej wersji może okazać się niesłychanie droga lub nawet niemożliwa. Warto się zatem zastanowić czy nie powinniśmy poszukać potrzebnych rozwiązań u dostawcy danego Open Sourcea. Może się okazać, że przygotowana przez niego wtyczka rozwiąże nasze problemy z integracją zachowując przy tym możliwość późniejszych aktualizacji. Produkty komercyjne Sytuacja jest bardzo podobna do Open Source. Jeżeli napiszemy swoje wtyczki integrujące nas z różnymi dostawcami usług, może się okazać, że dostawca rozwiązania przestanie świadczyć nam support albo kolejne wersje jego oprogramowania nie będą działały z naszymi wtyczkami lub sama aktualizacja również stanie się niemożliwa. Sytuacja jest jednak nieco lepsza niż w przypadku Open Source gdyż zazwyczaj poprzez sugestie i prośby użytkowników możemy wpływać na nowe wersje oprogramowania wydawanego przez dostawcę, a zatem może się okazać, że w kolejnej wersji dostawca dostarczył wtyczkę, która akurat nam się przyda. Kwestią do oceny pozostaje czas w jakim taka integracja może pojawić się w oprogramowaniu. SaaS Jest to najlepszy model prowadzenia sklepu internetowego pod względem aktualizacji, kompatybilności kolejnych wersji i jakości dostarczanych integracji. Dostawca rozwiązania pilnuje wszystkiego za nas a dodatkowo gwarantuje, że wszystkim użytkownikom integracja z danym systemem zadziała bez względu na to z
jakich funkcji systemu korzystali wcześniej. Niestety tutaj pojawia się największa wada takiego rozwiązania zdanie użytkowników. Bardzo często rozwój samej platformy jest oderwany od bezpośrednich potrzeb pojedynczych klientów. Zatem o ile wdrożenie integracji, która jest dla nas korzystna nie okaże się korzystne dla większej liczby użytkowników to dostawca rozwiązania e-commerce może po prostu zignorować naszą prośbę a tym samym zablokować integrację. To niestety może się przełożyć negatywnie na nasz biznes. Jest jednak światełko w tunelu, może się zdarzyć, że dostawca rozwiązania e-commerce uzna naszą propozycję mimo wszystko za rozsądną (mimo, że nie widzi potrzeby wdrożenia podyktowanej potrzebami innych klientów) i zaproponować odpłatne zintegrowanie z wybranym przez nas system.