Testowanie na podstawie ryzyka: rozwiązanie tajemnicy © Bogdan Bereza bogdan.bereza@victo.eu Testowanie na podstawie ryzyka - ostateczne rozwiązanie tajemnicy. Jak wyliczyć zwrot z inwestycji w jakość? Czy jakość ma swoje ROI? Jakie przyjąć założenia odnośnie nakładów związanych z testami oprogramowania oraz na innymi działaniami wspierające jakość. W jaki sposób klasyfikować nakłady na jakość, jak nauczyć się wyliczać ROI związane z jakością oprogramowania w organizacji i w jaki sposób doskonalić te umiejętności.
Wysłuchali Państwo dzisiaj: Standardy nie bolą i nie szkodzą na wydajność - przeciwnie „Jakość = Krew + Pot” - w 2003 roku planowaliśmy, aby SJSI nazwać POT, a jego hasło miało być „POT I ŁZY” Nie tylko dział testów Aby świat był holistycznie lepszy… tylko po co? Nordea proces Przejście na Scrum (nie „SCRUM”!) Motywatory Jak zmusić nie-T-szejpowców do Scruma, czyli wkopać kwadratowy peg w okrągłą hole Mobilna ściema? Zwinność w banku Agora o wszystkim Wow, wraca stare dobre TPI! SIWZ nie jest schizą Wymagania też są ważne Dekodery też ludzie
Pragnienie zysku Co jest w tym WSPÓLNE? Standardy nie bolą i nie szkodzą na wydajność - przeciwnie Pragnienie zysku „Jakość = Krew + Pot” - w 2003 roku planowaliśmy, aby SJSI nazwać POT, a jego hasło miało być „POT I ŁZY” Nie tylko dział testów Aby świat był holistycznie lepszy… tylko po co? Nordea proces Skąd wiedzieć, co jest DLA MNIE dobre? Przejście na Scrum (nie „SCRUM”!) Motywatory Jak zmusić nie-T-szejpowców do Scruma, czyli wkopać kwadratowy peg w okrągłą hole Mobilna ściema? Zwinność w banku Agora o wszystkim Wow, wraca stare dobre TPI! WYŁĄCZNIE zysk jest kryterium, czy robimy dobrze, czy źle SKIWZ nie jest schizą Wymagania też są ważne Dekodery też ludzie
Od czego zależy zysk w IT? Przychód Przychód ZYSK ZYSK? ZYSK Koszt
Od czego zależy przychód? Potrzeba klienta Termin realizacji Konkurencja Przychód Zysk Reklama Jakość Sprzedaż
Od czego jeszcze zależy przychód? Potrzeba klienta Termin realizacji Ekonomika, Mba, Nie tutaj! Konkurencja Przychód Zysk Reklama Jakość Sprzedaż
A od czego zależy koszt? Koszt budowy Koszt utrzymania Koszt sprzedaży Zysk Koszt reklamy Koszt wymagań jakości Koszt braku jakości
W tym, koszt budowy? Złożoność Technologia Motywacja Proces Termin Zysk Koszt Koszt budowy Złożoność Technologia Motywacja Proces Termin Środowisko Wymagania jakości Wymagania bezpieczeństwa, niezawodności, … Kompetencje Koszt zapewnienia jakości Koszt braku jakości
A koszt utrzymania? PODOBNIE: Złożoność Architektura Technologia Zysk Koszt Koszt utrzymania PODOBNIE: Złożoność Architektura Technologia Motywacja Proces Terminy Środowisko Zakres zmian Wymagania jakości Wymagania bezpieczeństwa, niezawodności, … Kompetencje Koszt zapewnienia jakości Koszt braku jakości
lecz wyłacznie o KOSZTACH JAKOSCI oraz o KOSZTACH BRAKU JAKOSCI Nie mówimy tutaj o: Złożoności Architekturze Technologii Motywacji Procesie Terminach Środowisku Zakresie zmian Wymaganiach jakości Wymaganiach bezpieczeństwa, niezawodności Kompetencjach… (choć to WAŻNE!) lecz wyłacznie o KOSZTACH JAKOSCI oraz o KOSZTACH BRAKU JAKOSCI ,
Mówimy tyle o tej JAKOŚCI Nie dlatego, że: Mamy taką nerwicę Jesteśmy nadzwyczaj etyczni Jesteśmy nudziarze Chcemy zbawić świat Popisujemy się, jacy jesteśmy bardzo mądrzy Tylko dlatego, żeby: Uniknąć kosztów braku jakości TYLKO TYLE AŻ TYLE
Jakie są koszty jakości? Wdrożenie procedur w tym: opór przed zmianami Przestrzeganie procedur w tym: poczucie braku luzu Wdrożenie i używanie narzędzi ?
A koszty braku jakości: 1(2) 1. Zmniejszenie przychodów: Opóźnienie Niezadowolenie klienta Wyższe koszty w ofercie Mniejsza elastyczność Mniejsza możliwość zmian Niższa terminowość Antyreklama
Koszty braku jakości 2(2) 2. Wzrost kosztów: Kary, odszkodowania Frustracja pracowników Przeróbki Późne naprawy Obsługa awarii Metoda prób i błędów Utrudnienie ponownego wykorzystania
Czyli jak? Złoty punkt :) KOSZTY JAKOŚCI KOSZTY BRAKU JAKOŚCI Ha, ha! Jednak jakość JEST za darmo Koszty razem Złoty punkt :) Wszystko się wali Pomogło! Oj? Kompulsja A nie mówiłem! Wow, spoko! Wysiłek… Jak fajnie! Jeszcze lepiej Bardzo porządnie I jeszcze… Uważniej Ale luzik! Dziki bałagan Trochę porządku Solidny ład Chaosowi mówimy NIE! Zgubna biurokracja
Gdzie jest to optimum? To zależy przede wszystkim od KOSZTÓW BRAKU JAKOŚCI: Wewnętrznych: bałaganu, przeróbek, późnego wykrywania błędów; i zewnętrznych: kosztów skutków awarii, serwisu, kar, nadgodzin; (a także od zmniejszonych przychodów) I trochę także od KOSZTÓW JAKOŚCI
Uciekający złoty punkt optymalny koszt zapewnienia jakości Sterowanie elektrowni jądrowej Rozrusznik serca System bankowy Ważna aplikacja Taka sobie średnio-ważna aplikacja Gra na komórkę, program pisany dla własnej zabawy koszty braku jakości
Zadanie 1: koszty braku jakości Trzeba je tylko porządnie oszacować Ile nas naprawdę kosztuje chroniczny chaosik (z którym przecież jakoś sobie radzimy, jesteśmy z siebie dumni)? Jak trafnie oszacować utracone wpływy, np. z powodu dłuższego terminu dostawy, unikania IT przez biznes, fochów Klienta? Koszty trudno-mierzalne: nuda, cynizm, zmiany pracy przez pracowników tylko
Tajemnica kosztów trudno-mierzalnych 狩野紀昭 Czyli: Noriaki Kano Model Kano: lata 80-e Guide to TQM in Service Industries (1996) Nagroda Deminga 1997 usługi
„zachwycacze” Model Kano Daje zyski! zwykłe potrzeby Zadowolenie Złość Obojętność Nawet niewielki koszt ulepszenia wykrywania „zachwycaczy” i „wściekaczy” może dać bardzo istotne zyski, lub ograniczyć koszty / szkody Jakość (poziom) zaspokojenia potrzeby „rozwściekacze”
Zadanie 2: koszty jakości Jest realna możliwość oszacowania; zwykle wyolbrzymionego przez: ludzką niechęć wobec zmian; testosteron (modę na szpanerskie techniczne nowinki zamiast banalnych usprawnień procedur); obawy przed uznaniem swoich błędów
Zadanie 3: skuteczność Malejący zysk z inwestycji w jakość: inwestycja w co? zysk zysk strata! inwestycja inwestycja inwestycja
Inwestycja w co: W lepszą inżynierię wymagań? W zarządzanie konfiguracją i zmianami? Lepsze techniki projektowania testów? Większe pokrycie testowe? Automatyzację?
Podsumowanie Aby wyliczyć, gdzie jest Oszacować koszty braku jakości (i chaosu, i awarii) Oszacować koszty zapewnienia jakości Oszacować skuteczność inwestycji (ROI) w dany rodzaj zapewnienia jakości Uwaga zależności: pomocne bywa TPI i inne modele dojrzałości złoty punkt:
I wtedy już będziemy gotowi? Oszacowania kosztów braku jakości oraz jakości ani ROI nie są bezwzględne i niezmienne, lecz jedynie statystyczne. Nie całkiem… Trzeba znać z grubsza wielkość oraz rozkład prawdopodobieństwa. Poznajemy je empirycznie, gromadząc coraz więcej danych. To podobnie, jak z udoskonaleniem testów na podstawie ryzyka:
Szacowanie zależności Testy na podstawie ryzyka Jeśli koszt niespełnienia (krytyczność) wymagania = 27.500 zł straty (P=10%), to czy warto mu zwiększyć dwukrotnie, kosztem 10.000 zł, pokrycie testowe? Ile inwestować w jakość Jeśli koszt niespełnienia (krytyczność) wymagania = 27.500 zł straty (P=10%), to czy warto… przeprowadzić na przykład inspekcję wymagań, kosztem 10.000 zł?
ZAPRASZAMY JUTRO NA PRAKTYCZNY WARSZTAT: <<Testowanie na podstawie ryzyka>> © Ewa Wardzała © Bogdan Bereza ewa.m.wardzala@gmail.com bogdan.bereza@victo.eu Testowanie na podstawie ryzyka. Od lat zadajemy sobie to samo pytanie: jak osiągnąć optymalną z punktu widzenia biznesowego równowagę między kosztami jakości, a kosztami braku jakości? W odniesieniu do testowania, to pytanie brzmi: jak oszacować najwłaściwszy dla danego projektu poziom nakładów na testowanie, tak by zminimalizować koszty naprawiania defektów i awarii, ale nie spowodować nadmiernego wzrostu kosztów samego testowania? Ogólna odpowiedź na to pytanie jest dobrze znana od co najmniej dwudziestu lat: trzeba uwzględnić poziom ryzyka. Im większe jest ryzyko (konsekwencje i prawdopodobieństwo) możliwych awarii, tym więcej warto zainwestować w zapobieganie ryzyku, czyli w testowanie. Ta zasada jest wprawdzie słuszna, ale nie pozwala w praktyce uzyskać konkretnych odpowiedzi na podstawowe pytania, takie jak, na przykład: • O ile zmaleje ryzyko awarii, jeśli obok dotychczasowych testów projektowanych ad hoc, zaczniemy także projektować testy na podstawie modeli? • O ile zmaleje ryzyko awarii, jeśli podwyższymy wymagane pokrycie testowe z 90% pokrycia instrukcji, do 95% pokrycia rozgałęzień? • W budżecie projektu przeznaczono o 100 tysięcy złotych więcej niż dotąd na zapewnienie jakości, a celem kierownictwa jest zmniejszenie kosztów awarii po wdrożeniu o co najmniej tę samą sumę. W jakiej proporcji przeznaczyć te pieniądze na (a) inspekcje specyfikacji wymagań (b) automatyczne testy statyczne kodu źródłowego (c) automatyzację dotychczasowych testów ręcznych i poszerzenie ich zakresu (d) wprowadzenie dodatkowych sesji testowania eksploracyjnego (e) zatrudnienie osoby, która będzie nadzorować porządek w zarządzaniu konfiguracją i zmianami? Podobne pytania można mnożyć, ale nie ma tutaj gotowej łatwej odpowiedzi – można natomiast poznać metody, za pomocą których można stopniowo zbliżać się do coraz lepszego oszacowania zysków i kosztów w tych obszarach. Warsztaty będą miały formę praktycznych ćwiczeń, w trakcie których będziemy szukać propozycji możliwych przedsięwzięć mających na celu obniżenie ryzyka. Bogdan Bereza , Victo