Hantera det smidiga teamet med XPlanner

Räckvidd, design, bygg, testa, leverera, be om ursäkt. Det här är de ofta trampade stegen i en traditionell ingenjörsmetodik när de tillämpas på mjukvaruprojektens kvicksilvervärld. Som mjukvaruutvecklare känner du förmodligen väl till det "slutliga" systemkravet som verkar anka och väva som en prisfighter. Kanske har du jobbat med ett utvecklingsprojekt bara för att komma fram månader (eller år) senare för att möta en kund som verkar djupt besviken över att dess verkliga behov inte har uppfyllts. Kanske är dina kamrater vid den punkt där en noggrann utvecklingsplan för lång räckvidd placeras framför dem ger en känsla av överhängande undergång. Slutsatsen - ditt team är redo att gå med smidig utveckling, men har ditt traditionella teamhanteringsverktyg varit hårt kopplat till traditionell teamhantering?

De smidiga metoderna kan vara lätta, men de är mycket disciplinerade. Alla verktyg som hjälper dig att planera och spåra snabba leveranser med intimt kundsamarbete kan göra ett värdefullt tillskott till din arsenal. Den goda nyheten är att flera sådana verktyg nu är tillgängliga för det agila teamet. Den här artikeln beskriver en verklig erfarenhet av att hantera ett smidigt utvecklingsteam med hjälp av en av denna nya typ av verktyg, öppen källkod XPlanner.

XPlanner är en Java-webbapplikation utformad för att stödja teamhantering enligt extrem programmeringsmetodik (XP). Vi har dock funnit att det här verktyget är tillräckligt flexibelt för att ge värdefullt stöd för andra vanliga agila tillvägagångssätt (t.ex. Scrum) under projektets leveransvärme. Även om det inte är sofistikerat, tillhandahåller XPlanner ett praktiskt verktyg för att stödja ditt team oavsett om du har erfarenhet av eller bara startar in i den givande världen av smidig programutveckling.

Traditionella mot agila teamhanteringsverktyg

Traditionella verktyg för teamhantering (till exempel Microsofts projekt) baseras på arbetsstrukturer som ser långt in i ett projekts framtid. Planerad tilldelning av resurser och ett noggrant öga på variationen till baslinjen används för att hantera den "kritiska vägen" till slutlig leverans. Tillämpningen av sådana verktyg innebär betydande planeringsinsatser, styva uppgiftsberoenden och en stabil bas av krav. Betydande ändringar av omfattning eller krav kommer sannolikt att kräva betydande omarbetningar av modellen. Således är dessa traditionella verktyg mest lämpliga när du planerar en resa från A till B, förutsatt att det är lite variation i kursen. Däremot är agila projekt inriktade på att förvänta sig förändring, vilket inte antar att B ens är den slutliga destinationen.

För att förstå kulturen i det agila projektet är det användbart att betrakta principerna för smidig utveckling som förespråkas av författarna till Agile Manifesto:

  • "Individer och interaktioner över processer och verktyg
  • Arbetsprogramvara över omfattande dokumentation
  • Kundsamarbete över kontraktsförhandlingar
  • Svarar på övergång efter en plan "

    (Kent Beck et al., 2001)

Således överger agila projekt uttryckligen långsiktig planering till förmån för intimt intressentengagemang, tydligt fokus på högvärdiga funktioner och släpp av användbar programvara tidigt och ofta. Det underliggande målet är att enkelt och effektivt leverera värde inför konstant förändring. För att ett planerings- och spårningsverktyg ska vara värdefullt i detta sammanhang måste det överensstämma med dessa värden.

Projektplanering och spårning med XPlanner

XPlanner är ett smidigt verktyg för projekthantering som finns tillgängligt under GNU Lesser General Public License (vilket gör det "gratis, som i öl", i öppen källkodsspråk). Paketet distribueras som en webbapplikation, vilket gör att dina teammedlemmar och projektintressenter kan komma ombord med sina favoritwebbläsare. När du är konfigurerad kommer du att kunna planera och spåra olika aspekter av ditt agila projekts leverans via ett enkelt webbgränssnitt.

Avgörande, ur det agila perspektivet, kan projektdeltagare direkt samarbeta genom att bidra med sin information till det gemensamma projektförvaret. Detta samarbete kan involvera kunder som beskriver projektkrav i form av användarberättelser, som utvecklare sedan använder för att detaljera och spåra de uppgifter som krävs för att göra dessa berättelser till verklighet.

