Czy potrzebna mi umowa serwisowa skoro mam gwarancję?

Postaram się odpowiedzieć na tytułowe pytanie językiem biznesowym – nie jestem prawnikiem i nie chcę zagłębiać się w aspekty prawa cywilnego w kontekście gwarancji i rękojmi. Skupię się na opisaniu tego, jak do tej sprawy podchodzą Software House’y, takie jak my. 

Czym jest gwarancja?

Gwarancja to dobrowolne, nieodpłatne zapewnienie, że wytworzone oprogramowanie posiada wysoką jakość. Sprowadza się to do tego, że w okresie obowiązywania gwarancji dostawca zobowiązuje się usuwać wszelkie wady oprogramowania.

Czym gwarancja nie jest?

Gwarancja nie jest usługą utrzymaniową. W ramach gwarancji nie otrzymasz stałego monitoringu Twojej aplikacji, backupów, obsługi zgłoszeń od Twoich użytkowników. Nie otrzymasz świętego spokoju, aby skupić się na celach biznesowych.

Software House’y udzielają gwarancji najczęściej w projektach rozliczanych na zasadach Fixed Price i jej koszt jest już wliczony w cenę projektu. Gwarancja w takim przypadku jest udzielana na okres od 3 do 6 miesięcy i ma na celu “wygrzanie się” projektu, czyli wyłapanie wszelkich wad i błędów, które nie zostały wykryte na wcześniejszych etapach testowania. W tym okresie Klient zgłasza błędy i są one sukcesywnie naprawiane. Nie obowiązuje tu żadne SLA i nie jest prowadzony stały monitoring systemu.

Korzystanie tylko z gwarancji ma sens wtedy, gdy oprogramowanie jest zamawiane na zewnątrz, ale docelowym utrzymaniem aplikacji ma zajmować się wewnętrzny servicedesk. W takim przypadku to struktury wewnętrzne zajmują się wszystkimi aspektami utrzymania aplikacji, obsługą zgłoszeń, planami backupowymi. Dostawca jest odpowiedzialny tylko za realizację faktycznych błędów, które zostaną wyłapane i odsiane przez pierwszą linię wsparcia po stronie Klienta.

Co daje umowa serwisowa?

Umowa serwisowa zwana też SLA (ang. Service Level Agreement) to umowa, w której dostawca zobowiązuje się do przejęcia odpowiedzialności za etap powdrożeniowy cyklu życia aplikacji, którą wytworzył lub tylko wdrożył. W ramach tej umowy nie są prowadzone żadne prace rozwojowe nad aplikacją i nie temu ona służy.

Jest to kompleksowe rozwiązanie, które zdejmuje z klienta kilka zasadniczych problemów, z których nie każdy zdaje sobie sprawę, a o które trzeba bezwzględnie zadbać jeśli wystawia się usługę do użytkownika końcowego. Elementy, które wchodzą najczęściej w skład umowy serwisowej to między innymi:

  • Dedykowany punkt kontaktu, do którego użytkownicy aplikacji mogą zgłaszać wszelkie pytania i uwagi, który w kompetentny sposób rozwiąże problem, z którym zmaga się użytkownik.
  • Wdrożenie odpowiedniej polityki backupów, aby zapewnić, że dane zgromadzone w aplikacji będą bezpieczne i nawet w przypadku jakiejś większej awarii, system będzie można szybko przywrócić do działania.
  • Monitorowanie infrastruktury i zapewnienie, aby działała w sposób nieprzerwany – nic nie wkurza bardziej użytkowników niż to, że oprogramowanie nie działa i nikt nawet tego nie zauważył.
  • Monitorowanie obciążenia i stabilności aplikacji w celu wykrycia potencjalnych wąskich gardeł i problemów – wraz z przyrastaniem ilości użytkowników oraz ilości danych mogą pojawić się np. problemy wydajnościowe, które wcześniej nie występowały.
  • Bezpieczeństwo – dbanie o to, aby systemy były aktualne w celu monitorowania potencjalnych dziur w systemach operacyjnych, serwerach www itp.
  • Zarządzanie problemami – usługi utrzymaniowe są najczęściej prowadzone w oparciu o odpowiednie systemy ticketowe, które przechowują dane o poszczególnych incydentach i łatwo jest dzięki temu po pewnym czasie identyfikować tzw. problemy czyli powtarzające się incydenty lub zgłoszenia użytkowników odnośnie np. braku intuicyjności danej funkcjonalności – dzięki temu łatwiej jest dostosować aplikację do faktycznych potrzeb użytkownika.

