Vyhoďte testery
Tester je typicky člověk, který je součástí softwarového týmu dodavatele a jehož úkolem je zkoušet systém ještě před předáním klientovi (lidem). Tester používá systém jako skutečný klient, hledá chyby, navrhuje vylepšení a hlavním smyslem jeho práce je minimalizovat dopad možných chyb po ostrém nasazení softwaru. Tester může být také robot. Úloha živého testera, člověka, je však stále nenahraditelná.
Člověk, testující software v týmu dodavatele není dobrý:
- tester nezná skutečný kontext klienta, ten zná jen klient osobně
- tester nezadává reálná data
- tester nemá osobní vztah k softwaru, protože jej neplatí
- tester nehraje na čas, je mu jedno, že mu testování trvá den nebo týden, často na svou práci nahlíží jako “mít hotovo a jít dom”
- tester je drahý
- tester, který jen testuje, duševně degraduje a stává se cvičenou opicí
- tester se nudí, protože dlouhodobé testování je vopruz
- tester odvádějící kvalitní práci může způsobit paradoxně dojem bezchybného softwaru a snižovat toleranci klienta k budoucím chybám
- tester zabírá místo produktivnějším lidem či úkolům
Za lepší považuji testery vyhodit, nebo jim dát lepší práci a nechat testovat přímo klienta:
- klient nejlépe ví, jak systém testovat
- klient neplatí testování
- klient vidí, co platí
- klient vidí rychlost a lépe si plánuje další vývoj
- klient vidí, zda roste nebo klesá kvalita a může na ni reagovat
- klient zadává reálná data
- klient perfektně pozná software a pak jej ve firmě podporuje
- klient sám určí míru stability vhodnou pro nasazení do produkčního prostředí
- klient pochopí, že software může mít chyby
- klient pochopí ekosystém vývoje softwaru
- klient častěji komunikuje s vývojovým týmem, čímž obě strany pochopí svou motivaci
Klient tedy celkově zrychluje vývoj, zvyšuje kvalitu a snižuje cenu softwaru. Což je dobré jak pro klienta, tak pro dodavatele.
UPDATE 21.7.2011: Milan Borůvka reaguje v článku "Nevyhazujte testery!". Má odpověď je v jeho komentářích.