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.