Słów kilka o tak zwanych darmowych aplikacjach.

Od kilku lat słyszę o aplikacjach, które są „za darmo”. Jak powiedział Milton Friedman nie ma darmowych obiadów.

Koszt aplikacji/systemu składa się z trzech głównych kosztów:
–  pozyskania licencji / praw własności
–  wdrożenia i zasilenia danymi
–  utrzymania i upgrade (sprzętu i oprogramowania)

Analizując koszt wdrożenia oprogramowania należy przyjrzeć się zawsze tym trzem głównym kosztom. Choć przyznam, że niektórzy potrafią zaskoczyć (doliczanie bajońskiej marży do sprzętu, dodatkowe asysty do baz danych za kwotę przekraczającą wielokrotnie zamówienie, szkolenia użytkowników droższe niż cena licencji).

Przypadek A – noga w drzwi czyli darmowy obiad i niekończący się rachunek za deser.
Niewielki koszt licencji, niewielki koszt wdrożenia w tym koszt przygotowania danych i migracji. Koszt utrzymania i upgrade – w pierwszym roku nic.

Potem zazwyczaj koszt importu/eksportu dużej porcji danych jest znaczny lub okazuje się, że żeby zrobić jakąś bardziej zaawansowaną operację należy zlecić ją producentowi. System zainstalowany, dane przeładowane, pieniądze wydane – nikt nie będzie teraz przechodził tego wszystkiego od nowa. Wydaje się więc co roku spore kwoty za kilka zmian w programie i użycie przez producenta bardziej zaawansowanych operacji, które działają na modułach, które ma  tylko producent, a których my nie mamy.

Przypadek B – zapłać kilka razy za ten sam posiłek
Koszt licencji – znaczny
koszt wdrożenia – nic plus wsparcie techniczne przez rok gratis.

Nikt nie odbiera telefonu, na pytania bardziej zaawansowane odpowiada się po tygodniu lub wcale. Koszt utrzymania i upgrade – w pierwszym roku nic – potem też nic. Firma w międzyczasie zmieniła wersje, wprowadziła ponoć rewolucyjne zmiany i nie utrzymuje wsparcia dla poprzedniej wersji. Możesz kupić upgrade w cenie nowej licencji i powtórzyć przypadek B od początku, lub zadowolić się tym co masz.

Przypadek C – darmowy posiłek z krótkim terminem ważności
koszt programu – dość duża suma – prawa własności do nieograniczonej liczby licencji.
koszt wdrożenia – umiarkowany
koszt utrzymania – umiarkowany

Dostarczona aplikacja posiada ograniczoną żywotność. Kto by patrzył, że ostatnia aktualizacja programu jest sprzed 3 lat i zawiera moduły nieobsługiwane przez nowsze systemy operacyjne. W dobrej wierze kupiona po roku wymaga zmian nie przewidzianych przez tego kto płaci. Producent na pewno zaproponuje Ci upgrade do aktualnej wersji za odpowiednią cenę.

Kolejny wariant – zmiana struktury danych, które program wczytuje w nowej wersji. Po zmianie tej struktury program jest do wyrzucenia, lub wymagany jest drogo płatny upgrade.

Przypadek D – zjadłeś to pozmywaj
Koszt licencji/praw – niewielki
koszt wdrożenia – średni
koszt utrzymania – nie ma.

Firma zobowiązuje się do zrobienia konkretnego systemu. Nikt nie myśli o upgrade’ach – system ma działać. Masz swoich ludzi, którzy mogą zrobić upgrade nie ma większego problemu. Nie masz – myśl o tym na przyszłość. Ci, którzy Ci to wdrożyli już znikli.

Kilka rad ja nie uprzykrzyć sobie życia na przyszłość:
Po pierwsze upewnić się że aplikacja działa i spełnia nasze wymagania. Upewniamy się zawsze na systemie produkcyjnym u kogoś kto ją wdrożył i używa. Nigdy nie wierzymy w prezentacje producenta na systemie testowym lub maszynie wirtualnej.

Po drugie zasięgamy opinii użytkowników – oni najszybciej poinformują nas gdzie jest haczyk i z czym jest problem. Użytkownicy których znamy dłużej i lepiej niż oni znają producenta są bardziej wiarygodni.

Po trzecie upewniamy się co kupujemy – rodzaj licencji czy własność i w jakim zakresie – jeśli są jakieś zewnętrzne moduły lub programy niezbędne do działania – zapewniamy sobie ich listę i sprawdzamy możliwość i cenę aktualizacji oraz jej koszt teraz i jeśli się da w przyszłości.

Po czwarte sprawdzamy czy system chodzi na naszych minimalnych i maksymalnych parametrach. Jeśli minimum to system operacyjny XP 32bit a maximum to 64 bit windows 8 to sprawdzamy jak sobie radzi w każdym systemie jaki posiadamy. Jeśli sobie nie radzi, może okazać się że koszt systemu to również koszt licencji i sprzętu, który będzie trzeba wymienić – jeśli równamy w górę nie jest najgorzej, gorzej gdy działa tylko na 32 bit win XP.

Jeśli kupujemy aplikacje internetową – sprawdzamy we wszystkich głównych przeglądarkach jej działanie. Jeśli jest to aplikacja pudełkowa – kupujemy aktualną wersję – upgrade działa zazwyczaj max na 2 wersje wzwyż – potem płacimy pełną cenę nowej licencji.

Po piąte – ten który sprzedaje nie jest naszym przyjacielem. To jest biznes. Wielu się już o tym przekonało i jeszcze wielu przekona. Ważne jest tylko to co na papierze. Jeśli czegoś w umowie nie rozumiesz, nie podpisujesz aż nie będzie to w umowie wyjaśnione.

Po szóste – operujmy standardami dla danych, usług, testowania. Stosujmy metodologie zarządzania i wytwarzania oprogramowania. Po to są. Lokalne modyfikacje standardów to nie standardy. Pliki wymiany producenta bez dokumentacji to potencjalny problem w przyszłości. Brak testowania przy wytwarzaniu oprogramowania to testowanie i frustracja użytkowników. Testy systemu to nie tylko testy funkcjonalne – więcej tutaj.

Po siódme – zadbajmy o bezpieczeństwo danych – nawet w przypadku dużych organizacji w Polsce jest to problem. Samo zabezpieczenie serwera to nie wszystko – warto się przyjrzeć jeszcze aplikacjom klienckim i połączeniom do nich. Sprawdźmy czy producent nie zostawił sobie furtek i nie zbiera informacji np o naszych użytkownikach bez naszej wiedzy.

Po ósme czytamy licencje, a nie tylko umowy – szczególnie zapisy w licencjach dużych zagranicznych firm bywają kuriozalne. Są dosłownie tłumaczone i nie dostosowane do polskiego rynku. Licencja w języku innym niż polski w Polsce nie działa. Dokumentacja po angielsku najlepiej sprawdza się w Stanach, w Polsce musi być po polsku.

Ostatnie – zaopatrzmy się w dokumentacje systemu – i ustawicznie zmuszajmy dostawcę do aktualizacji jej przy zmianach. Warto też stworzyć listę zmian do której dostęp mają użytkownicy którzy z aplikacji korzystają – żeby byli świadomi zmian w modułach i analizowali ich wpływ na bieżącą pracę.