Jakość w projektach IT (zarządzanie, zapewnianie, kontrola)


Jakość projektu IT – chociaż każdy na swój sposób czuje czym jest, to już dużo trudniej podać konkretną definicję oraz sposoby zarządzania, kontroli i mierzenia jej poziomu. Mam nadzieję, że ten artykuł pomoże usystematyzować tę wiedzę i rozwiać pewne wątpliwości.

Wstęp

Do napisania artykułu o zapewnieniu jakości w IT zainspirowała mnie lektura książki Karoliny Zmitrowicz „Jakość Projektów Informatycznych. Rozwój i testowanie oprogramowania”.

Jest to jedyna znana mi pozycja tego typu na polskim rynku. W opracowaniu tym znajdziesz opis podstawowych pojęć, szczegółowe opracowanie metod zarządzania oraz zapewnienia jakości a także dokładnie scharakteryzowane światowe standardy i normy zarządzania jakością. Autorka poświęca też cały rozdział na omówienie podstaw testowania oraz procesów doskonalenia jakości. Jak dla mnie, lista ta wyczerpuje w zupełności temat jakości w projektach.

W mojej opinii jest to książka, którą warto posiadać na swojej półce i zaglądać do niej kiedy tylko pojawi się taka potrzeba. Na pewno zakres informacji nie jest z gatunku tych, co można raz przeczytać i zapamiętać na zawsze. Dla zainteresowanych załączam jeszcze spis treści oraz fragment książki i już przechodzę do dalszej części.

Czym jest jakość w projekcie?

Zacznijmy od wyjaśnienia podstawowego pojęcia. Jakość, według ISO to: „stopień w jakim zbiór inherentnych właściwości spełnia wymagania„. Brzmi interesująco, prawda? Właściwości inherentne należy rozumieć jako te, które są nierozerwalnie związane z produktem, czyli są po prostu naturalne dla niego.

Przykładowo dla oprogramowania, cechami takimi będzie szybkość działania lub prawidłowe realizowanie konkretnej funkcjonalności, natomiast już opakowanie czy nośnik na którym oprogramowanie jest dostarczone, nie stanowi jego inherentnej cechy (chociaż jest w jakiś sposób powiązane).

Pewien problem może się pojawić przy zdefiniowaniu wymagań. Czasami po prostu ich nie znamy dokładnie, lub użytkownik nie jest w stanie ich precyzyjnie określić. W takiej sytuacji pomocne mogą być techniki pozyskiwania wymagań, ale to jest temat na zupełnie osobny artykuł. Najważniejszy wniosek jest taki, że określenie wymagań jest pierwszym krokiem do pracy nad jakością.

Jakość a zarządzanie projektem

W metodykach zarządzania projektem powszechnie pojawia się trójkąt zależności projektowych: zakres-czas-zasoby (budżet). Zmiana jednego z parametrów wpływa na dwa pozostałe.

Rozszerzeniem tego modelu jest diagram z parametrem „jakość” w środku. W tym przypadku analogicznie – zmiana każdego z wymiarów wpływa na końcową jakość (np. zmniejszenie budżetu spowoduje cięcie kosztów na zarządzanie czy kontrolę jakości, co w konsekwencji może prowadzić do większej ilości błędów i mniejszego poziomu spełnienia oczekiwań klienta).

Potocznie stosowaną odmianą „żelaznego trójkąta” (jak często jest nazywany) jest stwierdzenie: „DOBRZE – TANIO – SZYBKO, wybierz dowolne dwie z nich”.

Planowanie zarządzania jakością

Efektywne zarządzanie jakością wymaga dobrego zaplanowania. W procesie tym należy uwzględnić czynniki takie jak:

  • standardy w projekcie – czasami projekt ma narzucone pewne normy, które produkt musi spełniać. W innych przypadkach, może to wynikać z własnych planów podniesienia jakości. Przykładowo, realizując projekt z branży medycznej należy rozważyć wdrożenie standardu ISO 13485.
  • cele i role – należy zdefiniować jaki jest konkretny cel wprowadzania zarządzania jakością (na przykład podniesienie satysfakcji użytkowników o 20%), oraz określić role w projekcie, odpowiedzialne za realizację tych celów (korzystając na przykład z macierzy odpowiedzialności).
  • obiekty podlegające kontroli – nie zawsze wszystkie produkty dostarczane w ramach projektu podlegają tej samej kontroli jakości. Przykładowo częścią większego projektu informatycznego może być etap przygotowania PoCa przez dział badań i rozwoju. Taki fragment aplikacji powinien udowodnić możliwość technicznej realizacji rozwiązania i nie musi spełniać określonych norm.
  • czynności, narzędzia, procedury – warto już na początku projektu zastanowić się nad poszczególnymi czynnościami zapewnienia jakości, zastosowaniem narzędzi oraz wprowadzeniem procedur poprawiających jakość. Oczywiście nic nie stoi na przeszkodzie, aby w trakcie projektu modyfikować każdy z tych elementów, jeżeli zajdzie taka potrzeba.
  • metryki potwierdzające zgodność, ankiety – bardzo ważny element, często pomijany. Przed rozpoczęciem konkretnych działań warto zastanowić się, jak zmierzymy ich efektywność. Do tego celu możemy posłużyć się automatycznymi metrykami (np. z narzędzi do testów lub systemów zgłaszania błędów), lub subiektywną oceną jakości określaną przez użytkowników (w formie ankiety).

