Programování

Řiďte agilní tým pomocí XPlanner

Rozsah, design, sestavení, testování, dodání, omluva. Toto jsou často vyšlapané kroky tradiční inženýrské metodiky při aplikaci na rtuťový svět softwarových projektů. Jako softwarový vývojář jste pravděpodobně dobře obeznámeni s tímto „konečným“ požadavkem na systém, který se zdá kačit a tkát jako bojovník o ceny. Možná jste pracovali na vývojovém projektu, jen abyste se objevili o měsíce (nebo roky) později, abyste čelili zákazníkovi, který se zdá být hluboce zklamaný, že jeho skutečné potřeby nebyly splněny. Možná jsou vaši vrstevníci v bodě, kdy pečlivý plán rozvoje dlouhého dosahu, který jim byl předložen, vzbuzuje pocit hrozící zkázy. Sečteno a podtrženo - váš tým je připraven na agilní vývoj, ale byl váš tradiční nástroj pro správu týmu pevně propojen s tradičním řízením týmu?

Agilní metodiky mohou být lehké, ale jsou velmi disciplinované. Jakýkoli nástroj, který vás podporuje při plánování a sledování rychlých dodávek s důvěrnou spoluprací se zákazníky, může být cenným doplňkem vašeho arzenálu. Dobrou zprávou je, že agilní tým má nyní k dispozici několik takových nástrojů. Tento článek podrobně popisuje skutečné zkušenosti s řízením agilního vývojového týmu pomocí jednoho z těchto nových nástrojů, open source XPlanner.

XPlanner je webová aplikace Java určená k podpoře správy týmu podle extrémní metodiky programování (XP). Zjistili jsme však, že tento nástroj je dostatečně flexibilní, aby poskytl cennou podporu pro další agilní přístupy hlavního proudu (např.Scrum) v zápalu realizace projektu. Přestože je XPlanner nekomplikovaný, poskytuje užitečný nástroj na podporu vašeho týmu, ať už máte zkušenosti nebo se právě pustíte do obohacujícího světa agilního vývoje softwaru.

Tradiční vs. agilní nástroje pro správu týmu

Tradiční nástroje pro správu týmu (například Microsoft Project) jsou založeny na strukturách rozpisu práce, které se dívají daleko do budoucnosti projektu. Ke správě „kritické cesty“ k finální dodávce se používá plánované přidělování zdrojů a pečlivé sledování odchylek od výchozích hodnot. Aplikace těchto nástrojů vyžaduje značné počáteční plánování, závislost na přísných úkolech a stabilní základnu požadavků. Je pravděpodobné, že významné změny rozsahu nebo požadavků si vyžádají významné revize modelu. Tyto tradiční nástroje jsou tedy nejvhodnější při plánování cesty z bodu A do bodu B za předpokladu malé variace kurzu. Naproti tomu agilní projekty jsou zaměřeny na očekávání změn, takže nelze předpokládat, že B bude dokonce konečným cílem.

Při porozumění kultuře agilního projektu je užitečné vzít v úvahu principy agilního rozvoje, které zastávají autoři Agilního manifestu:

  • „Jednotlivci a interakce nad procesy a nástroji
  • Pracovní software přes komplexní dokumentaci
  • Spolupráce se zákazníky při vyjednávání smluv
  • Reakce na změnu v průběhu sledování plánu “

    (Kent Beck a kol., 2001)

Agilní projekty tedy výslovně opouštějí dlouhodobé plánování ve prospěch důvěrného zapojení zúčastněných stran, jasného zaměření na funkce vysoké hodnoty a včasného a častého vydání použitelného softwaru. Základním cílem je jednoduše a efektivně poskytovat hodnotu tváří v tvář neustálým změnám. Aby byl plánovací a sledovací nástroj v tomto kontextu cenný, musí být v souladu s těmito hodnotami.

Plánování a sledování projektů pomocí XPlanner

XPlanner je agilní softwarový nástroj pro správu projektů, který je k dispozici pod GNU Lesser General Public License (což je „free, as in beer“, v open source lingo). Balíček se nasazuje jako webová aplikace, která umožňuje členům vašeho týmu a zúčastněným stranám projektu dostat se na palubu pomocí jejich oblíbených webových prohlížečů. Po nakonfigurování budete moci plánovat a sledovat různé aspekty dodávek vašeho agilního projektu prostřednictvím jednoduchého webového rozhraní.

Rozhodující je, že z agilního hlediska jsou účastníci projektu schopni přímo spolupracovat tím, že přispívají svými informacemi do společného úložiště projektu. Tato spolupráce může zahrnovat zákazníky popisující požadavky na projekt ve formě uživatelských příběhů, které pak vývojáři používají k podrobnému popisu a sledování úkolů potřebných k uskutečnění těchto příběhů.

