Jak funguje vývojový tým a programování v Seznamu

Seznam už má téměř tisícovku zaměstnanců a tři vývojová centra. Jak pracují programátoři v největší české internetové firmě, v textu popisuje šéf vývoje.

Oddělení vývoje Seznam.cz prošlo od svého vzniku mnoha změnami. Jednou z největších byl zejména počet lidí. Z několika „garážových“ vývojářů jsme narostli až do současného stavu, kdy v Seznamu pracuje téměř 200 vývojářů. Navíc nejsou všichni v jednom místě. Zhruba polovina pracuje na centrále v Praze, druhá půlka je pak v Brně a pár vývojářů sídlí i v Českých Budějovicích.

Při přerodu garážové firmy v jedničku českého internetu a s týmem rozesetým do tří měst po republice musely nezbytně proběhnout změny v řízení a nastavování procesů. Z malé firmy jsme firmou velkou a neustále se učíme, jak efektivně přistupovat k rychlému a přitom kvalitnímu vývoji. Prostě i sami sebe agilně vyvíjíme dál.

Decentralizovaný vývoj

Seznam.cz už má více než 950 zaměstnanců a rozhodně jej nelze považovat za malou firmu. Svoji centrálu má v Praze, kde sídlí také týmy odpovědné za produkty a služby (v Praze mimochodem roste nové velkolepé sídlo firmy). Na produktových manažerech leží zodpovědnost za to, jak se má služba chovat a co má uživatelům či našim klientům přinášet.

seznamvyvoj01.PNG seznamvyvoj02.PNG
Seznam potřebuje zejména kvůli vzdálenosti vývojových týmů dva - papírový a digitální.

Takže v Praze sedí celé produktové oddělení a vývojová centra má Seznam.cz tři. Stejně velká jsou ta v Praze a Brně, nejmenší jednotka je na jihu Čech. Samotný vývoj služeb se ale neděje jen v jednom z našich vývojových center. Některé služby, například fulltextové hledání a Sklik, vyvíjíme ve více centrech. Už jen prostý fakt fyzické vzdálenosti mezi jednotlivými vývojovými centry i pražská lokace produktových manažerů nás donutily vybudovat síť videokonferencí a chat pointů. Jsou to naše nástroje efektivní komunikace.

Kromě zasedacích místností vybavených pro videopřenos máme tedy i různé koutky s počítači vybavenými webkamerami a online videochaty, kterým říkáme „chat pointy“. Díky nim dokážeme okamžitě komunikovat, podobně jako bychom seděli v jedné místnosti. Kolegy z Prahy tak vidíme a slyšíme denně a neujedeme ani kilometr po D1.

Agilní vývoj

Seznam.cz používá agilní vývoj. Dospěli jsme k němu samozřejmě přes různé vodopády, chaosy a experimenty. Nyní už druhým rokem používáme konkrétně SCRUM a KANBAN. Snažíme se vybudovat silné a sebeorganizované týmy, které nemají problém při výpadku jednotlivce. Důraz je tedy kladen na motivaci, rozvíjení a vzdělávání týmu, nikoliv jednotlivců.

Nejde to samo, je třeba se neustále učit a vzdělávat v tom, jak SCRUM správně funguje a co je třeba, aby vše běželo hladce. I toto sebevzdělávání je součástí práce našeho vývojáře.

Jak se pracuje se SCRUMem v Seznamu

Do typického týmu jedné seznamové služby (a je jedno, zda jde o tým, co pracuje na Seznam.cz Emailu, službách Sport.cz, nebo Sreality.cz) patří kromě vývojářů a webmasterů také produktový manažer dané služby a návrhář uživatelského rozhraní. Jsou služby, kde je součástí týmu i systémový administrátor. Do týmů teď začínáme zapojovat i testery, kteří nám z dlouhodobého pohledu mají pomoci zvýšit výslednou kvalitu kódu.

seznamvyvoj03.PNG
Vypadá to jako kvarteto, ale je to odhadování náročnosti.

Vzhledem k tomu, kolik lidí je v celém procesu zahrnuto, má vývoj dané služby svého scrummastera. Ten organizuje a vede schůzky i plánování a je v každodenním kontaktu s týmem. Každý den se totiž tým potkává na několikaminutovém shrnutí stavu projektu.

SCRUM v Seznamu jede obvykle v třítýdenním rytmu. Postupně se tedy vždy co tři týdny plánuje práce, implementují se změny, na demu se ukáže aktuální stav prací a nechybí ani retrospektiva. Tato jedna iterace se v terminologii SCRUMu nazývá sprint.

Jak vypadají jednotlivé sprinty

Plánování je typicky nejdelší schůzka v celém procesu. Produktový manažer na něm určuje, jaký je požadovaný stav, tedy cíl, který má být po ukončení sprintu dosažen. Důležité je pořádně už na začátku upřesnit zadání a požadavky. Tým se pak dále doptává a doplňuje si informace, které mu chybí. Výsledkem plánování je závazek týmu, co je schopen ve sprintu vyrobit. Každý krok má přitom svoji hodnotu vyjadřující jeho náročnost.

Ve fázi implementace se tým potkává každý den na takzvaném „stand-upu“, který trvá deset minut. Zde každý člen týmu sdělí ostatním, co dokončil v předchozím dnu, co má v plánu udělat ten den, a zda má nějaké problémy. Tým se potom snaží s těmito problémy pomoci.