Zarządzanie jakością

Mając zaplanowane procesy zarządzania jakością, następnym krokiem jest wprowadzenie ich w życie. W tym celu konieczne jest przeprowadzenie różnego typu działań, takich jak:

  • gromadzenie i analiza danych – w projektach IT gromadzenie danych jest często zautomatyzowane. Możemy sprawdzać ilość błędów i ich priorytety, szybkość dostarczania nowych funkcjonalności, czas potrzebny na naukę obsługi oprogramowania czy poziom satysfakcji użytkowników. Dane te należy regularnie analizować i wyciągać wnioski z zaobserwowanych zmian wartości lub trendów.
  • weryfikacja i usprawnianie procesu – procesy należy nieustannie monitorować i wprowadzać niezbędne poprawki, przykładowo stosując Cykl Deminga (PDCA). W branży IT, słynącej z dużej zmienności jest to wręcz obowiązek, aby cyklicznie weryfikować stosowane narzędzia i procedury.
  • przeprowadzanie audytów – w przypadku projektów o znaczeniu krytycznym dla bezpieczeństwa czy zdrowia ludzkiego, konieczne jest spełnienie wielu norm jakościowych. Warto wtedy systematycznie przeprowadzać audyty zgodności ze standardami i na bieżąco korygować wykryte odstępstwa.
  • analiza i rozwiązywanie problemów – w trakcie każdego projektu IT pojawia się masa problemów wpływających na jakość produktu końcowego. Każdy taki przypadek należy analizować pod kątem źródła problemu i możliwych rozwiązań (np. stosując diagram Ishikawy). Ważne jest zapisywanie wniosków, tak aby w przyszłości uniknąć podobnych trudności.

Kontrola jakości

Jakość należy regularnie kontrolować, co w przypadku projektów IT nazywamy po prostu testowaniem oprogramowania. Do istotnych elementów tego procesu należy zaliczyć:

  • testowanie na różnych poziomach – testy należy przeprowadzać jak najwcześniej, od momentu wyprodukowania pierwszych linii kodu. W projektach IT rozróżniamy głównie testy jednostkowe, integracyjne, systemowe i akceptacyjne. Każdy z tych poziomów ma charakterystyczne cele, metody i narzędzia.
  • stosowanie różnego typu testów – wysoka jakość to nie tylko realizowanie założonych funkcjonalności. Co z tego, że system pozwala zapisać dane, skoro trwa to 10 minut? Ważne jest więc wykonywanie tzw. testów niefunkcjonalnych, czyli przykładowo sprawdzanie szybkości działania, pracy pod dużym obciążeniem, bezpieczeństwa, możliwości szybkiego odtworzenia po awarii itp.
  • prowadzenie metryk, dokumentacji z testów – metryki ułatwiają kontrolę procesu i pozwalają szybko reagować na powstałe odstępstwa. Dokumentacja z testów umożliwia podjęcie istotnych decyzji w projekcie, jak np. odpowiedź na pytanie czy możliwe jest wydanie konkretnej wersji produktu.
  • archiwizowanie istotnych informacji, narzędzi i danych – w trakcie procesu testowego powstaje zwykle wiele narzędzi, gromadzone są duże ilości danych, statystyk. Informacje te mogą być bardzo pomocne przy kolejnej iteracji lub w przypadku realizowania podobnego projektu.

Podsumowanie

Zdaję sobie sprawę, że artykuł ten jest tylko wstępem do rozważań na temat jakości w projektach IT. Jak wspominałem na początku, zainteresowanych odsyłam do wartościowej książki „Jakość Projektów Informatycznych. Rozwój i testowanie oprogramowania„. Pamiętaj jednak o kilku podstawowych zasadach:

  • jakość jest pojęciem względnym i w zależności od projektu, klienta i innych zmiennych, może znaczyć zupełnie coś innego.
  •  chcąc zapewnić wysoką jakość, należy wcześniej zaplanować i systematycznie wdrażać konkretne działania.
  • zapewnienie jakości jest dużo szerszym tematem niż testowanie i nie należy tych pojęć mylić.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *