Programavimas

Tvarkykite judrią komandą naudodami „XPlanner“

Taikymo sritis, projektavimas, kūrimas, išbandymas, pristatymas, atsiprašymas. Tai yra dažni tradicinės inžinerijos metodikos žingsniai, kai jie taikomi gyvsidabriems programinės įrangos projektams. Būdamas programinės įrangos kūrėjas, jūs tikriausiai gerai žinote tą „galutinį“ sistemos reikalavimą, kuris, atrodo, yra antys ir audžia kaip prizininkas. Galbūt jūs stengėtės dėl plėtros projekto tik tam, kad atsirastumėte po kelių mėnesių (ar metų), kad susidurtumėte su klientu, kuris atrodo giliai nusivylęs, kad nepatenkinti tikrieji jo poreikiai. Galbūt jūsų bendraamžiai yra toje vietoje, kur prieš juos pateiktas kruopštus tolimojo vystymosi planas sukelia artėjančios pražangos jausmą. Apatinė eilutė - jūsų komanda yra pasirengusi judriai tobulėti, tačiau ar jūsų tradicinis komandos valdymo įrankis buvo tvirtai pritaikytas tradiciniam komandos valdymui?

Judrios metodikos gali būti lengvos, tačiau jos yra labai drausmingos. Bet koks įrankis, kuris padeda planuoti ir stebėti greitus pristatymus, bendradarbiaujant klientams, gali būti vertingas jūsų arsenalo papildymas. Geros naujienos yra tai, kad judri komanda dabar turi keletą tokių įrankių. Šiame straipsnyje aprašoma reali patirtis valdant judrią kūrėjų komandą naudojant vieną iš šios naujos rūšies įrankių - atvirojo kodo „XPlanner“.

„XPlanner“ yra „Java“ žiniatinklio programa, sukurta palaikyti komandos valdymą pagal ekstremalią programavimo metodiką (XP). Tačiau mes nustatėme, kad šis įrankis yra pakankamai lankstus, kad suteiktų vertingą paramą kitiems pagrindiniams judriems metodams (pvz., „Scrum“) įgyvendinant projektą. Nors ir neįmantri, „XPlanner“ yra patogus įrankis, padedantis jūsų komandai, nesvarbu, ar esate patyręs, ar tik pradedate judrų programinės įrangos kūrimo pasaulį.

Tradiciniai ir judrūs komandos valdymo įrankiai

Tradiciniai komandos valdymo įrankiai (pvz., „Microsoft“ projektas) yra pagrįsti darbų suskirstymo struktūromis, kurios žvelgia toli į projekto ateitį. Planuojamas išteklių paskirstymas ir atidus skirtumų nuo pradinės padėties stebėjimas yra naudojamas valdyti „kritinį kelią“ iki galutinio pristatymo. Tokių priemonių taikymas reikalauja didelių išankstinio planavimo pastangų, griežtos užduočių priklausomybės ir stabilios reikalavimų bazės. Dėl reikšmingų taikymo srities ar reikalavimų pakeitimo tikriausiai reikės gerokai patikslinti modelį. Taigi šie tradiciniai įrankiai yra tinkamiausi planuojant kelionę nuo A iki B, darant prielaidą, kad kursas kinta nedaug. Priešingai, judrūs projektai yra skirti tikėtis pokyčių, darant prielaidą, kad B net nebus galutinis tikslas.

Suprantant judraus projekto kultūrą, naudinga atsižvelgti į judraus vystymosi principus, kuriuos palaiko judraus manifesto autoriai:

  • "Asmenys ir procesų bei įrankių sąveika
  • Darbinė programinė įranga, apimanti išsamią dokumentaciją
  • Klientų bendradarbiavimas derantis dėl sutarties
  • Atsakymas į pasikeitimą pagal planą "

    (Kentas Beckas ir kt., 2001)

Taigi vikrūs projektai aiškiai atsisako ilgalaikio planavimo, naudodami intymų suinteresuotųjų šalių įsitraukimą, aiškų dėmesį skiriant didelės vertės funkcijoms ir tinkamos programinės įrangos išleidimą anksti ir dažnai. Pagrindinis tikslas yra paprastai ir veiksmingai suteikti vertę nuolatinių pokyčių akivaizdoje. Kad planavimo ir stebėjimo priemonė būtų vertinga šiame kontekste, ji turi būti suderinta su šiomis vertybėmis.