Förutom att stödja denna nivå av kundsamarbete, erbjuder XPlanner andra praktiska funktioner som stöder det smidiga tillvägagångssättet. Dessa inkluderar funktioner såsom en enkel mekanism för att definiera projektets iterationer; ett intuitivt gränssnitt för individer som uppskattar och spårar insatser; och diagram för publicering av lagstatistik. XPlanner diskuteras här eftersom den användes för att stödja leveransen av ett elektroniskt handels- och arbetsflödessystem bestående av flera intressentgrupper och ett team med sju utvecklare.

Nedladdning och installation

XPlanner är en ren Java-applikation som kan distribueras i alla J2SE 1.4-utvecklingsmiljöer utrustade med Apache Ant och en lämplig servletmotor. Vi valde Apache Tomcat som servletmotor; dock bör alla motorer som är kompatibla med Servlet 2.3 (eller en nyare version) göra det. XPlanner skickas som ett filarkiv (zip eller tar.gz) som du måste packa upp och bygga innan du distribuerar och använder verktyget.

Ett obligatoriskt konfigurationssteg är involverat eftersom du behöver konfigurera din favoritdatabas som ska användas som förvar för projektinformation. Eftersom XPlanner använder lagret Hibernate-objekt / relationspersistens för databasinteraktion, har du möjlighet att använda valfri Hibernate-databas för projektförvaret. Det medföljande alternativet är den lätta Java-databasen Hypersonic (nu kallad HSQLDB); dock använde vi Oracle 9i som vår databas. För att konfigurera denna databas var vi tvungna att redigera filen xplanner.propertiesgenom att avmarkera de redan definierade Oracle-egenskaperna. Vi behövde också ändra build.xmlfilen för att inkludera Oracle tunn databasdrivrutin. När du väl har konfigurerat kan du bygga din XPlanner-distribution. Detta innebär att Ant körs för att producera ett distribuerbart webbarkiv (WAR) enligt följande:

ant install.db.schema ant build.war 

Distribuera den resulterande webbarkivfilen ( xplanner.war) till din servletmotor som du väljer och bläddra sedan till URL // din server: din-port / xplanner / (med standardanvändaren "sysadmin" och lösenordet "admin") för att inspektera resultaten!

Integrering med ditt ekosystem

De flesta utvecklingsmiljöer innehåller redan ett bugspårningssystem, samarbetsforum, säkerhetssystem, standardförvar, etc. Även om det är användbart som ett fristående verktyg kan XPlanners värde förbättras med dess enkla och kraftfulla integrationsfunktioner. XPlanner inkluderar till exempel möjligheten att stödja rendering av utvecklare tala i ett beskrivningsfält, till exempel bug: 1001 som en länk till //mybugzilla/show_bug.cgi?uid=1001. Detta kan göras genom att helt enkelt lägga twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=till xplanner.propertiesfilen. Samma teknik kan användas för andra webbaserade verktyg som viewcvs (xplanner.propertiesvisar några andra exempel). XPlanner har också en avancerad wiki-formaterare (används inte i vårt projekt) som möjliggör automatisk länkning till wiki-poster. Mer information om XPlanner-tillägg finns i Resources.

I de flesta organisationer tillhandahåller alltid någon form av LDAP (lättviktsadministrationsprotokoll) -kompatibel katalogserver en central förvaring av användarsäkerhetskonton. Till exempel inom den organisation som sponsrar vårt projekt tjänade en gammaldags men funktionell LDAP-server detta syfte (Microsofts Active Directory stöder också till stor del LDAP-protokollet). Det var uppfriskande att hitta XPlaners enkla, XPlannerLoginModuleenkla att integrera med LDAP. Detta innebar uppdatering xplanner.propertiesenligt följande:

-> Comment out default security #xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

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

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=

Med en snabb ombyggnad och implementering integrerades XPlanner-autentiseringssäkerhet. Den enda nackdelen var att användarnamn fortfarande behövde läggas till uttryckligen i XPlanner, men åtminstone problem med lösenord och gruppmedlemskap blev företagets helpdesk problem.

Team, träffa XPlanner

XPlanner visar ett projekt enligt iterationer, användarberättelser och uppgifter. Som föreskrivs av Agile-paradigmet planeras och spåras alla XPlanner-hanterade projekt enligt en serie av iterationer. Varje iteration består av ett startdatum, ett slutdatum och en samling användarberättelser som ska konstrueras från berättelse till verklighet inom den tidsramen.

