Organizace softwarových týmů -
Základy personalistiky a pravidla práce v softwarovém týmu, softwarové profese,
organizace softwarových týmů.
· Účelem řízení projektu je optimalizovat spotřebu lidských, finančních, materiálových a dalších zdrojů tak aby se s minimálními nároky na kapacitu těchto zdrojů dosáhlo v plánovaném čase požadovaných cílů IS/IT.
Řízení projektů zahrnuje:
· tvorba plánu projektu
o Zadání projektu - Obsahuje cíle a rozsah projektu (tj. co se bude dělat). Tyto informace se určí ještě před plánováním.
o Struktura projektu - Obsahuje přehled projektových činností, které bude nutné provést.
o Harmonogram a rozpočet - Obsahuje činnosti rozplánované do jednotlivých dní, týdnů, měsíců. Obsahuje odhad nákladů na projekt.
o Zhodnocení proveditelnosti projektu - Obsahuje zhodnocení realizovatelnosti harmonogramu, projektu, posouzení důvěryhodnosti plánu apod.
o Organizace projektu - Obsahuje přehled lidí, kteří se budou na projektu podílet a jejich role. Obsahuje, jaké osoby tvoří řídící výbor (radu), projekční týmy, atd. Musí být přiřazeny lidé k jednotlivým činnostem.
o Řídící a kontrolní procedury (postupy) - Obsahuje přehled postupů určených pro zajištění požadované kvality výsledného produktu, pro provádění změn apod.
· mapování a vytvoření potřebných projekčních zdrojů, tzn. vytvoření projektových a programátorských týmů, zajištění technicko-programových podmínek pro přípravu projektů (příprava a ladění programů, příprava a instalace technických prostředků apod.), výběr standardních programových prostředků
· plánování projekčních postupů, stanovení harmonogramu řešení projektu, jednotlivých subsystémů úloh, specifikace objemu proj. prací vzhledem k rozsahu a stanovení nároků jednotlivých úloh na pracovníky vyjadřované v tzv. člověkodnech
· organizace a přiřazování projekčních zdrojů (lidí, techniky, atd.) k plánovaným projekčním procesům, úlohám
· stanovení závazných pravidel a konvencí pro tvorbu projektů
o v oblasti dokumentace - pro dodržování jednotné struktury dokumentace, stejné terminologie atd.
o v oblasti komunikace, resp. uživ. interface - dodržování jednotné formy obrazovkových formátů, jazyka funkcí
o v oblasti projekčních metod - jejich výběr a standardizace
o v oblasti programových prostředků a aplikačních programů - jejich výběr (progr. jazyků, databázových procesorů, tab. kalkulátorů, text. procesorů atd.) a jejich standard. použití, stanovení struktury aplikačních programů
o v oblasti identifikace uživatelů, technických prostředků, programů, dat - stanovením konvencí pro tvorbu těchto označení apod.
· kontrola dodržování stanovených harmonogramů projektu a stavu kapacit projektu, definovaných pravidel a konvencí a operativní opatření při zjištěných nedostatcích.
· Role v projektu je možné obecně rozdělit na projekční a uživatelské. Role projekční (realizační) pak mohou být dále členěny na: řídící a výkonné.
· Obsazení týmu rolemi závisí na rozsahu projektu, jeho charakteru, rozpočtu, aj.
|
Řídící projekční role |
Výkonné projekční role |
Uživatelské role |
|
· Zástupce vedení na straně dodavatele |
· Specialista na informační strategii |
· Sponzor (výkonný sponzor) |
|
· Správce dokumentace |
· Specialista na BPR dané oblasti |
· Koordinátor prací za uživatele |
|
· Plánovač |
· Implementátor |
· Klíčoví uživatelé |
|
· Vedoucí technolog |
· Vedoucí analytik / analytik |
· Koncový uživatel |
|
· Správce rozpočtu |
· Vedoucí programátor / programátor |
· Informatik |
|
· Vedoucí etapy |
· Vedoucí programátor |
· Specialisté na jednotlivé věcné oblasti |
|
· Dohled nad kvalitou |
· Administrátor databáze |
· Administrátor systému |
|
· |
· Správce sítě |
· |
|
· |
· Vedoucí tester / Tester |
· |
|
· |
· Školitel |
· |
|
· |
· Metodik (řízení, analýzy, programování) |
· |
|
· |
· Provozní podpora |
· |

· Následující tabulka obsahuje shrnutí nejvýznamnějších rolí projektu včetně definice jejich zodpovědností.
|
· Role dodavatele |
Odpovědnosti |
|
· Vedoucí projektu |
· Vytváří plán projektu |
|
· Navrhuje a řídí práci vedoucích etap |
|
|
· Určuje odpovědnosti, přiděluje a kontroluje úlohy podřízených zaměstnanců na projektu |
|
|
· Řídí postup projektu a sleduje jej věcně i finančně |
|
|
· Sleduje postup prací, jejich kvalitu a vnější vlivy |
|
|
· Informuje řídící komisi projektu |
|
|
· Kompletuje požadavky na změny |
|
|
· Zajišťování potřebné kvalifikace členů týmu |
|
|
· Analyzuje postup projektu a práci vedoucích a členů týmů |
|
|
· Zajišťuje úpravy plánu postupu projektu ve styku se zástupcem sponzora a vedoucími týmů |
|
|
· Vedoucí etapy |
· U menších projektů splývá role vedoucího etapy s Vedoucím |
|
· Vytváří plán a řídí postup etapy |
|
|
· Určuje odpovědnost, přiděluje a kontroluje úkoly podřízeným zaměstnancům v rámci jím řízené etapy projektu |
|
|
· Sleduje postup prací, jejich kvalitu a vnější vlivy |
|
|
· Informuje vedoucího projektu |
|
|
· Připravuje požadavky na změny |
|
|
· Zajišťování potřebné kvalifikace členů týmu |
|
|
· Analyzuje postup projektu a práci vedoucích a členů týmů |
|
|
· Vedoucí týmu |
· Informuje členy týmu o jejich úkolech v rámci realizace výstupů projektu |
|
· Organizuje a řídí práci členů týmu projektu |
|
|
· Komunikuje s vedoucím etapy, vedoucím projektu |
|
|
· Řešitelský tým |
· Má společný cíl |
|
· Příslušnost k týmu je bez hierarchie |
|
|
· Je hodnocen jako celek |
|
|
· Je dočasný účelově sestavený |
|
|
· Role v řešitelském týmu složené dle požadovaných charakteristických vlastností, viz Belbinovy role |
|
|
· Tým kvality |
· Tým kvality vypracovává plán kontroly kvality |
|
· Zodpovídá za průběžnou kontrolu kvality jednotlivých výstupů projektu |
|
|
· Tým kvality se schází v období přípravy milníků projektu (před odevzdáním jednotlivých výstupů) a provádí kontrolu jejich kvality |
|
|
· Zpráva o výsledcích kontroly kvality je předávána vedoucímu projektu, řídící komisi projektu |
|
|
· Tým akceptace |
· Tým akceptace musí být tvořen zástupci všech tří skupin rolí (sponzor, dodavatel, uživatel) |
|
· Vypracovává plán akceptace |
|
|
· Zodpovídá za provedení akceptačního řízení jednotlivých výstupů projektu |
|
|
· Předání zprávy o výsledcích akceptačního řízení vedoucímu projektu, řídící komisi projektu |
|
|
· Tým řízení změn |
· Pro některé projekty je sestavován zvláštní tým pro řízení změn v projektu |
|
· Tým řízení změn musí být tvořen zástupci všech tří skupin rolí (sponzor, dodavatel, uživatel) |
|
|
· Jednání týmu je vyvoláno potřebou připravit a projednat projektovou změnu |
|
|
· Výsledky práce jsou ve formě standardního dokumentu projektová změna předávány vedoucímu projektu, který je zapracovává do zpráv z průběhu projektu (etapy) |
· nejvyšší orgán projektu - je jmenována statutárními zástupci
· rozhoduje o projektu (o plánech, kapacitách, rozpočtu, smluvním řešení, změnách, jmenuje jednotlivé týmy)
· vedoucí projektu je jí přímo podřízen
· rozhoduje konsensem
· její jednání je formalizované - pozvání, zápisy…
· má maximálně 9 členů (zákazník by měl mít o jednoho více)
· složení:
o zástupci zákazníka - výkonný sponzor, vedoucí informatik, koordinátor, klíčový uživatel
o zástupci dodavatele - zástupci vedení, vedoucí projektu, vedoucí analytik, vedoucí programátor
· Technologická podpora týmové práce:
· Plánování (času, rozdělení prací,...): MS Excel,MS Word, MS Project
· Správa verzí: SourceSafe (Microsoft), ClearCase (Rational)
· Správa požadavků: ClearQuest (Rational)
Programátor, kodér – přepisuje myšlenky, které specifikoval SW designer pomocí CASE nástrojů UML do konkrétního programovacího jazyka. Následně kompiluje a ladí programový kód.
IT Developer (vývojář) – je člověk zabývající se vývojem SW. Například nového programovacího jazyka. Pracuje často s novými principy nebo experimentuje s nestandardním řešením. Umí číst dokumentaci, umí dělat analýzu, část implementace.
Konzultant – člověk orientovaný na znalost fungování vnitřních procesů v rámci SW produktu. Má znalost principů fungování částí aplikace.
SW designer – člověk navrhující modulární složení vyvíjené aplikace. Znalost algoritmů a principů zpracování dat, orientace v otázkách bezpečnosti transakcí.
SW administrátor – pracovník zabývající se údržbou nějaké SW aplikace nebo operačního systému. Poskytuje služby a vytváří prostředí pro operátory. Hlubší znalost aplikace než operátor.
Operátor SW – člověk v deno denním kontaktu s aplikací. Vkládá do aplikace data a využívá jejich výstup. Zpravidla má administrativně omezená práva k obsluze SW. Tak, aby nepůsobil destruktivně.
Tester – osoba, která zkouší a dokumentuje chování aplikace. Cílem její práce je zjistit, jestli se aplikace chová tak, jak bylo původně navrženo a je li ve shodě s dokumentací a odhaluje chyby. Poskytuje zpětnou vazbu nutnou k opravám testovaného software.
Vedoucí SW projektu – Project manager - organizační pozice, která koordinuje práci skupin analytiků, designerů, programátorů. Funguje jako interface pro komunikaci se zadavatelem. Odpovědný za řízení celého týmu.
Vedoucí programátorů – vedoucí specializované skupiny osob. Zpravidla bývalý programátor. Usměrňuje návrhy a požadavky vedoucího projektu podle skutečných možností programátorů. Tak aby se schůzek nemuseli účastnit všichni programátoři. Rozděluje úkoly.
WEB designer – návrhář struktur pro Internetové a Intranetové aplikace. Protokoly HTTP a HTTPS. Vazba na další služby jako je FTP, Email.
Architekt – člověk navrhující pevnou strukturu tvořeného SW produktu, tak aby umožnila zabezpečit definované funkční a nefunkční požadavky. Do takto stanoveného rámce následně zapadají jednotlivé komponenty systému. Výhledem je možnost rozdělení tvorby SW na dílčí skupiny, které jsou specializované na konkrétní problematiku. Například jedna skupina řeší ukládání dat do DB a jiná skupina GUI rozhraní. Navržená architektura rozhoduje o budoucích možnostech změn a doplňování aplikace o nové navazující moduly.
Enterprise architekt – člověk, který se věnuje kompletní architektuře systém. Znalost HW, SW a integrace.
Architekt HW – znalost technické infrastruktury
Architekt IS – architektura orientována směrem k aplikacím. Specifikuje nefunkční požadavky jako protokoly pro sítovou komunikaci. Mají se orientovat v rozpočtu, aby efektivně hospodařili.
IT analytik – provádí analýzu funkčních požadavků na systém
Dokumentarista – zajišťuje projektovou dokumentaci
Account manažer – stará se o zákazníka
Produktový manažer – stará se o produkt
Skupina – je trvalá
Pracovní tým – specialisté na různé věci, je na dobu projektu (začne a skončí), je možné je dělat uvnitř skupiny
Doplnění - OK
OP_II 09. Organizace softwarových týmů
Základy personalistiky a pravidla práce v softwarovém týmu, softwarové profese, organizace softwarových týmů.
Předmět: Softwarové inženýrství 2.
Literatura: Král, J: Informační systémy. Science, Veletiny 1997.
Základy personalistiky a pravidla práce v softwarovém týmu
Jedním z projevů přechodu od ruční výroby k manufaktuře je definice softwarových profesí.
Řešení velkých projektů vyžaduje spolupráci mnoha řešitelů a práci je nutno rozdělit.
Dělba práce vyžaduje organizaci týmů řešících větší softwarové projekty.
Týmy lze organizovat jako strukturované nebo nestrukturované.
Velké skupiny programátorů bývají pracovně přetížené.
Není výjimkou, že pod tlakem úkolů nezbývá čas na školení programátorů a na vývoj softwarových nástrojů – musí se dělat jen ”produktivní“ práce.
To je krátkozraká politika. Snaha o to, aby programátoři dělali jen bezprostředně potřebné programy, se nutně musí negativně projevit na jejich profesionální úrovni a na kvalitě práce.
Výsledkem je, že se problémy s nedodržováním termínů neustále zhoršují.
Pod tlakem bezprostředních úkolů ztrácejí i programátoři zájem o další růst, změny metod práce a vývoj softwarových nástrojů.
Je důležité, aby řízení projektu nedopustilo vznik takové situace.
Podíl pracovních kapacit věnovaných zvyšování profesionálních znalostí a vývoj softwarových nástrojů by u každého pracovníka měl za delší časový úsek tvořit 25% pracovní náplně.
I při vývoji softwaru platí ”spěchej pomalu“.
Softwarové profese
Manažer projektu
Vedoucí týmu
Procesní analytik
Softwarový architekt
Návrhář (rozhranní, API, grafik, …)
Vývojář (ideový programátor, druhý programátor)
Kodér
Testér
Manažer kvality
Knihovník
Specialista na jazyk, prostředí, knihovnu, …
Dokumentarista
Správce (sítě, aplikace, databáze, …)
Redaktor obsahu
Organizace softwarových týmů
Nestrukturované týmy -Dělí práci podle objemu
Mohou být organizovány jako:
„Osamělí vlci“
„Horda“
„Demokratická skupina“
Strukturované týmy -Dělí práci podle profese
Mohou být organizovány jako:
„Chirurgický tým“
„Tým hlavního programátora“
„Agilní skupina“
„Více-týmová organizace“
Kterou organizaci zvolit?
Volba organizace je dána rozsahem projektu a schopností zdrojů (liší se v rozsahu 1-20).
Pro menší rozsah lze použít nestrukturovaný tým.
Pro větší projekty se samozřejmě hodí strukturované týmy.
Máme-li dost prostředků, je nejvýkonnější chirurgický tým.
Nemáme-li, nejefektivnější může být agilní skupina, nebo demokratická skupina.
Na větší projekty je třeba více-týmová organizace (pravidlo 7±2).