Projektų planavimas ir stebėjimas naudojant XPlanner

„XPlanner“ yra judrus projektų valdymo programinės įrangos įrankis, prieinamas pagal GNU Mažosios bendrosios viešosios licencijos licenciją (todėl atviro kodo kalba jis „nemokamas, kaip ir aluje“). Šis paketas veikia kaip žiniatinklio programa, leidžianti jūsų komandos nariams ir projekto suinteresuotiesiems asmenims patekti į savo kompiuterį naudojant mėgstamas interneto naršykles. Sukonfigūravę galėsite planuoti ir sekti įvairius savo judriojo projekto pristatymo aspektus naudodami paprastą žiniatinklio sąsają.

Labai svarbu, kad iš judrios perspektyvos projekto dalyviai galėtų tiesiogiai bendradarbiauti, įnešdami savo informaciją į bendrą projekto saugyklą. Šis bendradarbiavimas gali apimti klientus, kurie aprašo projekto reikalavimus naudotojų istorijų forma, kuriuos kūrėjai naudoja detalizuoti ir sekti užduotis, reikalingas šioms istorijoms įgyvendinti.

Be to, kad palaiko šį klientų bendradarbiavimo lygį, „XPlanner“ teikia ir kitas patogias funkcijas, palaikančias judrų požiūrį. Tai apima tokias savybes kaip paprastas projekto kartojimų nustatymo mechanizmas; intuityvi sąsaja, skirta asmenims įvertinti ir sekti pastangas; ir komandos metrikos skelbimo diagramos. Čia aptariamas „XPlanner“, nes jis buvo įdiegtas palaikyti elektroninės prekybos ir darbo eigos sistemos, susidedančios iš kelių suinteresuotųjų grupių ir septynių kūrėjų komandos, pristatymą.

Atsisiuntimas ir diegimas

„XPlanner“ yra gryna „Java“ programa, kurią galima įdiegti bet kurioje „J2SE 1.4“ kūrimo aplinkoje su „Apache Ant“ ir tinkamu servleto varikliu. Servleto varikliu pasirinkome Apache Tomcat; tačiau turėtų veikti bet kuris variklis, suderinamas su „Servlet 2.3“ (arba naujesne versija). „XPlanner“ pristatomas kaip failų archyvas (zip arba tar.gz), kurį turite išpakuoti ir sukurti prieš diegdami ir naudodami įrankį.

Atliekamas privalomas konfigūracijos žingsnis, nes reikia nustatyti mėgstamą duomenų bazę, kuri bus naudojama kaip projekto informacijos saugykla. Kadangi „XPlanner“ sąveikai su duomenų baze naudoja „Hibernate“ objekto / reliacinio patvarumo sluoksnį, galite naudoti bet kurią „Hibernate“ palaikomą duomenų bazę savo projekto saugykloje. Komplekte yra lengva „Java“ duomenų bazė „Hypersonic“ (dabar vadinama HSQLDB); tačiau kaip saugyklos duomenų bazę naudojome „Oracle 9i“. Norėdami sukonfigūruoti šią duomenų bazę, turėjome redaguoti failą xplanner.properties nekomentuodami jau apibrėžtų „Oracle“ ypatybių. Mes taip pat turėjome pakeisti build.xml failą, kad būtų įtraukta „Oracle“ duomenų bazės tvarkyklė. Sukonfigūravę galite sukurti „XPlanner“ diegimą. Tai apima „Ant“ vykdymą, kad būtų sukurtas diegiamas žiniatinklio archyvas (WAR) taip:

skruzdžių diegimas.db.sema skruzdžių statymas.karas 

Įdiekite gautą žiniatinklio archyvo failą (xplanner.war) į pasirinktą servleto variklį ir tada naršykite adresu URL // jūsų serveris: jūsų-portas / xplanner / (naudodami numatytąjį vartotojo „sysadmin“ ir slaptažodį „admin“), kad patikrintumėte rezultatus!

Integracija su savo ekosistema

Daugumoje kūrimo aplinkų jau yra klaidų stebėjimo sistema, bendradarbiavimo forumai, saugos sistemos, standartų talpyklos ir kt. Nors tai naudinga kaip atskiras įrankis, XPlanner vertę galima padidinti naudojant paprastas ir galingas integravimo funkcijas. „XPlanner“ apima, pavyzdžiui, galimybę palaikyti kūrėjo kalbėjimo teikimą aprašymo lauke, pvz klaida: 1001 kaip nuorodą į //mybugzilla/show_bug.cgi?uid=1001. Tai galima padaryti tiesiog pridedant twiki.scheme.bug = // mybugzilla / show_bug.cgi? id = į xplanner.properties failą. Ta pati technika gali būti naudojama ir kitiems žiniatinklio įrankiams, pvz., viewcvs (xplanner.properties parodo keletą kitų pavyzdžių). „XPlanner“ taip pat yra patobulintas wiki formatavėjas (nenaudojamas mūsų projekte), leidžiantis automatiškai susieti su wiki įrašais. Daugiau informacijos apie „XPlanner“ plėtinius galite rasti šaltiniuose.

Daugumoje organizacijų visuomet tam tikra LDAP (lengvas katalogų prieigos protokolas) suderinamas katalogų serveris teikia centralizuotą vartotojo saugos abonementų saugyklą. Pavyzdžiui, organizacijoje, remiančioje mūsų projektą, šiam tikslui tarnavo senamadiškas, bet funkcionalus LDAP serveris („Microsoft Active Directory“ taip pat iš esmės palaiko LDAP protokolą). Buvo gaivu rasti XPlanner paprastą „XPlannerLoginModule“ lengva integruoti į LDAP. Tai reikėjo atnaujinti xplanner.properties taip:

-> Komentuokite numatytąjį saugumą # xplanner.security.login.module = com.technoetic.xplanner.security.XPlannerLoginModule

-> Nekomentuokite ir redaguokite LDAP įrašus iš ... xplanner.security.login.module = com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ... į: xplanner.security.login.option.roleSearch = (unikalus narys = {0})

-> Pridėti vartotojo paieškos įrašus xplanner.security.login.option.userBase = ou = žmonės, o = asmuo

-> Ištuštinkite xplanner.security.login.option.userPattern = xplanner.security.login.option.userPassword = reikšmes

Greitai atstatant ir įdiegiant, „XPlanner“ autentifikavimo sauga buvo visiškai integruota. Vienintelis trūkumas buvo tas, kad vartotojo vardus vis tiek reikėjo aiškiai įtraukti į „XPlanner“, tačiau bent jau slaptažodžių ir grupės narystės vargas tapo įmonės pagalbos tarnybos problema.

Komanda, susipažink su XPlanner

„XPlanner“ peržiūri projektą pagal kartojimus, vartotojų istorijas ir užduotis. Kaip nurodo „Agile“ paradigma, bet koks „XPlanner“ valdomas projektas yra planuojamas ir stebimas pagal nuoseklias kartojimų serijas. Kiekvieną kartojimą sudaro pradžios data, pabaigos data ir vartotojų istorijų rinkinys, kuris per tą laiką gali būti sukurtas nuo istorijos iki realybės.

Vartotojo istorija yra pagrindinis konceptualus įrankis, naudojamas judrioje programoje, siekiant perduoti klientų poreikius programinės įrangos kūrėjams. Kai vartotojo istorija priskiriama dabartinei iteracijai (kaip išleidimo planavimo per „XPlanner“ dalį), kūrėjas ieško išsamesnės informacijos apie kiekvieną istoriją bendradarbiaudamas su vartotoju (tikiuosi, akis į akį). Šio žingsnio rezultatas yra išsami kūrimo užduočių serija, iš kurių kiekvienas kūrėjas registruojasi „XPlanner“ pagal atitinkamą vartotojo istoriją.

Mes pasirinkome savo elektroninės komercijos darbo eigos projektą, kuris vykdomas su mėnesio kartojimais, kurių kiekviena susideda iš maždaug 10 istorijų ir kiekvienai istorijai priskiriama nuo 10 iki 15 užduočių.

Naudotojų istorijų rinkimas