Kromě podpory této úrovně spolupráce se zákazníky poskytuje XPlanner další užitečné funkce, které podporují agilní přístup. Patří mezi ně funkce, jako je jednoduchý mechanismus pro definování iterací projektu; intuitivní rozhraní pro odhadování a sledování úsilí jednotlivců; a grafy pro publikování metrik týmu. Zde je pojednáno o XPlanneru, který byl nasazen k podpoře dodávky systému elektronického obchodu a pracovního toku skládajícího se z několika skupin zúčastněných stran a týmu sedmi vývojářů.

Stahování a instalace

XPlanner je čistá Java aplikace, kterou lze nasadit v jakémkoli vývojovém prostředí J2SE 1.4 vybaveném Apache Ant a vhodným servletovým modulem. Jako servletový motor jsme vybrali Apache Tomcat; měl by však fungovat jakýkoli motor kompatibilní se servletem 2.3 (nebo novější verzí). XPlanner se dodává jako archiv souborů (zip nebo tar.gz), který musíte před nasazením a použitím nástroje rozbalit a sestavit.

Je vyžadován povinný konfigurační krok, protože musíte nastavit svou oblíbenou databázi, která bude použita jako úložiště informací o projektu. Protože XPlanner používá pro interakci s databází vrstvu objektu / relační perzistence Hibernate, máte možnost použít pro své úložiště projektu libovolnou databázi podporovanou Hibernate. Dodávanou možností je odlehčená databáze Java Hypersonic (nyní HSQLDB); jako naši databázi úložišť jsme však použili Oracle 9i. Abychom tuto databázi nakonfigurovali, museli jsme soubor upravit xplanner.properties odkomentováním již definovaných vlastností Oracle. Také jsme potřebovali upravit build.xml soubor obsahující ovladač tenké databáze Oracle. Po nakonfigurování můžete sestavit nasazení XPlanneru. To zahrnuje provedení Ant k vytvoření nasazitelného webového archivu (WAR) následujícím způsobem:

mravenec install.db.schema mravenec build.war 

Nasazení výsledného souboru webového archivu (xplanner.war) do vašeho servletového modulu dle výběru a poté přejděte na URL // your-server: your-port / xplanner / (pomocí výchozího uživatele „sysadmin“ a hesla „admin“) a zkontrolujte výsledky!

Integrace s vaším ekosystémem

Většina vývojových prostředí již obsahuje systém pro sledování chyb, fóra pro spolupráci, bezpečnostní systémy, úložiště standardů atd. Přestože je hodnota XPlanneru užitečná jako samostatný nástroj, lze ji vylepšit pomocí jednoduchých a výkonných integračních funkcí. XPlanner zahrnuje například schopnost podporovat vykreslování vývojářského projevu v poli popisu, například chyba: 1001 jako odkaz na //mybugzilla/show_bug.cgi?uid=1001. Toho lze dosáhnout jednoduchým přidáním twiki.scheme.bug = // mybugzilla / show_bug.cgi? id = do xplanner.properties soubor. Stejnou techniku ​​lze použít i pro jiné webové nástroje, jako je viewcvs (xplanner.properties ukazuje některé další příklady). XPlanner také obsahuje pokročilý formátovač wiki (v našem projektu se nepoužívá), který umožňuje automatické propojení s položkami wiki. Další informace o rozšířeních XPlanner najdete v Zdrojích.

Ve většině organizací vždy nějaká forma adresářového serveru kompatibilního s LDAP (lightweight directory access protocol) poskytuje centralizované úložiště uživatelských účtů zabezpečení. Například v rámci organizace sponzorující náš projekt tomuto účelu sloužil staromódní, ale funkční server LDAP (Microsoft Active Directory také do značné míry podporuje protokol LDAP). Bylo osvěžující najít XPlannerův jednoduchý XPlannerLoginModule snadno se integruje s LDAP. To zahrnovalo aktualizaci xplanner.properties jak následuje:

-> Komentovat výchozí zabezpečení # xplanner.security.login.module = com.technoetic.xplanner.security.XPlannerLoginModule

-> Odkomentujte a upravte položky LDAP z ... xplanner.security.login.module = com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ... to: xplanner.security.login.option.roleSearch = (uniqueMember = {0})

-> Přidat položky pro vyhledávání uživatelů xplanner.security.login.option.userBase = ou = lidé, o = osoba

-> A prázdné hodnoty pro xplanner.security.login.option.userPattern = xplanner.security.login.option.userPassword =

Díky rychlému opětovnému sestavení a nasazení bylo zabezpečení ověřování XPlanner plně integrováno. Jedinou nevýhodou bylo, že do XPlanneru bylo třeba výslovně přidat uživatelská jména, ale problémem s firemním helpdeskem se stalo přinejmenším potíže s hesly a členstvím ve skupinách.

Tým, seznamte se s XPlannerem

XPlanner prohlíží projekt podle iterací, příběhů uživatelů a úkolů. Jak předepisuje agilní paradigma, jakýkoli projekt řízený XPlannerem je plánován a sledován podle postupné řady iterací. Každá iterace se skládá z počátečního data, koncového data a kolekce uživatelských příběhů, které mají být vytvořeny z příběhu do reality v tomto časovém rámci.

