BIND 10 – agilně vyvíjený modulární nameserver

V týdnu od 21. března se v Akademii CZ.NIC uskutečnil BIND 10 Developer Meeting a já, spolu s mými kolegy z Laboratoří, jsem měl možnost podívat se, jak se vyvíjí nová verze téhle nejpoužívanější implementace DNS.

BIND 10 navenek přináší úplně nový design a množství funkcí, samotná koncepce vývoje však také doznala změn. Jak to vyjádřil programový manažer BIND 10 Shane Kerr, BIND 9 vznikal stylem „top-down“ a jeho vývoj byl více řízen někde „shora“. U nové verze se vývojáři snaží více o styl „bottom-up“ a méně o centralizované řízení. Projevem toho prvního je, že se jeho tým snaží o silnou modulárnost nového BINDu, kdy jednotlivé moduly (v praxi reprezentované samostatně běžícími procesy) jsou do velké míry nezávislé. Projevem toho druhého je zase určitá rovnost mezi všemi členy týmu (Shana nevyjímaje). Ta může být na jedné straně přínosná; každý má možnost „dostat se ke slovu“ a pokusit se prosadit svůj nápad či přístup. Na straně druhé to může vést k nekonečným diskusím, ve kterých trochu chybí nějaká autorita, která by ve věci „vynesla soud“ či aspoň nasměrovala diskusi produktivnějším směrem.

Vedení vývojářského týmu je v případě BIND 10 nepochybně náročné. Tvoří ho totiž patnáct lidí z celého světa – USA, Číny, Japonska, Velké Británie, Nizozemska i od nás z Čech. Tito lidé se osobně scházejí čtyřikrát do roka, aby tváří v tvář prodiskutovali jak plán dalšího vývoje, tak některé implementační detaily.


Část vývojářského týmu BIND 10 na setkání v Praze. Druhý zleva stojí Shane Kerr, třetí je Michal Vaner z Laboratoří CZ.NIC.

Byl jsem celkem překvapen jejich disciplínou a pracovním nasazením, když během těch pěti dnů, které tady strávili, věnovali práci devět nebo i více hodin denně. Na druhou stranu, jak už to tak bývá, když několik lidí s různých koutů světa a s různými názory a přístupy o něčem diskutuje, občas se nechá unést k již zmíněným dlouhým a ne zcela produktivním výměnám názorů.

Pravděpodobně největší výzvou je rozdělování a plánování úkolů a koordinace týmu; osobních setkání je málo a většina práce se tak musí plánovat do detailů a dopředu a to na období několika týdnů nebo i měsíců. Tým BIND 10 zvolil pro práci agilní metodu Scrum upravenou pro využití v mezinárodním týmu, který se nemůže setkávat každý den, což ostatně Scrum vyžaduje. Základem jsou za prvé face-to-face meetingy jako ten, kterého jsme se zúčastnili, a za druhé konferenční hovory probíhající téměř každý den. Podle Shanových slov zaberou minimálně 15 procent času celého týmu, pro vývoj jsou ale velice přínosné. Metodu Scrum využívá vývojářský tým teprve od minulého roku a její zavedení je prý skutečně znát.

Dalším výrazným prvkem provázejícím vývoj BIND 10 je testování. Tady musím mezinárodní tým vývojářů pochválit, protože testování věnuje skutečně mnoho času a prostředků. Skutečně bylo vidět, že „test-driven development“ není jen prázdná fráze. Až doposud se věnovali hlavně unit-testům, ale v plánu mají také testování na vyšší úrovni, která by měla ověřovat, jak se bude celý systém chovat v různých situacích. Cílem je zvýšit spolehlivost a důvěru uživatelů v tento systém; k tomuto cíli se podle mě vydali tou správnou cestou. Doufejme, že to dotáhnou do konce a BIND bude mít šanci zbavit se své nepříliš lichotivé přezdívky – Buggy Internet Name Daemon.

Sledovat práci vývojářů BIND 10, poznat lidi, kteří za ním stojí, a vidět, jak vzniká nová verze nejpoužívanějšího DNS softwaru bylo nevšední zkušeností. I když u nás v Laboratořích zatím žádný mezinárodní projekt nevedeme, v mnohém se jistě můžeme z jejich práce poučit či inspirovat.

Ľuboš Slovák

Autor:

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.