En användarberättelse är det främsta konceptuella verktyget som används i smidig utveckling för att kommunicera kundernas behov till programutvecklare. När en användarberättelse har tilldelats en aktuell iteration (som en del av släppplanering via XPlanner), söker utvecklaren ytterligare detaljer för varje berättelse genom att samarbeta med användaren (förhoppningsvis ansikte mot ansikte). Detta stegs resultat är en detaljerad serie av utvecklingsuppgifter, var och en utvecklarna registrerar sig i XPlanner mot den relevanta användarberättelsen.

Vi valde vårt arbetsflödeprojekt för e-handel för att köras med månatliga iterationer, var och en bestående av cirka 10 berättelser, med 10 till 15 uppgifter tilldelade till varje berättelse.

Skörda användarberättelser

Varje användarberättelse för en projekt iteration bör vara en kort och resultatfokuserad beskrivning av en användarupplevelse som berättad i första personen (t.ex. "Jag söker sedan baserat på färg ..."). Den här upplevelsen är skriven av en användare som föreställer sig den ideala framtida produkten i aktion, så du kanske tänker på en användarberättelse som en positiv visualisering för programvara! Målet med varje visualisering är att tillhandahålla tillräckligt med information för att en programutvecklare ska kunna uppskatta den insats som krävs för att göra den historien till verklighet.

XPlanner katalogiserar ditt projekts samling av användarberättelser medan du registrerar en kund-, tracker-, prioritets- och ansträngningsuppskattning mot var och en. Den största svårigheten vi ofta hittar är skörden av högkvalitativa användarberättelser från systemanvändarnas tankar. Detta var verkligen fallet för vårt projekt, eftersom det var ett betydelsefullt paradigmskifte från de stela avsnitt / underavsnitt som användarna var vana vid. Men möjligheten att använda XPlanner för att hantera berättelser så att de lätt kunde ses och uppdateras av intressenter och att snabbt handlas in och ut ur en given iteration, hjälpte verkligen. En trevlig, om inte funktionell funktion i XPlanner är den autentiska känslan som ger en användarberättelse och visar var och en på skärmen som ett likartat 3-för-5-indexkort, som visas i figur 1.

Uppskatta och spela in ansträngning

Agil utveckling föreskriver att utvecklare genomför sina egna målinställningar, vilket innebär att man analyserar en användarberättelse och definierar de tekniska uppgifter som krävs för att förverkliga den historien. En utvecklare bör ha frihet att lägga till ytterligare uppgifter eller ändra befintliga uppgifter när ytterligare berättelseinformation blir tillgängliga. XPlanner stöder denna flexibilitet genom att ge utvecklare full åtkomst för att definiera och redigera en uppgift. Varje uppgift kan tilldelas en typ, såsom skuld, funktion eller defekt, för att karakterisera vilken typ av arbete som utförs (skuld är till exempel en uppgift för rengöring av teknisk "cruft" kvar i systemet från en tidigare iteration). Uppgifter specificeras också med en disposition (planerad eller oplanerad), den accepterande utvecklaren, en arbetsbeskrivning och en uppskattning av antalet ideala timmar som krävs för att erövra den uppgiften.

XPlanner gör det enkelt för en utvecklare att registrera hur mycket arbete som har investerats i en viss uppgift eller att uppdatera den ursprungliga insatsuppskattningen (originalet lagras fortfarande). Observera att ansträngningsuppskattningar, som nämnts, bör anges i ideala timmar. En idealisk timme är en timme där utvecklaren absolut inte upplever några avbrott.

Utvecklare bör också registrera antalet ideala timmar de investerar mot en given uppgift. Om du uppmuntrar dina utvecklare att ärligt registrera ideala timmar (genom att inte kräva att veta var tiden går), kommer du att kunna hämta några användbara mätvärden från XPlanner (diskuteras nedan). Vi fann till exempel att det i vårt projekt tog cirka 1,4 timmar att ta en idealisk timme. Denna information kan sedan användas för att tillhandahålla raffinerad uppskattning för efterföljande iterationer - vilket hjälper till att hålla lagets löften och kundens förväntningar i samma ballpark.

Mätvärden och planering för nästa iteration

Du är halvvägs genom en iteration och chefen vill veta "hur vi ser ut." Ett väl slitet svar på denna fråga är "Vi är ungefär 80 procent av vägen dit." Naturligtvis verkar de senaste 20 procenten ta mycket längre tid än den borde - de senaste 20 procenten är programvaruekvivalenten för de tråkiga grönsakerna vid middagen som du lämnade till sist.