Řízení softwarových projektů – materiály k 2.lekci

V úterý 25.10. se za vysoké účasti uskutečnila druhá lekce kurzu. Více informací naleznete zde a stále se ještě můžete dodatečně přihlásit zde, byť příští lekce už je poslední. Druhá lekce se věnovala agilním způsobům řízení projektu pomocí TFS. Pokud vám utekla první lekce, kompletní materiály jsou zde.

LiveMeeting

Odkaz na LiveMeeting jste měli dostat hned po registraci, navíc jsem ještě v pondělí ráno rozesílal upozorňovací e-mail všem zaregistrovaným. Pokud jste e-maily nedostali, na vině jsou zřejmě příliš striktní spamové filtry. Ať tak či onak, link je stejný pro všechy tři lekce, a to:
https://www.livemeeting.com/cc/microsoft/join?id=8KSFTN&role=attend

Materiály a záznam

Prezentace ke stažení

Záznam ke stažení nebo shlédnutí

Odpovědi na položené otázky

Otázky, stejně jako svoje odpovědi, jsem si dovolil jazykově a stylisticky upravit, případně spojit dohromady.

Je definováno nějaké doporučení pro délku iterace nebo se to liší od typu projektu?
TFS ani dostupné šablony to určitě nijak nepředjímají. Pokud vezmu literaturu k různým metodikám, nejčastější doporučení je cca 4 týdny.

Setkal jste se s TFS šablonou pro FDD (Feature Driven Development)? Případně která šablona je použitelná?
O nějakých šablonách jsem slyšel, ale osobní zkušenost nemám. Tyto šablony bývají zpravidla nabízeny v balíku s konzultačními službami, nevím, zda je to cesta, kterou se chcete vydat. Doporučil bych asi spíše jít cestou modifikace MSF Agile šablony, kterou lze relativně snadno “napasovat” na řadu konkrétních metodik.

Je možné použít pro jeden TFS projekt např. dvě různé sady šablon? Pro vytvoření úplně nové aplikace je zpravidla potřeba použít "konzervativnější" metodiku, pro další drobný rozvoj je zase vhodnější spíše "agilnější" metodika.
Při vytváření týmového projektu volíte šablonu (v podstatě konfiguraci) týmového projektu. Tuto konfiguraci lze poté měnit, ale žádná operace “přepnutí” k dispozici není. Doporučuji použít šablonu MSF Agile, která je velmi flexibilní a můžete kolem ní nabalit formálnější postupy (MS Project) i postupovat zcela agilně?

Jak člen týmu efektivně zjistí všechny své úkoly (TASKY), které má napříč všemi projekty? Dejme tomu že mají stejné šablony? Je nějaké vhodné místo pro vytvoření takovéhoto dotazu?
Standardní dotazy v týmových projektech jsou filtrovány na aktuální týmový projekt. Tuto filtrovací podmínku lze snadno odstranit. Pokud jde o uložení takového dotazu, je možné je uložit kamkoliv, např. si můžete udělat “dummy” projekt pro uložení takovýchto dotazů anebo je ukládat jako .wiq soubory a ty dát někam do sdílené složky apod.

Jaké jednotky se zadávají do remaining work? Jsou to story pointy?
Story pointy slouží pro zadání relativní pracnosti pro požadavky (User Story, PBI, Scenario, …) – při prioritizaci není přesnější odhad k dispozici. Completed/Remaining Work je udáván v hodinách a je už pro konkrétní úkol (Task).

