Používáte Test Driven Development (TDD)?

Jedním z předběžných výsledků ankety (Dotazník Jak začít pracovat Agilně (Agile Adoption Survey) 2009) který je vidět již v průběhu je, že většina lidí považuje Test Driven development (TDD) za příliš složitý na nasazení, jen čtvrtina lidí ho opravdu používá, ale skoro polovina si myslí, že je to užitečná agilní metoda. Proč tomu tak je?

Zkuste si představit třeba automobil, který by někdo vyráběl stejně, jako je píše software. Prostě by se navrhnul, poskládal dohromady, a někdo s dělníků by na půl oka zkouknul, že to vypadá jako automobil. V lepším případě by motor vypadl až někde cestou, dveře by nešly zevnitř otevřít a nádrž na benzín by byla shodou náhod hermeticky uzavřená. O bezpečnosti jízdy ani nemluvě.

Než takový automobil pustíte na silnici…
picture1

nejdříve připravíte testy, třeba tento:
připravit testy

pak testy spustíte…
sputit testy

a teprve když jsou všechny v pořádku, dáte auto zákazníkovi…
hotový výrobek

Takže proč když to můžeme dělat při výrobě automobilu, neděláme to při výrobě software? Myslím, že je to jen zvyk. U softwaru totiž většinou nic moc nehrozí. To že programy nefungují, už jsme si přeci zvykli.

Ale i tak, Test Driven Development (TDD) rozhodně stojí za zamyšlení. Odhlédneme-li od spokojenosti zákazníka, je tu i spousta interních aspektů. Např. máte-li kód plně automaticky testován, snižujete riziko refactoringu a případné chyby, které způsobíte v jiných částech aplikace, najdete hned a sami. A na tom že každý systém jednou potřebuje třeba jen drobný refactoring se asi shodneme. Myslím, že investice do testů na začátku se Vám vrátí velmi brzy.

Proč to tedy nezkusit… Mimochodem, víte, jak se pozná, že už jste opravdu v Test Driven Developmet světě? Než upravíte nějakou funkcionalitu, nejdříve ‘rozbijete‘ test (tedy upravíte ho podle nových požadavků, a spustíte) a teprve až test neprojde, opravíte funkcionalitu tak, aby všechny testy byly v pořádku. Je to jiné, zdá se to být zvláštní, ale funguje to.

Open space diskuze na WebExpu: Vše, co jste kdy chtěli vědět o agilních metodách…

Ráda bych Vás pozvala na WebExpo 2009, kde pořádáme s Agilním konsorciem open space diskuzi:

Vše, co jste kdy chtěli vědět o agilních metodách*

Přijďte se něco dozvědět o agilních metodách, popovídat si, zapojit se do diskuze.
A máte-li již teď nějaké otázky, stačí je přidat jako komentář pod článek. Rádi odpovíme.

Diskuze se bude konat v sobotu 17. října 2009 od 14:15 v prostorách konání konference WebExpo (viz letáčky na místě). A povídat si s vámi budu já, tedy Zuzi Šochová (CERTICON), Petr Olmer (GoodData) a Andrej Zachar (SimpleWay).

___
* ale báli jste se zeptat