Tradycja czy nowoczesność

Słyszałem ostatnio rozmowę dwóch studentów. Jeden z nich został właśnie mianowany odpowiedzialnym za jakość w pewnej małej firmie produkującej oprogramowanie. Konsultował się z kolegą, jak najlepiej zorganizować proces testowania. Z rozmowy wynikało, że tak naprawdę potrzebna jest dobrze zorganizowana analiza wymagań, która będzie podstawą do opracowania kolejnych produktów projektowych. Stanowiska kolegów były odmienne. Ich spory, argumenty i uzasadnienia przypominały roztrząsanie odwiecznego dylematu co było pierwsze: jajko czy kura. W istocie chodziło o odpowiedź na pytanie, gdzie rodzi się jakość systemu i na czym polega jej zapewnianie.

Słyszałem ostatnio rozmowę dwóch studentów. Jeden z nich został właśnie mianowany odpowiedzialnym za jakość w pewnej małej firmie produkującej oprogramowanie. Konsultował się z kolegą, jak najlepiej zorganizować proces testowania. Z rozmowy wynikało, że tak naprawdę potrzebna jest dobrze zorganizowana analiza wymagań, która będzie podstawą do opracowania kolejnych produktów projektowych. Stanowiska kolegów były odmienne. Ich spory, argumenty i uzasadnienia przypominały roztrząsanie odwiecznego dylematu co było pierwsze: jajko czy kura. W istocie chodziło o odpowiedź na pytanie, gdzie rodzi się jakość systemu i na czym polega jej zapewnianie.

Gdzie rodzi się jakość?

Każdy student zarządzania narysuje schemat systemu wytwórczego, podobny do przedstawionego na rys. 1. Produkt, a więc wyrób lub usługa, powstaje jako wynik procesów działających w podsystemie wytwarzania. Na podsystem ten oddziałuje wiele czynników (ludzie, procesy, technologia, narzędzia itp.), które w różnym stopniu wpływają na końcową postać produktu. Procesy wytwórcze są sterowane przez wydzielony logicznie podsystem zarządzania, który jako medium wymiany danych z/do podsystemu wytwarzania wykorzystuje specjalny podsystem informacyjny. Parametry wejściowe procesu, takie jak wymagania, ograniczenia i materiały źródłowe, także mają wpływ na jakość produktu. Są przecież tworzywem, z którego produkt powstaje.

Nawet w tak prostym modelu zarządzania systemem wytwórczym można znaleźć wiele uwarunkowań i czynników wpływających na jakość. Mogą być nimi ludzie, narzędzia, podsystem informacyjny lub zarządzania, niewłaściwe wymagania czy mało wydajne zasoby. Wszystkie one w pewnym stopniu decydują o tym, czy produkt będzie spełniał wymagania klienta i czy sprawi mu satysfakcję.

W rzeczywistości sytuacja będzie bardziej skomplikowana. Jakość produktu końcowego będzie wypadkową jakości różnorodnych, złożonych i zmiennych procesów - sumą jakości: wymagań, projektowania, wykonania, zarządzania, użytkowania itd.

Gdzie więc rodzi się jakość? Wszędzie. Każdy element systemu wytwórczego i każda relacja między jego elementami ma wpływ na jakość końcową. Ale to jeszcze nie wszystko. Każdy element i relacja jest tworzona i pielęgnowana przez ludzi. To człowiek konstruuje system wytwórczy i nim zarządza. Na pierwszym miejscu listy czynników wpływających na jakość będzie więc zawsze człowiek, jego wiedza, umiejętności, doświadczenie i motywacja, a ta ostatnia wydaje się najważniejsza. Mądre i przemyślane stworzenie właściwych warunków produkcyjnych, w których produkt osiągnie najwyższą jakość, nie wystarczą. Potrzeba konsekwencji i uporu - silnej woli przeciwstawienia się trudnościom.