Wszystkie te zadania i jeszcze wiele innych należy wykonywać w sposób ciągły. Taka usługa narzuca też coś, czego próżno szukać w czystej gwarancji, mianowicie konkretne godziny pracy dostosowane do wymagań biznesowych użytkowników aplikacji, a także konkretne reżimy czasowe, w których podejmowane są działania odnośnie zgłoszonych problemów, a także czasy ich rozwiązania.

Bez względu na to, czy utrzymanie aplikacji wykonasz w ramach posiadanego zespołu IT, czy też wynajmiesz do tego zewnętrzną firmę, jest to koszt, którego nie da się pominąć i należy go uwzględnić już na początkowym etapie planowania budżetu projektu.

Własne IT czy firma zewnętrzna?

Najlepiej pasująca odpowiedź na to pytanie brzmi: to zależy 😉 I to faktycznie zależy od bardzo wielu czynników między innymi:

  • Do kogo skierowana jest aplikacja – innego poziomu wsparcia wymaga aplikacja skierowana do naszych pracowników, a innego ta, która skierowana jest do naszych klientów
  • W jakich godzinach użytkownicy korzystają z aplikacji – jeżeli jest to aplikacja dla pracowników i korzystają z niej tylko w godzinach pracy, które zgrywają się z godzinami pracy działu IT, to być może nie ma potrzeby angażować nikogo z zewnątrz. Jeżeli natomiast aplikacja jest skierowana na kilka rynków w różnych strefach czasowych, to wymaga wsparcia 24/7.
  • Ilu jest tych użytkowników i jak kluczowa jest dla nich oferowana przez nas aplikacja. Jeżeli posiadamy aplikację, która obsługuje kilka milionów użytkowników i zależy od niej np. zysk naszego klienta, bo jesteśmy brokerem giełdowym, to zdecydowanie powinniśmy zadbać, o jak najwyższą jakość wsparcia, bo pierwsze potknięcie i utrata wiarygodności może być naszym ostatnim potknięciem w tym biznesie.
  • Czy mamy odpowiednie zaplecze merytoryczne – jeżeli nasza firma nie specjalizuje się w rozwiązaniach IT, to tworzenie rozbudowanych działów IT jest najczęściej ekonomicznie nieuzasadnione. Lepiej skupić się na swoim core biznesie niż budować kompetencje, w których trudno będzie dorównać firmom, które się w tym specjalizują.
  • Czy mamy odpowiednią ilość kadry IT – należy pamiętać o zapewnieniu usługi w trakcie urlopów, zwolnień chorobowych itp. Być może zapewnienie wsparcia w godzinach np. 7-23 będzie wymagało zatrudnienia kilku dodatkowych osób.

Wydawać by się mogło, że najlepszym klientem na tego typu usługę są firmy, które nie mają swoich działów IT i ich budowanie i pozyskiwanie odpowiednich kompetencji jest nieopłacalne, ale paradoksalnie jest inaczej – z naszego doświadczenia wynika, że to właśnie duże firmy, które mają bardzo duże działy IT wolą kupować tego typu usługi u firm, które tworzyły dane oprogramowanie. Wzięcie kolejnej aplikacji w opiekę wiąże się najczęściej z rozbudową działu, zatrudnieniem kolejnych osób, skomplikowaniem struktury zarządzania, co prowadzi do jeszcze większego podniesienia kosztów. Łatwiej i taniej kupić te usługi na zewnątrz organizacji.

Koszty takiej umowy serwisowej to najczęściej od kilku do kilkudziesięciu tysięcy złotych miesięcznie, w zależności od złożoności rozwiązania, ilości użytkowników, godzin wsparcia i innych potencjalnych ryzyk związanym z oprogramowaniem.

Każde z podejść ma swoje wady i żadne nie jest najlepszym rozwiązaniem. Wybór pomiędzy zleceniem utrzymania aplikacji własnemu IT, a firmie zewnętrznej powinien wynikać wprost z kalkulacji ekonomicznej popartej prawdopodobnymi zagrożeniami, które mogą wystąpić podczas całego cyklu życia oprogramowania. Najważniejsze jest jednak, aby jedną z dróg wybrać, a nie pozostawić użytkowników samych sobie.