Jak wygląda ta definicja? Oto ona:
Już sama nazwa naprowadza nas na filozoficzne i duchowe odniesienia. Transcendentność jest przecież istnieniem poza granicami bytu i poza granicami ludzkiego poznania. Samo więc w sobie nie jest to coś, co ogarniemy w ramach inżynierii oprogramowania. Pojęcie to początkowo odnosiło się do ontologii (zajmującej się strukturą rzeczywistości), z czasem zaczęło się również pojawiać w ramach epistemologii (teorii poznania). Odrzućmy jednak aspekty filozoficzne i skoncentrujmy się na tym, co pewne i potwierdzalne.
Zacznijmy więc od tego kim jest Garvin? David A. Garvin to profesor Harvard Business School, żyjący w latach 1952 – 2017.
Całość jego pracy jest interesująca z punktu widzenia akademickiego, ale skoncentrujemy się na opisanych przez niego 8 wymiarach jakości oraz 5 podejściach do niej.
Garvin zdefiniował pogląd na jakość, w którym jest to coś, „czego nie da się precyzyjnie określić, ale wiemy co to jest, kiedy to widzimy”. Swoje 5 podejść do jakości Garvin zdefiniował w 1984 roku. Są to – jakość: transcendentna, oparta na wartości, oparta na użytkowniku, oparta na produkcie, oparta na produkcji („manufacturing based” jest pojęciem Garvina).
Garvin nie twierdzi, że którekolwiek z tych podejść jest wystarczające samo w sobie. To wszechstronne spojrzenie na jakość wymaga wszystkich pięciu.
Struktura Garvina jest jednym z bardziej znanych frameworków określania jakości. Garvin opisuje pięć uzupełniających się podejść do jej definiowania:
- podejście transcendentne,
- podejście oparte na wartościach,
- podejście oparte na użytkowniku,
- podejście oparte na produkcie,
- podejście oparte na produkcji.
Garvin jedynie skatalogował podejścia już istniejące, powstałe w zakresie filozofii, ekonomii, marketingu, zarządzania operacyjnego i finansów. Każde podejście poprawnie opisuje aspekt jakości, ale każde z nich ma wąską perspektywę. Aby uzyskać kompleksowy obraz jakości, należy zastosować wszystkie pięć. Pięć podejść do jakości Garvina można podsumować w następujący sposób:
- Podejście transcendentne. Podejście to postrzega jakość produktu lub usługi jako cechy wrodzonej, która jest zarówno absolutna, jak i powszechnie rozpoznawalna. Niedościgniona jakość przypomina platońską koncepcję piękna jako „formy idealnej”. W ramach tego podejścia produkt lub usługa posiada doskonałość w oparciu o subiektywny związek z niektórymi standardami. Umiejętność określenia tej subiektywnej relacji można jedynie rozwinąć poprzez doświadczenie.
- Podejście oparte na wartościach. Podejście to ocenia jakość w kategoriach kosztów i korzyści: im bardziej korzyści przewyższają koszty, tym bardziej wzrasta wartość produktu lub usługi. Produkty lub usługi o wyższej wartości określa się jako te o wyższej jakości. W rezultacie produkt lub usługa, która sprawdza się najlepiej (ale niesie wysokie koszty), może nie zapewniać najwyższej wartości i także nie będzie określana jako ta o najwyższej jakości.
- Podejście oparte na użytkowniku. Podejście to opiera się na założeniu, że jakość jest „w oku patrzącego”, gdzie patrzący jest użytkownikiem. Zgodnie z tym podejściem, jakość to stopień, w jakim produkt lub usługa zaspokaja pragnienia i potrzeby użytkownika lub jego preferencje. Na przykład, jeśli poszczególni użytkownicy uważają, że Toyota spełnia ich wymagania bardziej niż Fiat, to wówczas Toyota byłaby pojazdem wyższej jakości dla nich.
- Podejście oparte na produkcie. Podejście to postrzega jakość produktu lub usługi jako wymierne, w oparciu o określone składniki lub cechy. Garvin używa lodów i dywanika do zilustrowania tego podejścia. Lody można na przykład uszeregować według zawartości tłuszczu w maśle, przy czym większa zawartość tłuszczu w maśle oznacza wyższą jakość. Dywany można klasyfikować w zależności od liczby węzłów na cal kwadratowy, ze wskazaniem ciaśniejszego splotu jako tego o wyższej jakości.
Podejście oparte na produkcie faworyzuje mierzalne cechy ponad osobiste preferencje jednostki. Niemniej jednak Garvin identyfikuje osiem sposobów (lub „wymiarów” tego zjawiska), których ludzie używają do oceny jakości produktu. Wymiary te obejmują: wydajność, funkcję, niezawodność, zgodność, trwałość, użyteczność, estetykę i postrzeganą jakość. Niektóre z tych wymiarów są bardziej obiektywne, inne zaś bardziej subiektywne. - Podejście oparte na produkcji. Podejście to postrzega jakość jako „zgodność z wymaganiami”. W ramach tego podejścia wszelkie odstępstwa od wymagań zamierzonego użytkownika obniżają jakość. W przeciwieństwie do podejścia opartego na użytkowniku, podejście oparte na produkcji nie bierze pod uwagę oka obserwatora. Podejście to ma raczej na celu obiektywny pomiar stopnia, w jakim produkt lub usługa jest zgodna z wcześniej ustalonymi dokumentami.
Garvin argumentuje, że dostawcy produktów i usług powinni uwzględniać wszystkie pięć z tych podejść do jakości. W ten sposób mogą oni uzyskać kompleksowy wgląd w ocenę jakości, która przyniesie im wymierne korzyści. Obejmują one oszczędności kosztów, wzrost udziału w rynku i wzrost zysków.
Jeszcze raz podkreślmy, że praca Garvina w dużej mierze znajduje potwierdzenie innych ludzi pracujących nad definicją jakości. Czterech z najbardziej szanowanych uczonych, którzy podjęli się tego wyzwania, to William Edwards Deming, Philip Crosby, Armand Feigenbaum i Józef Juran. Łącznie ich pomysły znacznie pomogły w upowszechnieniu pojęcia jakości. W. Edwards Deming jest postacią prawdopodobnie najczęściej uznawaną za osobę popularyzującą koncepcję i zasady jakości. Twierdził on, że ludzie osiągają jakość poprzez niekończące się wysiłki na rzecz ciągłego doskonalenia. Poprawa ma miejsce, gdy zostaną wyeliminowane niepożądane zmiany w produkcie lub usłudze, a robi się to poprzez usunięcie różnic w procesie tworzenia produktu lub usługi. Idee Deminga wywarły wpływ na rozwój norm jakości ISO 9000. Jego pomysły są spójne i najbardziej zbliżone do podejścia Garvina w obszarze jakości opartej na produktach.
Philip B. Crosby opowiadał się za „zerem defektów” jako podstawą jakości. „Zero defektów” nie oznacza, że produkt lub usługa musi osiągnąć „doskonałość”; raczej produkt lub usługa muszą doskonale odpowiadać wymaganiom uzgodnionym przez klienta i dostawcę. Innymi słowy, klient zasługuje na to, aby otrzymać dokładnie to, co dostawca obiecał wyprodukować. To podejście dobrze pasuje do tego, co Garvin nazwał „podejściem opartym na produkcji”. Można założyć, że podejście ma zastosowanie wyłącznie do wytwarzania produktów, ale koncepcja zerowych defektów ma zastosowanie zarówno do produktów, jak i usług.
Armand V. Feigenbaum argumentował, że jakość to suma cech, dzięki którym produkt lub usługa spełni oczekiwania klienta w użytkowaniu. Nazwisko Feigenbauma jest praktycznie synonimem terminu „totalne zarządzanie jakością” (TQM). Podkreślał on, że jakość oznacza to, co jest najlepsze dla określonego kontekstu klienta, który obejmuje faktyczne wykorzystanie produktu (lub usługi) i jego koszt dla użytkownika. Jego pogląd można postrzegać jako zgodny z podejściem Garvina opartym na wartościach.
Joseph M. Juran stwierdził zwięźle, że „jakość to przydatność do użytku”, a „przydatność jest zdefiniowana przez klienta”. Zgodnie z tym poglądem, który jest powszechnie akceptowany na całym świecie i w wielu branżach, dostawcy myliliby się, decydując o tym, co jest odpowiednie, a co nie dla użytku klienta. Stanowisko Jurana jest najbardziej zgodne z podejściem Garvina opartym na użytkowniku.
Pamiętajmy, że Garvin wywodzi się z obszaru biznesowego, więc nie umieszcza jakości w bliższym nam obszarze inżynierii oprogramowania. Przyjrzyjmy się więc temu, jak można by to zaaplikować do testowania, czyli kontroli jakości.
(5) Jakość oparta na produkcji
Jeśli porównamy produkcję do naszego cyklu rozwoju oprogramowania, nacisk zostanie położony na stosowane przez nas praktyki i zgodność z wymaganiami. Doskonałość jest utożsamiana ze spełnieniem specyfikacji. Nacisk kładziony jest na zapobieganie defektom i ograniczanie poprawek. Często w tym miejscu wiele zespołów pracuje razem, budując produkt prawidłowo i jednocześnie mierząc jakość procesu. Wiele zespołów ukierunkowuje testy pod tę konkretną perspektywę. Z drugiej strony musimy zdawać sobie sprawę, że tworzenie oprogramowania nie przypomina produkcji, w której w kółko buduje się to samo. My raczej stale rozwijamy to, co mamy, zmieniamy to i dostosowujemy do nowych potrzeb. Niektóre z procesów wspierających jakość (produkcji) to: TDD (rozwój oparty na testach), kodowanie z myśleniem o utrzymywalności, przeglądy kodu, ciągła integracja, testy eksploracyjne, a nawet zgodność z definicją ukończenia. Mierzymy jakość procesu i odpowiadamy na pytanie: „Czy dobrze to budujemy?”.
(4) Jakość oparta na produkcie
Garvin twierdzi, że jakość oparta na produkcie dotyczy jakości cech, czyli elementów, które łącznie tworzą całość. Uważa się, że lepszej jakości składniki dają lepsze produkty. Ponieważ takie podejście do jakości odzwierciedla jakość cech, jakie zawiera produkt, a wytworzenie cech uważa się za kosztowne, towary wyższej jakości będą droższe. Jeśli jakość postrzegana jest jako nieodłączna cecha towaru, wyższa jakość oznacza lepszą wydajność i ulepszone funkcje – czyli czynniki, które mogą zwiększyć koszt produktu. Niektóre procesy, które zespoły mogą zastosować, aby pomóc w utrzymaniu jakości produktu, to: ATDD (rozwój oparty na testach akceptacyjnych) lub BDD (rozwój zorientowany na zachowanie), a także testowanie cech jakości, takich jak bezpieczeństwo, wydajność czy niezawodność. Odpowiadamy na pytanie: „Czy to działa zgodnie z oczekiwaniem (lub oczekiwaniami)?”
(3) Jakość oparta na użytkowniku
Perspektywa użytkownika jest najczęściej używana do mówienia o jakości i jest wysoce subiektywna. Zakłada, że użytkownicy posiadają wystarczające informacje, aby ocenić jakość produktu. Jeżeli tego nie zrobią, dokonując oceny, będą opierać się na innych wskazówkach. Weźmy pod uwagę kawę. Jedni użytkownicy preferują czarną, średnio paloną kawę od dobrze przygotowanego cappuccino, ale jest też duża grupa miłośników cappuccino. Co to oznacza dla Ciebie? Kto jest Twoim użytkownikiem? Kto ocenia jakość Twojego produktu? Czy chcesz zadowolić większość konsumentów? A może chcesz kierować reklamy do określonej grupy i zadowolić tylko tę grupę? Niektóre z procesów, które pomagają wspierać jakość opartą na użytkowniku, to: projektowanie rozwiązań pod doświadczenia użytkownika (UX), praca z klientami, aby dowiedzieć się, czego chcą, ATDD, testowanie z wykorzystaniem person klientów, testy A/B, testy dostępności i prowadzenie analiz na temat profilu produkcyjnego. Staramy się odpowiedzieć na pytanie: „Czy tego chcą nasi użytkownicy?”
(2) Jakość oparta na wartościach
Wartość definiuje się w kategoriach kosztu i ceny. Czy produkt zapewnia wydajność w akceptowalnej cenie? Za kawę niektórzy chcą zapłacić 2 złote, a inni zapłacą 10 złotych. Czy jest aż taka różnica w porównaniu do rzeczywistej wartości ziarna kawy? Specjaliści ds. marketingu mogą przeprowadzać badania dotyczące akceptowalnych pułapów cenowych, ankiety wśród klientów, aby zrozumieć, co myślą, analizy liczby sprzedanych produktów lub ustalać, jaki może być zysk z określonych funkcji. Są to testy, które weryfikują hipotezę i pomagają organizacjom zrozumieć, w jaki sposób ludzie korzystają z ich produktów i w czym widzą wartość. Osoby zarządzające produktem również dbają o wartość. Muszą znaleźć taki pułap cenowy, który zapewni wartość klientowi, ale także zapewni im zysk niezbędny do utrzymania działalności. Pytanie, na które powinniśmy odpowiedzieć, brzmi: „Czy klient widzi dobrą wartość w naszym produkcie?”
(1) Jakość transcendentna
Garvin opisuje to jako „wrodzoną doskonałość”; powszechnie rozpoznawalną, oznakę bezkompromisowych standardów. Trudno to określić ilościowo i zdefiniować, ale wiesz, kiedy to widzisz. Twoje zmysły Ci to mówią. Być może to atmosfera tego wspaniałego cappuccino, po które ciągle wracasz. Kiedy organizacje umożliwiają zespołom stworzenie czegoś wyjątkowego i wyjście poza normę, wtedy otrzymujesz transcendentną jakość. Przykładem może być nieoczekiwana, niesamowita grafika w nowej grze.
Co z tego dla testera? Przede wszystkim tester musi uświadomić sobie, że może zmierzyć tylko małą część jakości. Większość znajduje się poza jego obszarem analizy, bo jest subiektywnym odbiorem jakości przez użytkownika. Część leży w obszarze biznesowych aspektów relacji korzyści do kosztów. Gdy mamy poczucie, że produkt, który tworzymy jest złej lub dobrej jakości, to zawsze możemy się mylić, gdyż nasza perspektywa jest zbyt wąska.