TDD is dead czyli telenowela dla jajogłowych

David H Hannson, autor Ruby on Rails opublikował artykuł: http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html no i poszło… mleko się rozlało. Burza większa niż o sosnę (tą rozdartą – nie o brzozę, brzozy są niepolityczne).

tdd

Uncle Bob napisał http://blog.8thlight.com/uncle-bob/2014/05/11/FrameworkBound.html ale jak wieść gminna niesie to jest wersja politycznie poprawiona bo czyjeś uczucia religijne zostały obrażone – oryginalna wersja jest jeszcze w feedly i/lub cache googla. Generalnie wydarzyło się to tak szybki, że zanim przeczytałem artykuł to był już zmieniony – dobrze że koledzy z zespołu mi o tym powiedzieli bo dzięki nim przeczytałem oba te teksty.

Potem wielka debata Is TDD Dead z Martinem Fowlerem, Kentem Beckiem i Davidem Hannsonem, o której chyba pół internetu grzmiało (https://plus.google.com/events/ci2g23mk0lh9too9bgbp3rbut0k).

Następny odcinek czyli DHH problem http://codon.com/the-dhh-problem

W pracy pół poniedziałku TDD i tego samego dnia polska grupa celebryto.netowa wciągnęła się w telenowelę.

learn to use tdd

Co będzie dalej, gdzie ta telenowela się skończy? Podobno – znowu wieść gminna niesie że w 4 odcinku debaty Fowler – Beck – Hannson ma się okazać, że DHH jest synem (lub ojcem) Uncle Bob-a.

lodowka

Ci co oglądali South Park i pamiętają odcinek z piekłem i niebem wiedzą, że prawidłowa odpowiedź przyjdzie po śmierci (spoiler:  mormoni). Dla mnie na tą chwilę faktem jest to, że TDD jest trudne do ogarnięcia, ale nie trudne w podstawach bo te są łopatologicznie proste. Można je ogarnąć w kilka godzin czy dni. Problem jest taki, że wymaga to olbrzymiej determinacji od programisty oraz ciągłego trzymania się metodyki. Linijka po linijce, kawałek po kawałki dzień po dniu nabierać trzeba doświadczenia w TDD. Dzięki temu już po kilku latach jest szansa, że będziemy mieli wyczucie, kiedy używać TDD a kiedy nie, kiedy pisać wór testów na jedną mała klasę a kiedy napisać 5 testów na wór klas. Unit Testing testuje UNIT czyli jednostkę – jednostka to nie 1 klasa  czy 1 metoda, to może być zbiór klas. Żeby to czuć, kiedy iść w tą a kiedy w inną stronę to trzeba mieć dużo doświadczenia. Wydaje mi się, że czuję to, po ponad 4 latach z TDD (w różnym natężeniu), wydaje mi się, że to potrafię mimo, że jest jeszcze masa do nauczenia przedemną. Jedno jest pewne, TDD nie tworzy architektury i jej nie polepszy. TDD jedynie może zdegradować architekturę jeśli postawimy ołtarzyk tej metodyce. TDD to świetne narzędzie, które wymaga wprawy i umiejętności użycia.

Wg. mojej percepcji świata, TDD to przyszłość, to potężna umiejętność i warto w to inwestować. Jeśli mam rację to super, bo wszyscy przeciwnicy TDD odpadną z rynku i będzie jeszcze więcej miejsca. Jeśli się mylę, no cóż, zawszę mogę usunąć testy i wrócić do mozolnego „przeklikiwania” kodu lub zostać skrytym anonimowym tdd-owcem. Życie pokaże. Tymczasem czas iść do lodówki i mieć nadzieję, że telenowela tam nie zawitała, mieć nadzieję, że ostatni bastion spokoju u chłodu ostał się.