Przytoczony na początku spór między studentami jest charakterystyczny dla większości przedsięwzięć informatycznych. Wyraża konflikt tradycyjnego i nowoczesnego podejścia do zagadnień zapewnienia jakości oprogramowania. Tradycjonaliści ustalają wymagania, trochę pomyślą, a potem siadają do pisania kodu i testują jak wyszło. Wszystkie bezproduktywne działania, a więc wszelkie przejawy zbyt długiego myślenia zamiast programowania, nikomu nie potrzebne specyfikacje, odbiory produktów pośrednich itd. są oczywiście ujęte w harmonogramie, ale nigdy nie realizowane. W następnym odcinku cyklu zastanowimy się, na ile realia projektu zmuszają nas do przyjęcia takiej postawy, a na ile jest to nasz wybór bądź przejaw niskiej kultury projektowania w naszej firmie.

Toteż nie dziwi fakt, że często jedyną próbą zapewnienia należytej jakości produktu pozostaje intensywne testowanie, którego już "nie można się wyprzeć", bo co jak co, ale nie przetestować produktu to już kompromitacja w oczach klienta. Problem w tym, że celem procesu testowania jest znalezienie błędów, a nie zapewnienie jakości. Co poszukiwacz błędów może w programie zapewnić? Czy wymaganą funkcjonalność systemu? Od tego jest analiza wymagań, projektowanie i kodowanie. Czy może efektywność przetwarzania i wykorzystania zasobów? Testy pozwalają ją zmierzyć, ale to dopiero odpowiednio dobrany algorytm i jego realizacja prowadzą do osiągnięcia wymaganych parametrów. Może więc chociaż niezawodność? Także nie. Testowanie pozwala ocenić poziom niezawodności pośrednio przez oszacowanie liczby błędów i rozkład ich ilości w czasie. Niezawodny program wszystkie znalezione błędy ma już poprawione. Testerzy nie tworzą niezawodnego produktu. Czynią go programiści.

Dotychczas analizowaliśmy wpływ, jaki na jakość wywierają czynniki wewnętrzne, znajdujące się w systemie wytwórczym. Jest także wiele innych składników, które działają w szeroko rozumianym otoczeniu produkcyjnym i o ile na te pierwsze w pewnym zakresie mamy wpływ, to na te drugie - zewnętrzne, już w mniejszym stopniu. Czynniki zewnętrzne określają na przykład tzw. wymagany poziom jakości, czyli kryteria, które decydują o stopniu dostosowania produktu do oczekiwań społecznych, przyjętych norm i standardów. Określają także uwarunkowania realizacyjne, które ograniczają bądź zmuszają producenta czy dostawcę do podjęcia określonych działań. Ich cechą wspólną jest to, że są zmienne i nieprzewidywalne. Bardzo trudno odnosić się do nich na bieżąco, zwykle oddziałują na produkt i procesy wytwórcze bezpośrednio lub pośrednio w najmniej oczekiwanych momentach. Takie zjawiska, jak tradycja, zwyczaje, moda, poziom kultury, powodują, że produkt, którego jakość sprawdziła się w jednym kraju, niekoniecznie musi się potwierdzić w innym. Nie każdy produkt niesie tak uniwersalne wartości, jak Windows czy BigMac. Zabezpieczenie właściwej jakości nie tylko technicznej, ale takiej, która na danym rynku się sprzeda, nie jest sprawą trywialną i wymaga rozbudowanych badań i zabiegów marketingowych oraz analizy ryzyka.

Pierwszym krokiem do zrozumienia istoty procesów kształtujących jakość produktów jest zrozumienie niejednoznaczności pojęcia jakości. Drugim jest przestawienie sposobu myślenia o jakości z produktowego na procesowy. Jakość powstaje nie w wyniku badania gotowego produktu - testów, lecz wbudowania jej w produkt na każdym etapie procesu wytwórczego. W sytuacji idealnej testowanie w ogóle przestaje być potrzebne - gwarantem jakości jest jakość systemu wytwórczego. Trzeci krok prowadzi do uświadomienia faktu, że i tak wszystko, co robimy, możemy stracić w jednej chwili wskutek zmiany sytuacji rynkowej. Ważne, byśmy byli do tego przygotowani, podjęli działania zmierzające do uniknięcia takich sytuacji, a w razie niepowodzenia nie utracili wszystkiego, w szczególności fundamentu, na którym będziemy mogli odbudować swoją pozycję na rynku. Ten fundament to ludzie, sprawdzony system jakości i projakościowa kultura organizacyjna.

Kontrolować, zapewniać czy może lepiej zarządzać?

