Jak ocenić jakość

Nasze życie jest w pełni zależne od otaczających nas systemów, a ich jakość ma bezpośredni wpływ na nasze ''dobre samopoczucie''. Dlatego tak bardzo zależy nam na niej, szczególnie w przypadku systemów IT. Coraz częściej przekonujemy się bowiem, że ich wadliwość może powodować duże problemy - na przykład zniknięcie środków z naszego rachunku bankowego, błędne obciążenie fakturą za rozmowy telefoniczne czy źle dokonaną rezerwację na samolot.

Nasze życie jest w pełni zależne od otaczających nas systemów, a ich jakość ma bezpośredni wpływ na nasze 'dobre samopoczucie'. Dlatego tak bardzo zależy nam na niej, szczególnie w przypadku systemów IT. Coraz częściej przekonujemy się bowiem, że ich wadliwość może powodować duże problemy - na przykład zniknięcie środków z naszego rachunku bankowego, błędne obciążenie fakturą za rozmowy telefoniczne czy źle dokonaną rezerwację na samolot.

Definicja jakości systemów informatycznych jest bardzo trudna do sprecyzowania, gdyż - jak stwierdził w swojej niedawno opublikowanej książce Software Quality Profile Watts S. Humphrey - "bez liczb, to tylko gadanina". Istnieje kilka powodów takiej sytuacji. Po pierwsze, nie ma obowiązujących generalnie zasad mierzenia jakości systemów informatycznych. Po drugie, nawet gdy wiemy, jakich wskaźników używać, ich wartości i składniki częściowe są trudne do uzyskania. Po trzecie, gdy już uzyskamy te liczby, trudno je interpretować, porównywać i wnioskować na ich podstawie. Po czwarte - i chyba najważniejsze - ludzie niechętnie mierzą jakość swojej pracy, a systemy informatyczne i ich jakość w dużym stopniu zależą od pracy poszczególnych ludzi.

Elementy wpływające na jakość

Pomimo tych trudności definicyjnych wiadomo że jakość systemów informatycznych jest uzależniona od czterech płaszczyzn mających bezpośredni wpływ na jej poziom. Należy przede wszystkim uwzględnić czynnik ludzki, jako ważny element tego systemu. To dzięki ludziom możemy mówić o udanych bądź nieudanych projektach lub systemach IT, których jakość jest dobra lub nie. Nawet doskonałe rozwiązanie, źle wdrożone lub źle wykorzystywane może generować sytuacje, które będą wpływały na niską ocenę jakości systemu informatycznego (duża liczba przestojów w pracy, niespójność danych, niedostosowanie do potrzeb użytkowników końcowych). Drugim ważnym elementem jest oprogramowanie, to, w jaki sposób zostało zaprojektowane i zbudowane, a także na ile jest elastyczne jeżeli chodzi o środowiska, w których może działać. Pod uwagę należy wziąć również sposób, w jaki odbywa się rozwój systemu i na ile użytkownicy korzystający z niego mają możliwość wpływania na ostateczny kształt rozwiązania. Niezwykle istotne są także możliwe sposoby administracji, zarządzania zmianami, projektami prowadzonymi wewnątrz systemu oraz narzędzia umożliwiające i wspomagające testowanie.

Trzecią częścią jest szeroko rozumiany sprzęt, w tym - jako istotny podzbiór - infrastruktura sieciowa i telekomunikacyjna. W wielu przypadkach to właśnie sprzęt i infrastruktura powodują, że cały system cechuje niska jakość (rozumiana jako brak stabilności, niska wydajność, problemy z dostępem). Ostatnim, czwartym elementem jest metodologia i zbiór procedur wykorzystywanych podczas wdrożenia - w tym także testowania - oraz późniejszej eksploatacji i dalszego rozwoju systemu informatycznego. Pamiętam taką sytuację, w której dobrze wdrożone rozwiązanie było nisko oceniane przez użytkowników końcowych w wyniku niedopracowanych procedur pracy i użytkowania oraz braku wsparcia po starcie systemu informatycznego. Pomimo tego, że zarówno ludzie, jak i oprogramowanie oraz sprzęt były na najwyższym poziomie, cały system oceniono nisko z powodu braku procedur postępowania.

Trudno jest dyskutować nad przewagą jakiegokolwiek z tych elementów. Z doświadczenia wiem, jak ważnym elementem jest czynnik ludzki.

Najczęściej ma on w projekcie decydujące znaczenie. Jednak pozostałe elementy również odgrywają istotną rolę. W praktyce problemy występujące w jakimkolwiek z tych obszarów mogą doprowadzić do nieproporcjonalnego spadku jakości systemu informatycznego, a w konsekwencji nawet do błędnego działania.

Podobnie jak stół stojący na czterech nogach.

Bez jednej z nich ma szansę stać i nawet sprawiać wrażenie stabilnego. Po jakimś jednak czasie stanie się coś, co wytrąci go z tego stanu, i wówczas jego upadek jest pewny.

Wskaźniki

Naukowcy i badacze od kilkunastu lat usilnie próbują znaleźć metody i sposoby pomiaru tak trudno uchwytnego zjawiska, jakim jest jakość systemów informatycznych. Powstały nawet zwarte opracowania dotyczące tego tematu (np. książka Metrics and Models in Software Quality Engineering Stephena H. Kana, wydana 2 lata temu). Wydaje się jednak, że brakuje całościowego podejścia, które ostatecznie rozwiązałoby kwestię pomiaru i porównywania jakości systemów informatycznych. Niemniej, dopracowaliśmy się już kilku wskaźników, które mogą pomóc w ocenie jakości.

Jednym ze znanych podejść do tego tematu jest próba zmierzenia lub oceny systemów informatycznych pod względem jakości produktu samego w sobie (product) i zadowolenia klientów (customer satisfaction). W obrębie tego pierwszego obszaru możemy wskazać następujące kategorie wskaźników (zgodnie z podejściem zaproponowanym przez wspomnianego Stephena H. Kana w Software Quality Metrics Overview):

  • rozmiar systemu (np. długość kodu) i współczynnik błędów do rozmiaru kodu;
  • możliwości funkcjonalne (np. liczba modułów, liczba operacji oraz ich wariantowość);
  • wydajność (np. liczba przetworzonych transakcji w jednostce czasu) i ergonomiczność (np. szybkość docierania do właściwych funkcji w systemie oraz rejestracji operacji i zdarzeń);
  • współczynnik występowania błędów w czasie MTTF (Mean Time To Failure - średni czas pomiędzy awariami) czy w kodzie programu (błędy na tysiąc dostarczonych linii kodu źródłowego KSSI - Kilo Shipped Source Instructions).
W obrębie drugiego obszaru - jakim jest badanie satysfakcji klientów - najczęściej używaną metodą zbierania informacji są różnego rodzaju kwestionariusze zawierające kategorie oceniane przez klientów. Należą do nich takie metody, jak CUPRIMDSO (Capability, Usability, Performance, Reliability, Installability, Maintainability, Documentation/information, Service, Overall), gdzie są badane m.in. funkcjonalność, łatwość obsługi, wydajność i stabilność, czy FURPS (Functionality, Usability, Reliability, Performance, Service). Tak zebrane dane mogą być następnie podstawą do obliczenia wskaźników ogólnych przedstawiających zadowolenie klientów - a więc i jakość - danego systemu informatycznego (np. NSI - Net Satisfaction Index).

Wszystkie te wskaźniki nie przekładają się jednak w łatwy i prosty sposób na konkretne porównania systemów informatycznych. Brak spójnego, jednolitego systemu oceniania. Można jedynie mówić o pewnych regułach w ramach wąskich obszarów.

Ile to kosztuje?

Często spotykam się z opinią, że za jakość trzeba płacić. Po części jest to prawda (szczególnie w momencie uruchomienia inwestycji), jednak po dłuższym okresie okazuje się, że dzięki wyższej jakości systemu informatycznego można oszczędzić, i to dużo. Jest to głównie związane z obniżaniem kosztów utrzymania (TCO).

System o wysokiej jakości nie będzie bowiem ograniczał możliwości integracji z nowymi rozwiązaniami i partnerami biznesowymi. W dobie gwałtownych zmian otoczenia i konieczności szybkiej reakcji na nowo pojawiające się okazje na rynku wyznacznikiem jakości systemu jest właśnie umiejętność adaptacji do zmian i integracji z otoczeniem. Systemy nieprzystosowane do łatwej, szybkiej i taniej integracji są skazane na "wyginięcie", tak jak firmy z nich korzystające. Kilkakrotnie byłem świadkiem sytuacji, w której systemy informatyczne dopasowane do bieżących potrzeb stawały się bezużyteczne w nowych warunkach. Koszt rozbudowy i integracji z inną aplikacją był tak duży, a zarazem ryzykowny, że przedsiębiorstwo decydowało się na zakup nowego rozwiązania. W takim przypadku koszty były ponoszone dwukrotnie. Raz na system, który w długim okresie nie sprostał wymaganiom, drugi raz na oprogramowanie o wyższej jakości.

System informatyczny, cechujący się wysoką jakością, nie jest wolny od błędów. Jest raczej rozwiązaniem, w którym wykrywanie błędów jest łatwe, a wykryte błędy są usuwane przez dostawcę rozwiązania szybko i z minimalnym udziałem użytkownika. Ponadto ewentualne szkody wynikłe z błędnego działania systemu są możliwe do określenia i łatwe do naprawienia.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200