seznamvyvoj04.PNG
Kolik zbývá na projekt času a kolik práce? Ideální stav versus skutečnost.

Pokud se objeví problémy, jejichž řešení není v silách týmu, hledá řešení scrummaster. K ukázce toho, co se během sprintu stihlo dokončit, slouží demo. Na to může přijít kdokoliv z firmy a vidí, v jaké fázi projekt je. Sprint ale pro tým končí až retrospektivou. Ta nám pomáhá, abychom se utvrdili v tom, co děláme dobře, a uvědomili si, co máme naopak zlepšit do dalších sprintů.

Prostor vyjádřit se zde dostane každý člen týmu. Jen tak se opravdu všichni mohou poučit a dál se rozvíjet.

I k agilnímu vývoji existuje cesta

V úplných začátcích, kdy jsme v Seznam.cz SCRUM zaváděli, jsme využívali hlavně klasickou tabuli a papírové lístečky. Postupně jsme zjistili, že nám chybí způsob efektivní evidence, a hlavně u virtuálních týmů, kde jednotliví členové pracují ve více lokalitách, nám chybělo i sdílení tabule.

Postupně jsme začali objevovat různé nástroje pro práci se SCRUMem. Těchto nástrojů jsme vyzkoušeli několik, až jsme se rozhodli, že nám nevyhovuje žádný z nich a bude lepší používat vlastní řešení. Máme tak systém, který minimalizuje redundanci informací, administrativu, byrokracii a přehledně vizualizuje průběh sprintu i celého projektu.

Scrum a další: Jak na agilní softwarový vývoj

Mnoho organizací, které vyvíjí nebo spravují software, koketuje s myšlenkou agility jako způsobu vývoje. Co ale vlastně agilita ve vývoji znamená a jak na ní?

I když používáme převážně SCRUM, najde se místo i pro metodiku KANBAN. Tu používáme zejména pro maintenance nebo pro projekty, popřípadě fáze projektů, kde není vhodné používat SCRUM. KANBAN je volnější metoda agilního vývoje. Volnější je například v tom, že nedefinuje pevné časové rámce. Důležitější než čas je zde splnění zadaného úkolu. Tým má určen počet úkolů, na kterých může paralelně pracovat. Přitom platí, že další úkol si lze vzít až v momentě, kdy se nějaký jiný dokončí.

Každý tým je jiný

I přesto, že máme standardizovaný proces vývoje, je při takto velkém počtu vývojářů každý tým jiný. Je proto třeba ke každému z nich přistupovat individuálně. Pro mě jako šéfa vývoje v Seznam.cz je důležité, aby scrummasteři, kteří celý proces koordinují, jej dokázali i dobře vést. Musíme se prostě potkat ve věcech, které jsou pro nás klíčové, a řešit je včas.

Takže i přes všechna pravidla a procesy je každá práce a každý tým hodně jiný. Je nás 200 a všichni máme společný cíl – dělat svoji práci co nejlépe a každým sprintem se naučit něco nového.

Autor pracuje jako vedoucí vývoje ve společnosti Seznam.cz.


X

Doporučit článek

Vaše jméno:

Váš e-mail:

E-mail adresáta:

Komentář:

kontrolní kód

Odeslat


celkem 6

Poslední názory Názory

presne ako by som cital nase firemne procesy ..do... ceco99 25.  1.  2012 12:38
Dobry den, pro mne hodne zajimavy popis toho jak... Petr Tosovsky 24.  1.  2012 14:00
"Důraz je tedy kladen na motivaci, rozvíjení a... vit kratochvil 24.  1.  2012 13:27
Mně osobně by zajímaly technologie, které vlastně... Potvora 24.  1.  2012 13:15
Hromada normálních zpráv neprojde jejich... EskymakCZ 24.  1.  2012 12:30
Můj názor Zobrazit vše



Další podobné články

Současná architektura počítačů a prostor na optimalizace

Současná architektura počítačů a prostor na optimalizace

Architektura dnešních počítačů se příliš neliší od té, která byla určená pro desítky let staré počítače. Míst k optimalizaci je tak hodně - třeba i u virtuální paměti.

Před 7 hodinami  |  Javůrek Karel  |  3

Open-source je poprvé kvalitnější než proprietární software

Open-source je poprvé kvalitnější než proprietární software

Z analýz zdrojových kódů za rok 2013 vyplynulo, že Open-source programy obsahují méně chyb. Jak je to ale s celkovou bezpečností? Můžeme věřit svobodným vývojářům?

Včera  |  Janů Stanislav  |  16

MySQL a Oracle, třeste se. Je tu nový Microsoft SQL Server 2014

MySQL a Oracle, třeste se. Je tu nový Microsoft SQL Server 2014

17.  4.  2014  |  Čížek Jakub  |  9
Google uvolnil Chrome Remote Desktop pro Android

Google uvolnil Chrome Remote Desktop pro Android

17.  4.  2014  |  Čížek Jakub  |  6
partner webu


DEJTE NÁM TIP NA ČLÁNEK




Aktuální číslo časopisu Computer
  • Testy nejnovějších produktů na českém trhu.
  • Informace ze světa internetu i bezpečnosti.
  • Plné verze programů zdarma pro všechny čtenáře.