Miałem kiedyś okazję obserwować z bliska przebieg egzaminu z zarządzania jakością na studiach podyplomowych w jednej z warszawskich wyższych szkół ekonomicznych. Specyfiką studiów podyplomowych jest to, że uczestniczą w nich zwykle ludzie dojrzali, którzy mogą pochwalić się wieloletnią praktyką zawodową. Wśród egzaminowanych studentów był doświadczony inżynier, pełniący od lat funkcję pełnomocnika ds. jakości w polskiej firmie, zajmującej się usługami geodezyjnymi. Podchodził do egzaminu jako eksternista. Udało mu się przekonać prowadzącego zajęcia, że jego doświadczenie zawodowe wystarczy "za godziny" wykładów. Profesor zadał mu tylko jedno pytanie: "Co to jest jakość?". Doświadczony praktyk, zapewniający na co dzień jakość pomiarów geodezyjnych, nie potrafił odpowiedzieć na to podstawowe dla swojej profesji pytanie!

Przyglądając się od lat systemom zapewnienia jakości w różnych firmach produkujących oprogramowanie zauważyłem, że pracownicy zespołów odpowiedzialnych za jakość produktów często wpadają w pułapkę podchodzenia do swoich obowiązków intuicyjnie. Posługują się intuicyjną definicją jakości, to naturalne jak wiemy, ale swoje działania i wiedzę o zarządzaniu jakością także czerpią z intuicji. Intuicja zaś żywi się obrazami z otaczającego świata. Otaczający świat pełen jest systemów wytwórczych i usługowych, w których w różny sposób zapewnia się jakość. Niestety, większość z nich to systemy produkcji ciągłej, gdzie testowanie podejmuje się w celu niedopuszczenia do przedostania się do klienta produktów zawierających wady. W najgorszym przypadku wystarczy zamienić produkt na nowy i po problemie. Jeśli chodzi o testy oprogramowania, zawsze mamy do czynienia z prototypem. Dopiero po ich serii prototyp staje się produktem, którego nie można tak łatwo wymienić na nowy. Wada musi być poprawiona w procesie analizy, projektowania, wdrażania, nie zaś wymiany pliku EXE na nowy, nie popsuty. Stąd pewnie bierze się większość nieporozumień związanych z działaniami w zakresie zarządzania jakością. Kiedyś zapytałem moich kursantów, jakie znają metody zapewnienia jakości. Jednogłośnie opowiedzieli się za testowaniem. Niewielu informatyków zauważa tę różnicę, że jakość należy zapewniać na etapie analizy wymagań, projektowania, programowania, bo potem można ją już tylko zmierzyć.

Musimy pamiętać, że powszechnie uznawana terminologia jakości nie jest tylko sprawą takiej czy innej nazwy. Jest odzwierciedleniem ewolucji ludzkich zapatrywań na istotę zarządzania jakością. Elementy działań związanych z zapewnieniem jakości nikną w mrokach dziejów, gdy różne grupy społeczne w zorganizowany sposób zmierzały do wytworzenia przemyślanych produktów. Gdy płatnerz zaczynał praktykować produkcję mieczy, podstawowym kryterium było to, aby proces wytwórczy zakończył się sukcesem. Proces musiał być skuteczny, tzn. prowadzić do celu. Z biegiem czasu produktom stawiano coraz większe wymagania, określając je już na początku. Kryterium odbioru nowego miecza stał się więc nie tylko fakt jego wytworzenia, lecz także zgodność wyników z zamówieniem. Zaczęły więc istnieć kategorie niezgodności, wady, specyfikacji, odbioru. W tych warunkach powstała tradycyjna i historycznie pierwsza kontrola jakości. Polega ona na sprawdzaniu, mierzeniu lub testowaniu jednej bądź kilku charakterystyk produktu i odnoszeniu wyników do wyspecyfikowanych wymagań w celu potwierdzenia zgodności. Zadanie to wykonuje zwykle wyspecjalizowany personel. Nie jest to obowiązek należący do pracowników produkcyjnych. Produkty niezgodne ze specyfikacją są odrzucane lub przekazywane do poprawienia. Proces produkcji oprogramowania w sposób naturalny zaadaptował to podejście do swojej praktyki. Najczęściej jednak kontroler jakości jest także programistą/projektantem. Czy może być obiektywny? Czy może być skuteczny?

Kontrola jakości stosuje binarne kryterium jakości: produkt przechodzi przez kontrolę lub jest odrzucany. Co zrobić, gdy kontrola pokazuje, że wciąż znaczny odsetek wyrobów mija się z celem lub stale występują te same bądź nowe błędy? Należy sterować jakością, tzn. przeprowadzając tradycyjną kontrolę produktu, włączać do systemu jakości pracowników produkcyjnych w celu stworzenia sprzężeń zwrotnych między wynikami kontroli a linią produkcyjną. Na podstawie wyników kontroli proces produkcyjny jest modyfikowany w celu otrzymania produktów zgodnych ze specyfikacjami. To produkcyjne sprzężenie zwrotne staje się zalążkiem systemu jakości. Powstają procedury postępowania z produktami niezgodnymi z identyfikacją przyczyn i wprowadzania działań korygujących "nastawy procesu".

Kolejny krok w procesie ewolucji systemów jakości zawdzięczamy klientom. Ruchy konsumenckie lat 70. sprawiły, że produkty musiały bardziej odpowiadać wymogom rynku - klienta. Zapewnienie jakości było naturalnym rozwinięciem poprzednich praktyk. Jakość wbudowuje się w produkt od początku przez prowadzenie systematycznych i zaplanowanych działań, prowadzących do wytwarzania produktów zgodnych ze specyfikacją. Drogą do osiągnięcia tego celu są regularne inspekcje, przeglądy, audyty i zewnętrzne oceny. System zapewnienia jakości jest formalnie opisany w księdze jakości, a jego skuteczność stale monitorowana. Działy marketingu i analizy wymagań zaczynają odgrywać nową rolę. Stają się odpowiedzialne za dostarczanie wiarygodnych i uzgodnionych z przyszłym użytkownikiem specyfikacji wymagań.

Najnowszą koncepcją, która nie neguje pozostałych, lecz uzupełnia je o globalizację działań projakościowych, jest kompleksowe zarządzanie jakością. R. Kolman w swoim Poradniku o jakości dla praktyków w taki sposób wyjaśnia jego istotę: "Jest to system wielostronnego oddziaływania na jakość produktu przy racjonalnym wykorzystaniu zasobów ludzkich i materiałowych w procesach wytwórczych z ukierunkowaniem na osiągnięcie zadowolenia klientów". Kompleksowe zarządzanie jakością zawiera wszystkie poprzednie nurty, historycznie wcześniejsze. Nie jest nową metodą, lecz filozofią opartą na pełnym i twórczym współuczestnictwie pracowników w tworzeniu produktów.

Moim celem nie jest przytaczanie definicji związanych z zarządzaniem jakością. Zainteresowanych odsyłam do normy ISO/IEC 8402 i coraz liczniejszych na naszym rynku wydawniczym publikacji na temat jakości. Ważniejsze od bezbłędnego recytowania formułek jest ich rozumienie i konsekwentne stosowanie wynikających z nich zasad postępowania.

Podsumowanie

Zmiana projakościowa systemu wytwórczego nie jest skutkiem uporządkowania świata pojęciowego, związanego z zarządzaniem jakością. Nie ogranicza się do ukonstytuowania pewnych reguł, zasad, systemów, szablonów. Jest procesem kształtowania kultury firmy. Każda firma przechodzi pewną ewolucję, dojrzewa do rozumienia nie tylko procesów rynkowych i wytwórczych, lecz także tych, które zmierzają do zapewnienia właściwej jakości dostarczanych produktów. Skuteczne zarządzanie jakością, które ma prowadzić do wypracowania przewagi konkurencyjnej na rynku, nie może obejść się bez przemyślanego określenia polityki jakości, zarządzania zasobami ludzkimi, środowiskiem pracy, wymaganiami klienta itd. Jest to długotrwały proces, którego pozytywne skutki widoczne są dopiero po pewnym czasie. Może dlatego tak trudno zdecydować się tym, którzy oczekują natychmiastowych wyników.

Jak wygląda ten proces i co warunkuje jego powodzenie... to już inna historia.

Tomasz Byzia jest konsultantem w InfoViDE.

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

TOP 200