Nie wystarczy być już Agile. Teraz wszyscy chcą być Lean. Warto zajrzeć pod pokrywkę i zobaczyć co kryje sie za tym niepozornym słowem, które łączy ze sobą zasady optymalizacji produkcji i perfekcjonizm Dalekiego Wschodu.
Metoda Lean próbuje eliminować podstawowe problemy wytwarzania produktów (niezależnie od typu produktów), które na potrzeby testerów przekładamy na język produkcji oprogramowania:
- Nadprodukcja - niepotrzebna funkcjonalność,
- Wysokie stany magazynowe - budowanie oprogramowania, które nie jest nikomu potrzebne,
- Wady produktów - oprogramowanie dostarczone z defektami,
- Oczekiwanie - przedłużanie czasu produkcji oprogramowania,
- Zbędny transport - niedoskonała logistyka,
- Nadmierny ruch- wykonywanie czynności zbędnych, w tym wykonywanie czynności ręcznych tam, gdzie automat byłby efektywniejszy,
- Nadmierna obróbka - zbędne ozłacanie oprogramowania.
Lean zakłada pięć zasad "odchudzonego" myślenia. Każda zasada przekłada się na jakość i ma swoje odzwierciedlenie w testowaniu:
- Wartość powinna być określana z perspektywy końcowego użytkownika - walidujemy wymagania na produkt.
- Należy określić strumień wartości dla każdej kategorii produktów - osiągnięcie celów musi być opomiarowane osobno dla każdego produktu (definiowanie kryteriów jakości).
- Kolejne etapy dodawania wartości muszą być połączone, aby osiągnąć płynny przepływ produktu - dodawanie wartości do produktu musi zachodzić w sposób płynny bez wpływu na użytkownika (testowanie w utrzymaniu).
- Klienci powinni mieć możliwość uzyskania tego, czego oczekują - testowanie akceptacyjne.
- Zarządzanie musi być ukierunkowane na osiągnięcie perfekcji. Wszystkie działania i użyte środki mają tworzyć wartość - unikanie marnotrawstwa.
Dzięki tej metodzie:
- Klient otrzymuje wysokiej jakości produkt w odpowiednim terminie - testowanie przed dostawą.
- Dostawcy otrzymują zrównoważone zamówienie, co gwarantuje terminowość dostaw - budowanie współpracy z zamawiającym oprogramowanie.
- Stany magazynowe na całej długości strumienia zmniejszają się - ograniczanie kosztów związanych z przestojami czy nieoptymalnym zarządzaniem zasobami.
- Uwolnione są wszelkie zasoby w postaci ludzi, maszyn i miejsca, które nie wpływają negatywnie na wynik finansowy, aż do momentu ich użycia - realizowanie jedynie zadań koniecznych w danym momencie z planowaniem dostępności zasobów i ludzi.
Metoda, która wdrażana jest po stronie samego wytwarzania oprogramowania to Lean Software Development. Testowanie jest tutaj widoczne w siedmiu podstawowych zasadach:
- Ogranicz straty w niepotrzebnym kodzie i funkcjonalności, w biurokracji, w niezrozumiałych wymaganiach.
- Stawiaj na ciągły proces uczenia się.
- Decyduj tak późno jak to możliwe, bazując na faktach, a nie przypuszczeniach.
- Dostarczaj tak późno jak to możliwe - szybka dostawa to większa szansa na sukces, a w połączeniu z techniką just-in-time to również szansa na optymalizację czasu dostawy.
- Zaangażuj właściwych ludzi i pozwól im robić swoją robotę.
- Wbuduj integralność dla funkcji i cech.
- Dostrzegaj całość elementów składających się na proces wytworzenia produktu.