Kiekviena projekto iteracijos vartotojo istorija turėtų būti trumpas ir į rezultatus orientuotas vartotojo patirties aprašymas, pasakytas pirmuoju asmeniu (pvz., „Aš tada ieškau pagal spalvą ...“). Šią patirtį rašo vartotojas, kuris įsivaizduoja idealų būsimą produktą, todėl jūs galite galvoti apie vartotojo istoriją kaip apie teigiamą programinės įrangos vizualizaciją! Kiekvienos vizualizacijos tikslas yra suteikti pakankamai informacijos programinės įrangos kūrėjui, kad būtų galima įvertinti pastangas, reikalingas tai istorijai paversti realybe.

„XPlanner“ kataloguoja jūsų projekto naudotojų istorijų kolekciją, kartu įrašydamas kliento, stebėtojo, prioriteto ir pastangų įvertinimą. Pagrindinis sunkumas, kurį dažnai pastebime, yra aukštos kokybės naudotojų istorijų rinkimas iš sistemos vartotojų proto. Tai tikrai buvo mūsų projekto atvejis, nes tai buvo reikšmingas paradigmos pokytis nuo griežtų sekcijų / poskyrių reikalavimų, prie kurių vartotojai buvo įpratę. Tačiau neabejotinai padėjo galimybė naudoti „XPlanner“ tvarkant istorijas taip, kad suinteresuotosios šalys galėtų jas lengvai pamatyti ir atnaujinti, ir kad būtų galima greitai ja prekiauti. Vienas puikus, jei ne funkcionalus, „XPlanner“ bruožas yra autentiškas pojūtis, suteikiantis vartotojui istoriją, kiekviena ekrane rodoma kaip panaši 3–5 indekso kortelė, kaip parodyta 1 paveiksle.

Įvertinkite ir užfiksuokite pastangas

Vikrus kūrimas numato, kad kūrėjai patys nustato užsibrėžtus tikslus, ty analizuoja vartotojo istoriją ir apibrėžia technines užduotis, reikalingas tai istorijai įgyvendinti. Kūrėjas turėtų turėti galimybę pridėti papildomų užduočių arba modifikuoti esamas užduotis, kai bus prieinama daugiau informacijos apie istoriją. „XPlanner“ palaiko šį lankstumą, suteikdamas kūrėjams visišką prieigą apibrėžti ir redaguoti užduotį. Kiekvienai užduočiai gali būti priskiriamas tipas, pvz., Skola, ypatybė ar defektas, apibūdinantys atliekamo darbo pobūdį (pavyzdžiui, skola yra užduotis valyti techninį „kreivą“, likusį sistemoje iš ankstesnio kartojimo). Užduotys taip pat nurodomos su sąlyga (suplanuota ar neplanuota), priimančiu kūrėju, darbo aprašymu ir apskaičiuojant idealių valandų skaičių, reikalingą tai užduočiai užkariauti.

„XPlanner“ leidžia kūrėjui lengvai įrašyti, kiek darbo buvo įdėta į tam tikrą užduotį, arba atnaujinti pradinį pastangų įvertinimą (originalas vis dar saugomas). Atkreipkite dėmesį, kad pastangų įvertinimai, kaip minėta, turėtų būti nurodyti 5 punkte idealu valandos. Ideali valanda yra valanda, per kurią kūrėjas nepatiria jokių trukdžių.

Kūrėjai taip pat turėtų užfiksuoti idealių valandų, kurias jie investuoja vykdydami užduotį, skaičių. Jei paraginsite savo kūrėjus sąžiningai įrašyti idealias valandas (nereikalaudami žinoti, kur eina laikas), galėsite iš „XPlanner“ išgauti naudingos metrikos (aptariama toliau). Pvz., Nustatėme, kad įgyvendinant mūsų projektą idealiai valandai prireikė maždaug 1,4 valandos. Tada šią informaciją galima panaudoti patikslintam vėlesnių pasikartojimų įvertinimui - tai padeda tenkinti komandos pažadus ir kliento lūkesčius toje pačioje aikštelėje.

Metrika ir kitos kartojimo planavimas

Jūs esate įpusėjęs kartojimą, o viršininkas nori sužinoti „kaip mes atrodome“. Gerai dėvėtas atsakymas į šį klausimą yra „Mes maždaug 80 procentų kelio ten“. Žinoma, atrodo, kad paskutiniai 20 procentų užtrunka žymiai ilgiau nei turėtų - paskutiniai 20 procentų yra programinės įrangos atitikmuo nuobodžioms daržovėms vakarienės metu, kurias palikote iki paskutinio.