Nahoru
 

Manažerské a výkonné role při vývoji softwaru

Každý z vás během svého života vystřídá nesčetné množství různých rolí. Ať už v osobním nebo pracovním životě. Třeba když nastupujete do auta a chytáte volant, přejímáte roli řidiče, pokud jedete v taxíku, plníte roli pasažéra. Každá role s sebou nese svoje práva a povinnosti (řidič musí dodržovat silniční předpisy apod.). Při vývoji softwaru také dělíme lidi podle toho, jakou činnost vykonávají.

 Ještě než zabřednu do základního rozdělení rolí, chtěl bych říci, že lidé jsou tím nejcennějším základem každého týmu. Můžete používat nejlepší plány a být nejlepším vedoucím na světě, ale se špatným týmem to nikdy daleko nedotáhnete. Úspěch týmu závisí na každém jeho členovi a na to jak spolu všichni dokáží spolupracovat.

Lidé jsou tím nejcennějším, co v týmu máte.

Softwarový tým lze v největší obecnosti rozdělit na dvě hlavní role. Na roli výkonnou a na roli manažerskou. Manažer má jako hlavní úkol řídit projekt. Měl by být sám do projektu zapálený, aby motivoval ostatní a samozřejmě musí mít autoritu, aby ho členové respektovali. Zároveň s tím se však snaží udržet v týmu svobodu jednotlivých členů, protože vývoj softwaru je bezesporu kreativní činnost. Každý problém se dá vyřešit několika různými způsoby. Já osobně bych motivovaný nebyl, kdyby mi někdo přesně diktoval, jak mám co implementovat a věřím, že v tom nejsem sám. Nyní máte manažera, tedy řidiče vašeho projektu.

Další rolí, kterou lze dále specializovat je výkonná role. Tou nazýváme jednotlivé programátory, analytiky, testery, zkrátka všechny technické odborníky v týmu (tím samozřejmě nechci tvrdit, že manažer nemůže být také odborníkem). Od těch se očekává, že rozumí své odbornosti a dokáží za ni převzít zodpovědnost. Za chybu v databázi nemůžete vinit manažera, který sice všemu „šéfuje“, ale databázistu, protože on se o to má starat. Navíc by bylo více než dobré, kdyby každý člen týmu dokázal spolupracovat s ostatními.

Složením týmu z manažera a výkonných členů dostáváme jakýsi korpus všech softwarových týmů. Nikde jsem schválně neřekl, že každou roli může vykonávat pouze jeden člověk, protože to není pravda. I manažera může dělat zároveň více lidí. Další vlastnosti jednotlivých týmů závisí už na konkrétní metodice vývoje softwaru. U tradičního vývoje se plnění jednotlivých rolí může značně lišit od například agilního způsobu.

Pokud by vás zajímalo něco více o agilním vývoji, přečtěte si článek Pryč s byrokracií, je čas vyvíjet agilně.