Plánování a řízení iterativně vedeného softwarového projektu. 
Wednesday, May 29, 2013
4:52 PM
Plánování a řízení iterativně vedeného softwarového projektu.
Nějaký harmonogram projektu je nutný vždy, má pevné body, je nutné rozdělit zdroje…
Je nutné sledovat plán a reagovat na nečekané události
Začátku projektu – rozvržení celého projektu, hlavní cíle, odhady
Na začátku iterace – co se bude v dané iteraci provádět
V průběhu iterace se pokud možno neplánuje vůbec
Obecně: WBS -> PERT -> Gantt
Adaptivní plánování – detailně plánovat je možné jen to, na co máme data – tzn. V kroce N můžu plánovat jen na N+1. 
Stupně volnosti při plánování jsou 4: čas, zdroje, kvalita, funkčnost. Nejlépe se krátí ta funkčnost, ostatní faktory jsou víceméně neměnné.
Plán projektu – vize, milníky
Iterace
Plánovací schůzka
Výběr funkčnosti, odhadování, commitment
Sledování průběhu
Burndown chart, případné přeplánování pokud se nestíhá
Retrospektiva
Hodnocení, úpravy procesu, project velocity
Plánovací schůzka - sledování průběhu - retrospektiva
Řízení
Iterace – plánování na začátku iterace, mají fixní deadline.
Fáze vývoje: inception, elaboration, construction, transition
Řízení je možné dvěma způsoby:
Řízení riziky
Snažíme se nejprve eliminovat největší rizika, proto je plánujeme co nejdříve
Řízení zákazníkem
Necháme na zákazníkovi, aby nám řekl, co potřebuje jako první – jsme ale omezeni délkou iterace, tzn. Můžeme udělat jen to, co za tu iteraci stihneme
Při řízení je důležitý backlog, na základě kterého se nám generuje burndowsn chart, který nám říká, jak na tom jsme – jestli práce stagnuje, přibývá, nebo uspokojivě ubývá.
Nějaký plán je nutný vždy
Harmonogram (termíny)
Přiřazení zdrojů
Sledování plánu nutné vždy
Kontrola postupu
Reakce na změny
Způsoby plánování
Prediktivní / adaptivní
Rizika / priority / ROI
Obecně
Typické pro sekvenční postup
WBS (Work Breakdown Structure) -> PERT (Program Evaluation and Requirements Technique) -> Gantt
PERT
From <[link]> 
PERT - graf činností a jejich závislostí, hledá se kritická cesta
From <[link]> 
Gantt - graf, který ukazuje čas potřebný k dokončení projektu
Neznalost odhadů v době, kdy jsou potřeba
Měnící se požadavky -> rozsah projektu
Základní přístup
Detailně plánovat možné jen to, na co máme data
Přesnější odhady a plán až po nějaké době
Plán na N+1 krok zpřesněn (adaptován) poznatky z N
Globální (pevné) body v plánu dány/určeny předem
Stupně volnosti při plánování
Klasicky: čas, zdroje (cena), kvalita
Obtížně měnitelné, odhadovatelné
Kvalita obtížně řiditelná
Agilně: + funkčnost
Nejlepší faktor pro řízení projektu
Funkčnost je totiž na rozdíl od předchozích nejsnáze měnitelná
Vhodná granularita -> snadné a přesné odhady
Plánování podle rizik / priorit
Řízení riziky (rizika jsou přímá a nepřímá - ty nepřímá téměř nelze ovládat)
Vyhodnotit rizikové faktory projektu
Začít částmi funkčnosti/designu s největší mírou rizika
Řízení prioritami klienta
Výběr funkčnosti je na zákazníkovi
Množství funkcí je omezeno délkou iterace
Umožňuje pružně reagovat na aktuální potřeby
Okamžiky plánování
Na počátku projektu
Na začátku každé iterace
Seznam aktivit (úkolů)
Odhadování pracnosti -> časů, zdrojů
Vyřazení dle priorit (rizika, klient)
V průběhu iterace
… se pokud možno neplánuje
Podklady
Rozpad prací WBS
Zdroje a jejich alokace
PERT graf - návaznosti, kritická cesta
Gantt chart - čas, zdroje
Dokumenty
Vize a rozsah projektu/nabídka
Plán projektu
Plán pro řízení rizik
Plán iterace
Plánování a řízení iterací
Iterace je miniaturní projekt
Cíl = podmnožina požadavků na kompletní produkt
Zachyceno v plánu iterace
Backlog
Bugtracker
Dokument
Planning Game
Pieces: The basic playing piece is the UserStory. Each Story is written on an IndexCard. Stories have a value and a cost, although this is a little tricky because the value of some Stories depends on the presence or absence of other Stories (see StoryDependenciesInXp), and the values and costs change over time. 
Goal: The goal of the game is to put the greatest possible value of stories into production over the life of the game. 
Players: The players are Business and Development. 
From <[link]> 
Pomocné metody
Dot voting
Backlog grooming
Pravidla
Pevné datum konce, timebox
Globální řízení iterativního projektu
Výchozí bod: vize produktu
Oddělené sekvenční fáze reprezentující „klasické“ inženýrské disciplíny. Každá fáze má jasné rozdělení cílů a výsledků. Skládá se z 1 až N iterací. Fáze:
Zahájení (1 – 2 iterace)
analytické činnosti, validace vize zákazníkem
Projektování (2+ iterace)
analytické a designérské činnosti, ověřování prototypy, implementace
Konstrukce (N iterací)
designérské a programátorské činnosti, změnové řízení, testování a ověřování
Nasazení (1 – 2 iterace)
Integrační a konzultační činnosti, ověřování provozem, náběh uživatelské podpory
Milníky voleny na základě stupních přesnosti (produktu) a míře rizika
LCO (Lifecycle Objectives)
Srozumění s rozsahem, cenou, harmonogramem
Souhlas s požadavky a jejich klíčovostí
Navrhovaný postup vývoje souhlasí
Rizika identifikována a řešení známo
Artefakty
Vize produktu, business case
Seznam rizik a strategie jejich řešení
Slovník pojmů a přehled klíčových požadavků
Koncept technického řešení (architektura + prototypy)
Plán projektu
Popis procesu a infrastruktury
LCA (Lifecycle Architecture)
Vize a klíčové požadavky jsou stabilní
Testy ověřily, ze architektura řeší rizikové požadavky/faktory
Jsou přesnější odhady pracnosti, na nich postaveny plány
Nástroje a postupy pro realizaci jsou v provozu
Stakeholders: vize realizovatelná, spotřebované zdroje adekvátní
Artefakty
Vize produktu
Dokument specifikace požadavků
Seznam rizik a strategie jejich řešení
Popis architektury, validační testy
Plán projektu, popis infrastruktury
IOC (Initial Operational Capability)
Je hotová beta verze produktu
Implementace je dokumentovaná, existují používané testy
Je rozpracována uživatelská dokumentace
Jsou aktualizovány popisy návrhu, datového modelu, požadavků
Artefakty
Testovací sady + reporty
Architektura (aktualizována) + popis implementace
Uživatelská příručka
GA (General Availability)
Uživatel je spokojen s produktem
Stakeholders jsou spokojeni s produktem
uvést produkt do rutinního provozu – „krabice“ s produktem, website launch, raut :-)
support team v provozu
Artefakty
Release produktu
Podpůrné materiály (uživatelská dokumentace)
Baseline kompletní konfigurace release
Charakter iterací dle fáze
Artefakty dle fáze:
From <[link]> A