Je do budoucna počítáno s vytvářením adresářů v Team Queries podle vytvořených iterací? Existuje v současné době řešení, jak to vyřešit? Copy/Paste znám :-(
Neslyšel jsem o tom. Doporučuji udělat si jednoduchou utilitu, která složku ve smyčce nakopíruje a opraví cestu k iteraci v definici všech query. Koukněte třeba sem.

U SCRUMu tedy není možno použít Excel nebo Project pro editaci a WI?
Excel a Project pro editaci work itemů lze použít vždy bez ohledu na použitou šablonu. Na MSF Agile jsou vázané pouze plánovací worksheety s výpočty a statistikami nad editovanými položkami, které jsou součástí šablony MSF Agile. Pokud byste je chtěli použít s jinými šablonami, budete zřejmě muset tyto worksheety upravovat.

Je možné použí TFS s AX 2012 (např. version management)?
Odpověď jiného účastníka Martina Drába: Axapta podporuje TFS version control od verze 2009, verze 2012 umožňuje linkovat work item k changesetům. Pro AX2009 jsem rozšíření pro work itemy doprogramoval, viz https://dev.goshoom.net/software/ax-tfs-workitems/.

Jsme malý tým o dvou lidech, plánujeme u nás zavést TFS. Můžeme na Windows 2008 Server Foundation CZ instalovat TFS? Rádi bychom také využili SharePoint Foundation, bude to možné na Foundation Server instalovat?
Praktickou zkušenost nemám, ale žádnou technickou ani licenční překážku jsem nezjistil.

Kdy je podle Vás indikováno založení nového týmového projektu? V literatuře je doporučeno nezakládat moc týmových projektů?
Určitě platí “čím méně, tím lépe”. Dobré pravidlo je “co má společný časový plán vydávání verzí, patří do jednoho projektu” a “všechny verze téhož produktu patří do jednoho týmového projektu”.

Poskytuje TFS integraci s Outlookem na úrovni work itemů?
Pokud máte na mysli možnost editace work itemů přímo v UI Outlooku, tak to umí produkty třetích stran, které snadno najdete na webu. TFS jako takový umí pouze posílat linky a další údaje o work itemech Outlookem, případně využívat Outlook k notifikacím.

Můžete prosím vysvětlit rozdíl mezi User Story a Work Item?
Work Item je jakákoliv sledovaná položka (požadavek, chyba, úloha, testovací případ, …). User Story je název pro konkrétní typ work itemu, který se používá pro evidenci požadavků v šabloně MSF Agile.

Je někde veřejně dostupný reálný týmový projekt s reálnými user-stories, tasky, bugy, iteracemi etc.? Třeba z nějakého open-source projektu.
Také by se mi hodil, ale bohužel o žádném takovém nevím. Pokud si stáhnete VHD s TFS k vyzkoušení, nějaká vzorová data v něm jsou, i když zdaleka ne dokonalá (je ke stažení na této stránce úplně dole)

Nebylo by možné poskytnout pozvánku na “Preview Team Foundation Server on Windows Azure”?
O kód pro TFS Preview lze požádat na adrese https://tfspreview.com/_CodeSignup. Bohužel počet kladně vyřízených žádostí je limitován dostupným hardwarem. V dané fázi se neplánuje přílišná expanze, tu lze očekávat až s Beta verzí.

Jaké je doporučení pro upgrade na šablonu Agile 5.0?
Předpokládám, že máte na mysli přechod z verze TFS 2008 na šablonu verze 2010. Při upgradu se do existujících projektů (naštěstí) nijak nezasahuje, případné nové věci musíte přidat ručně nebo skriptem pro každý týmový projekt. Velmi podrobný popis je zde, kratší popis zde.

Je někde (mimo TFS) dostupný seznam všech reportů, které obsahuje TFS? Jak pro agilní šablonu, tak pro tradiční.
Byl jsem trochu skeptický, k velkému překvapení jsem ale našel vynikající popis všech reportů. Zde je pro Agile a zde pro CMMI. Pro SCRUM šablonu jsem v podobné kvalitě nenašel.

Kdo plánuje úlohy do iterace? Tým společně nebo jedna osoba? Kdo zadavá pracnost úloh? Vývojář?
TFS toto nijak nepředepisuje, závisí na konkrétní metodice a na tom, jak je v dané firmě aplikována. Např. v metodice SCRUM se odhadované pracnosti úloh zadávají na společném plánovacím meetingu a měl by to být víceméně konsensus v týmu. Reálnou pracnost pak samozřejmě zadává ten, kdo práci vykonal, tedy nejčastěji vývojář.

Pokud mám šablonu CMMI jaká je ekvivalence pro product-planning a iteration-backlog?
Ekvivalentní plánovací sešity tam nejsou, přece jenom se předpokládá výrazně formálnější přístup pro plánování. Více informací zde.

Právě jsme dokončili migraci TFS z jednoho serveru na druhý. Na klientovi bych potřeboval změnit veškerá mapování lokálních adresářů na nový server. Jde to udělat nějak automaticky, nebo to musím projet ručně?
Můžete to zkusit naskriptovat pomocí tf.exe, ale nevím, zda to nebude rychlejší projet ručně. Případně nastavit na jednom klientovi a použít Copy/Paste.

Jak se řeší při buidu závislost na knihovnách, které jsou v jiných týmových projektech? Je to vůbec možné?
Buď můžete udělat projektovou závislost – pak uděláte Branch konkrétní verze z projektu knihovny do vašeho projektu a kompilujete knihovnu se svým projektem anebo uděláte takové mapování workspace, aby vzdy aktualni kódy knihovny byly v adresáři relativním k vašemu projektu (..KnihovnyKnihovna1). Anebo binární závislost, kdy na předem dohodnuté místo v source controlu dáváte zkompilované knihovny a opět tak, aby byly vždy na dohodnuté relativní cestě (..BinarniKnihovny) – mohou být aktualizovány buď ručně, anebo automaticky jako součást buildu knihoven. Třetí možností je nespoléhat na TFS a rozjet si firemní NuGet server pro závislé knihovny (vlastní i cizí) – není to nic složitého.

Těším se na shledanou příští týden, kdy se budeme věnovat tradičnímu projektovému řízení za pomoci MS Projectu a Project Serveru.

Michael