Příběh uživatele je hlavní koncepční nástroj používaný v agilním vývoji ke komunikaci potřeb zákazníků s vývojáři softwaru. Jakmile je uživatelský příběh přiřazen k aktuální iteraci (jako součást plánování vydání prostřednictvím XPlanneru), vývojář hledá další podrobnosti pro každý příběh pomocí spolupráce s uživatelem (snad tváří v tvář). Výsledkem tohoto kroku je podrobná řada vývojových úkolů, z nichž každý vývojář zaregistruje v XPlanneru proti příslušnému uživatelskému příběhu.

Náš projekt pracovního postupu elektronického obchodování jsme si vybrali tak, aby běžel s měsíčními iteracemi, z nichž každý se skládal z přibližně 10 příběhů a každému příběhu bylo přiřazeno 10 až 15 úkolů.

Sklizeň uživatelských příběhů

Každý příběh uživatele pro iteraci projektu by měl být krátkým popisem uživatelského zážitku zaměřeného na výsledek, jak byl sdělen v první osobě (např. „Poté vyhledávám na základě barvy ...“). Tato zkušenost je vytvořena uživatelem, který si představuje ideální budoucí produkt v akci, takže si uživatelský příběh můžete představit jako pozitivní vizualizaci softwaru! Cílem každé vizualizace je poskytnout vývojáři softwaru dostatek informací k odhadu úsilí potřebného k uskutečnění tohoto příběhu.

XPlanner katalogizuje sbírku uživatelských příběhů vašeho projektu, přičemž zaznamenává odhady zákazníků, sledovačů, priorit a úsilí proti každému z nich. Hlavním problémem, který často nacházíme, je získávání vysoce kvalitních uživatelských příběhů z myslí uživatelů systému. To určitě platilo pro náš projekt, protože se jednalo o významný posun paradigmatu od požadavků na tuhý řez / podsekci, na které byli uživatelé zvyklí. Určitě však pomohla schopnost používat XPlanner ke správě příběhů tak, aby je mohly snadno vidět a aktualizovat zúčastněné strany a aby se s nimi rychle obchodovalo v dané iteraci i mimo ni. Jednou pěknou, ne-li funkční funkcí XPlanneru je autentický dojem, který dává uživateli příběh, který zobrazuje každý na obrazovce jako podobnou kartu s indexem 3 x 5, jak je znázorněno na obrázku 1.

Odhadněte a zaznamenejte úsilí

Agilní vývoj předepisuje, že vývojáři provádějí vlastní stanovení cílů, což zahrnuje analýzu příběhu uživatele a definování technických úkolů potřebných k realizaci tohoto příběhu. Vývojář by měl mít možnost přidávat další úkoly nebo upravovat stávající úkoly, jakmile budou k dispozici další podrobnosti příběhu. XPlanner tuto flexibilitu podporuje tím, že poskytuje vývojářům plný přístup k definování a úpravám úkolů. Každému úkolu lze přiřadit typ, například dluh, vlastnost nebo defekt, který by charakterizoval druh prováděné práce (například dluh je úkol pro vyčištění technického „cruftu“, který zbyl v systému z předchozí iterace). Úkoly jsou také specifikovány s dispozicí (plánovanou nebo neplánovanou), přijímajícím vývojářem, popisem práce a odhadem počtu ideálních hodin potřebných k provedení tohoto úkolu.

XPlanner umožňuje vývojářům snadno zaznamenat, kolik práce bylo investováno do daného úkolu, nebo aktualizovat původní odhad úsilí (originál je stále uložen). Upozorňujeme, že odhady intenzity, jak již bylo uvedeno, by měly být specifikovány v ideál hodin. Ideální hodina je hodina, ve které vývojář nezažije absolutně žádné přerušení.

Vývojáři by také měli zaznamenat počet ideálních hodin, které investují proti danému úkolu. Pokud povzbudíte své vývojáře, aby poctivě zaznamenávali ideální hodiny (tím, že nebudete vědět, kam jde čas), budete moci z XPlanneru extrahovat některé užitečné metriky (popsané níže). Zjistili jsme například, že na našem projektu trvalo dosažení ideální hodiny přibližně 1,4 uplynulého času. Tyto informace lze poté použít k poskytnutí upřesněného odhadu pro následné iterace - což pomáhá dodržet sliby týmu a očekávání zákazníka ve stejném prostředí.

Metriky a plánování pro další iteraci

Jste v polovině iterace a šéf chce vědět, „jak vypadáme“. Dobře opotřebovanou odpovědí na tuto otázku je „Jsme asi na 80 procentech cesty tam.“ Samozřejmě se zdá, že posledních 20 procent vždy trvá mnohem déle, než by mělo - posledních 20 procent je softwarovým ekvivalentem nudné zeleniny na večeři, kterou jste nechávali až do konce.