Zdjęcie główne artykułu pochodzi z unsplash.com
W dobie szybko postępującego rozwoju technologicznego nie wystarczy stworzyć stronę internetową (lub większy system IT), trzeba się zmierzyć z koniecznością jej utrzymania, stałej aktualizacji oprogramowania, optymalizacji czy dbania o aktualność integracji systemów. W tym kontekście stały nadzór nad projektem IT, bez względu na stopień jego skomplikowania, to rzecz, o której nie tylko warto, ale wręcz trzeba pamiętać.
Zaprojektowanie i wdrożenie projektu IT generuje znaczne koszty i nierzadko potrafi trwać nawet kilka lat. W przypadku prostych stron www skala naturalnie jest mniejsza, ale wystarczy bardziej rozbudowana funkcjonalność, aby projekt trwał dłużej niż kilka miesięcy. Z drugiej strony, jeśli mówimy o rozbudowanych systemach np. klasy ERP, które skonstruowane są modułowo (tworzące je elementy pokrywają poszczególne obszary działalności biznesu, np. logistyka, finanse, produkcja, sprzedaż itd.), taki projekt może rozciągnąć się na lata. W obu przypadkach po udanej fazie implementacji rozwiązania przechodzimy do fazy utrzymania, która polega na modyfikowaniu oprogramowania po jego dostarczeniu, korygowaniu błędów, celem poprawienia jego wydajności lub innych właściwości oraz przede wszystkim utrzymania stabilności rozwiązania.
Niezależnie od tego, czy za utrzymanie odpowiada zespół wewnętrzny, czy usługa jest delegowana na zewnątrz organizacji (outsourcing IT), do zapewnienia stabilnej usługi potrzebne są szerokie kompetencje. Często w skład zespołu utrzymania wchodzą zarówno programiści, architekci, jak i administratorzy IT. Rolą zespołu utrzymania projektu jest m.in.
- Ochrona danych i wzmacnianie zabezpieczeń,
- Zarządzanie kopiami zapasowymi (backup),
- Stała aktualizacja oprogramowania,
- Analiza logów systemowych,
- Usuwanie błędów,
- Dostosowywanie usługi lub produktu do zmian,
- Ograniczanie ryzyka.
Wyraźnie widać, że utrzymanie systemu IT wymaga szerokich umiejętności analitycznych, specjalistycznej wiedzy z zakresu IT oraz znajomości budowy systemów. Tylko z pozoru może wydawać się, że systemy informatyczne działają autonomicznie. Niestety wciąż potrzebna jest obecność człowieka, który dba o bezpieczeństwo i wydajność usług.
Jak wygląda proces utrzymania?
Zanim system wejdzie w fazę utrzymania, należy określić parametry, które usługa utrzymania ma zapewnić. Dobrą praktyką jest przygotowanie tzw. SLA (Service Level Agreement), czyli dokumentu dotyczącego gwarantowanego poziomu świadczenia usług. W SLA zapisywane są takie ustalenia jak: czas reakcji na zgłoszony problem, czas rozwiązania problemu, gwarancja dostępności usługi na wskazanym poziomie, stałe monitorowanie systemu oraz wprowadzanie niezbędnych aktualizacji oprogramowania. Na tym etapie ustalany jest również dokładny proces świadczenia usługi utrzymania oraz system, w którym zgłaszane będą błędy.
W tym miejscu warto podkreślić, że komunikowanie awarii czy błędów przez telefon lub e-mail odchodzi do lamusa. Obecnie, problemy tego rodzaju najczęściej zgłaszane są poprzez rozbudowane systemy wsparcia. W ramach takiego systemu użytkownik wysyła tzw. „ticket”, który zostaje automatycznie przydzielony do odpowiedniej osoby w zespole IT. Następnie, na zasadach określonych w SLA, konsultant zajmuje się danym zgłoszeniem. Rozwiązania tego typu pozwalają na znaczną optymalizację czasu pracy. W zintegrowanym systemie wsparcia obsługa zgłoszeń jest szybka i transparentna. W niektórych przypadkach klient ma również wgląd w obecny stan swojego zgłoszenia, czyli może sprawdzić, na jakim etapie jest obecnie wysłany „ticket”, czy został już przydzielony odpowiedniej osobie, czy został wstrzymany, odrzucony lub zrealizowany.
Rodzaje zmian w ramach utrzymania projektu
Opisane powyżej zgłoszenia to zazwyczaj prośba o zmianę elementu funkcjonującego systemu. Mogą to być czynności najprostsze jak np. poprawa literówki na stronie internetowej lub też bardziej wymagające, jak optymalizacja kodu źródłowego i integracja z nowym systemem CRM. W każdym wypadku jednak będzie to pewnego rodzaju zmiana w oprogramowaniu, którą możemy przydzielić do jednej z 4 kategorii:
- Korekta,
- Adaptacja,
- Doskonalenie,
- Prewencja.
Ponieważ oprogramowanie wciąż jest rozwijane, nie da się uniknąć wprowadzania do niego zmian. Motywacja i skala wdrażanych zmian może być różna, a stać za nią może chęć aktualizacji oprogramowania, potrzeba wysokiej dostępności, wzmocnienie zabezpieczeń czy optymalizacja usług. Dlatego warto zrozumieć, na czym polegają różnice pomiędzy poszczególnymi rodzajami zmian. Pamiętajmy, utrzymanie to nie tylko naprawianie błędów. Według jednego z badań, aż 80% zmian wprowadzanych w oprogramowanie nie jest związana z błędami w jego działaniu!
Zmiana poprzez korektę
Najczęściej z usługą utrzymania kojarzone są błędy tzw. “bugi” i odnoszą się do usterek w oprogramowaniu. Bugi mogą dotyczyć zarówno elementów logiki, wyglądu, jak i kodu. Tego typu usterki raportowane są najczęściej przez użytkowników systemu, którzy są w stanie przetestować rozwiązanie lepiej niż nawet najbardziej zdeterminowany zespół testerów. Warto tutaj wspomnieć, że czasami zdarza się sytuacja, w której zgłaszany „bug” to tak naprawdę celowa i wcześniej zaplanowana funkcjonalność. Oznacza to, że konkretnie zaprojektowana funkcjonalność jest na tyle nieintuicyjna lub niezrozumiała, że grupa użytkowników odbiera taki sposób jej działania za błąd. Dzięki zgłoszeniom błędów tego rodzaju system może być udoskonalany pod względem użyteczności.
Zmiana w formie adaptacji
Potrzeba zmiany adaptacyjnej może być wymuszona przez środowisko, w jakim znajduje się nasze oprogramowanie lub inną zmianę w niezależnej części systemu, czyli na przykład: w systemie operacyjnym, oprogramowaniu zewnętrznym, urządzeniach czy nawet zmianach w organizacji biznesu i polityki firmy. W takiej sytuacji nasze oprogramowanie musi zostać zaadaptowane do nowej sytuacji. Przykładowo: dostawca systemu płatności wprowadza nową wersję swojej aplikacji, która nie jest kompatybilna z naszą wersją oprogramowania i wymagana jest integracja.
Doskonalenie usługi
Zmiana tego typu występuje wtedy, gdy wzrastają wymagania względem obecnego oprogramowania. Wraz z jego rozwojem użytkownicy znajdują coraz nowsze sposoby na jego użytkowanie oraz sugerują ulepszenia, które mogą usprawnić konkretne funkcjonalności. Optymalizacja to również zwiększenie szybkości działania systemu, minimalizowanie używanych zasobów oraz usuwanie funkcjonalności zbędnych lub tych, które nie realizują celów oprogramowania w należyty sposób. Zaskakująco, aż połowa zgłoszeń w ramach usług utrzymania dotyczy właśnie tych ostatnich.
Prewencja
Prewencja w świecie IT odnosi się do zapobiegania niechcianym wydarzeniom i zmniejszaniu niepotrzebnego ryzyka. Zmiany prewencyjne nie ograniczają się tylko do podnoszenia ochrony oprogramowania, ale również dbania o jego stałą aktualizację, także w ramach prowadzonej dokumentacji. Celami takich zmian mogą być optymalizacja kodu i wprowadzanie usprawnień w ochronie dostępu do danych. Dzięki temu biznes ogranicza ryzyko, które w dłuższej perspektywie może stanowić większy problem i prowadzić na przykład do niestabilności systemu czy znacznych obciążeń finansowych.
Podsumowując, warto podkreślić, iż sposób działania i reagowania zespołu utrzymania, może w dużej mierze zredukować czas opóźnień w funkcjonowaniu przedsiębiorstwa i obniżyć poziom pojawiających się problemów technicznych do minimum, a to z kolei znacząco wpływa na wizerunek firmy i zadowolenie klientów. Zapewnienie utrzymania systemu na poziomie dopasowanym do potrzeb użytkowników powinno być jednym z priorytetów rozważanych już podczas planowania nowej aplikacji.
–
Piotr Całka
CEO & Managing Partner w INSPIRE LABS
Wizjoner i przedsiębiorca, pasjonat nowych technologii i nieszablonowych rozwiązań. Absolwent czterech wyższych uczelni warszawskich: SGGW, oraz studiów podyplomowych na SGH, Politechnice Warszawskiej i Uniwersytecie Warszawskim. Posiada prestiżowy certyfikat Advanced Digital Accreditation wydany przez Greenwich School of Management London. W Inspire Labs odpowiedzialny za rozwój oraz wdrażanie nowych strategii biznesowych.