Управлявайте пъргавия екип с XPlanner

Обхват, проектиране, изграждане, тестване, доставка, извинение. Това са често стъпканите стъпки на традиционната инженерна методология, когато се прилагат към живачния свят на софтуерните проекти. Като разработчик на софтуер вие вероятно сте добре запознати с това „окончателно“ системно изискване, което изглежда се крие и тъче като борец за награда. Може би сте се трудили върху проект за разработка само за да изникнете месеци (или години) по-късно, за да се изправите пред клиент, който изглежда дълбоко разочарован, че реалните му нужди не са удовлетворени. Може би вашите връстници са в точката, в която щателен план за развитие, поставен пред тях, внушава усещане за предстояща гибел. В крайна сметка - вашият екип е готов да започне с пъргаво развитие, но дали вашият традиционен инструмент за управление на екипи е свързан с традиционно управление на екип?

Пъргавите методологии може да са леки, но са силно дисциплинирани. Всеки инструмент, който ви подпомага при планирането и проследяването на бързи доставки с интимно сътрудничество с клиентите, може да направи ценно допълнение към вашия арсенал. Добрата новина е, че няколко такива инструмента вече са на разположение на пъргавия екип. Тази статия подробно описва реалния опит в управлението на гъвкав екип за разработка, използвайки един от тази нова порода инструменти, XPlanner с отворен код.

XPlanner е Java уеб приложение, предназначено да поддържа управление на екипа според екстремната методология за програмиране (XP). Установихме обаче, че този инструмент е достатъчно гъвкав, за да предостави ценна подкрепа за други основни подвижни подходи (напр. Scrum) в разгара на изпълнението на проекта. Въпреки че не е изискан, XPlanner предоставя удобен инструмент за подкрепа на вашия екип, независимо дали сте опитен или просто стартирате, възнаграждаващия свят на пъргавата разработка на софтуер.

Традиционни срещу гъвкави инструменти за управление на екипа

Традиционните инструменти за управление на екипа (като Project на Microsoft) се основават на структури за разбивка на работата, които гледат далеч в бъдещето на проекта. Планираното разпределение на ресурсите и внимателното следене на отклонението спрямо изходното ниво се използват за управление на „критичния път“ към окончателното изпълнение. Прилагането на такива инструменти предполага значителни усилия за предварително планиране, твърди зависимости от задачите и стабилна база от изисквания. Значителни промени в обхвата или изискванията вероятно ще наложат значителни ревизии на модела. По този начин тези традиционни инструменти са най-подходящи при планиране на пътуване от А до Б, като се приемат малки вариации в курса. За разлика от тях, гъвкавите проекти са насочени да очакват промяна, без да се допуска, че B дори ще бъде крайната дестинация.

При разбирането на културата на пъргавия проект е полезно да се разгледат принципите на пъргавото развитие, подкрепени от авторите на Agile Manifesto:

  • „Индивиди и взаимодействия над процеси и инструменти
  • Работещ софтуер върху изчерпателна документация
  • Клиентско сътрудничество при договаряне на договор
  • Отговаряне на промяна при изпълнение на план "

    (Kent Beck et al., 2001)

По този начин гъвкавите проекти изрично се отказват от дългосрочното планиране в полза на интимното ангажиране на заинтересованите страни, ясен фокус върху функции с висока стойност и ранно и често пускане на използваем софтуер. Основната цел е просто и ефективно да предостави стойност в лицето на постоянните промени. За да може инструментът за планиране и проследяване да бъде ценен в този контекст, той трябва да съответства на тези ценности.

Планиране и проследяване на проекти с XPlanner

XPlanner е гъвкав софтуерен инструмент за управление на проекти, достъпен под GNU Lesser General Public License (правейки го „безплатен, както в бирата“, на езика с отворен код). Пакетът се използва като уеб приложение, което позволява на членовете на вашия екип и заинтересованите страни по проекта да се качат на борда, като използват любимите си уеб браузъри. След като сте конфигурирани, ще можете да планирате и проследявате различни аспекти на доставката на вашия пъргав проект чрез прост уеб интерфейс.

Важно е, че от гъвкава гледна точка, участниците в проекта могат да си сътрудничат директно, като предоставят своята информация в общото хранилище на проекти. Това сътрудничество може да включва клиенти, описващи изискванията на проекта под формата на потребителски истории, които разработчиците след това използват за детайлизиране и проследяване на задачите, необходими, за да превърнат тези истории в реалност.

В допълнение към това ниво на сътрудничество с клиентите, XPlanner предоставя и други удобни функции, които поддържат гъвкавия подход. Те включват функции като прост механизъм за определяне на итерации на проекти; интуитивен интерфейс за лица, които оценяват и проследяват усилията; и графики за публикуване на показатели на екипа. Тук се обсъжда XPlanner, тъй като беше внедрен за подпомагане на доставката на система за електронна търговия и работен процес, състояща се от няколко групи заинтересовани страни и екип от седем разработчици.

Изтегляне и инсталиране

XPlanner е чисто Java приложение, което може да бъде внедрено във всяка среда за разработка на J2SE 1.4, оборудвано с Apache Ant и подходящ сървлетен двигател. Избрахме Apache Tomcat като двигател за сървлети; всеки двигател, съвместим със Servlet 2.3 (или по-нова версия), трябва да го направи. XPlanner се доставя като файлов архив (zip или tar.gz), който трябва да разопаковате и изградите, преди да внедрите и използвате инструмента.

Включва се задължителна стъпка за конфигуриране, тъй като трябва да настроите любимата си база данни, която да се използва като хранилище за информация за проекта. Тъй като XPlanner използва хибернатен обект / релационен персистентен слой за взаимодействие с база данни, имате възможност да използвате всяка база данни, поддържана от Hibernate, за вашето хранилище на проекти. Включената опция е леката Java база данни Hypersonic (сега се нарича HSQLDB); ние обаче използвахме Oracle 9i като наша база данни на хранилището. За да конфигурираме тази база данни, трябваше да редактираме файла, xplanner.propertiesкато коментираме вече дефинираните свойства на Oracle. Също така трябваше да модифицираме build.xmlфайла, за да включим драйвера за тънка база данни на Oracle. Веднъж конфигурирани, можете да изградите своето внедряване на XPlanner. Това включва изпълнение на Ant за създаване на разгръщаем уеб архив (WAR), както следва:

ant install.db.schema ant build.war 

Разположете получения файл на уеб архива ( xplanner.war) в избрания от вас сървлет и след това прегледайте URL // your-server: your-port / xplanner / (като използвате потребител по подразбиране "sysadmin" и парола "admin"), за да проверите резултатите!

Интегриране с вашата екосистема

Повечето среди за разработка вече съдържат система за проследяване на грешки, форуми за сътрудничество, системи за сигурност, хранилища на стандарти и др. Въпреки че е полезна като самостоятелен инструмент, стойността на XPlanner може да бъде подобрена чрез своите прости и мощни функции за интеграция. XPlanner включва, например, способността да поддържа изобразяване на говор от разработчици в поле за описание, като бъг: 1001 като връзка към //mybugzilla/show_bug.cgi?uid=1001. Това може да стане чрез просто добавяне twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=към xplanner.propertiesфайла. Същата техника може да се използва и за други уеб-базирани инструменти като viewcvs (xplanner.propertiesпоказва някои други примери). XPlanner разполага и с усъвършенстван wiki форматиращ инструмент (който не се използва в нашия проект), който позволява автоматично свързване към wiki записите. Повече информация за разширенията на XPlanner можете да намерите в Ресурси.

В повечето организации, неизменно, някаква форма на LDAP (лек протокол за достъп до директории), съвместим сървър на директории, осигурява централизирано хранилище на потребителски акаунти за сигурност. Например в рамките на организацията, спонсорираща нашия проект, за тази цел служи старомоден, но функционален LDAP сървър (Active Directory на Microsoft също до голяма степен поддържа LDAP протокола). Беше освежаващо да се намери XPlannerLoginModuleлесното за интегриране на XPlanner с LDAP. Това включва актуализиране, xplanner.propertiesкакто следва:

-> 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=

С бързо възстановяване и внедряване, защитата за удостоверяване на XPlanner беше напълно интегрирана. Единственият недостатък беше, че потребителските имена все още трябваше да бъдат изрично добавени в XPlanner, но поне неприятностите с паролата и членството в групата се превърнаха в проблем на корпоративната служба за помощ.

Екип, запознайте се с XPlanner

XPlanner разглежда проект според итерации, потребителски истории и задачи. Както е предписано от парадигмата Agile, всеки проект, управляван от XPlanner, се планира и проследява според последователна поредица от повторения. Всяка итерация се състои от начална дата, крайна дата и колекция от потребителски истории, които да бъдат проектирани от историята към реалността в рамките на този период.

Потребителската история е главният концептуален инструмент, използван при пъргавото разработване, за да съобщи нуждите на клиентите на разработчиците на софтуер. След като дадена потребителска история е присвоена на текуща итерация (като част от планирането на изданието чрез XPlanner), разработчикът търси допълнителни подробности за всяка история, като си сътрудничи с потребителя (надяваме се лице в лице). Резултатът от тази стъпка е подробна поредица от задачи за разработка, всяка от които разработчикът се регистрира в XPlanner срещу съответната потребителска история.

Избрахме нашия проект за работен поток за електронна търговия, който да се изпълнява с месечни итерации, всяка от които се състои от около 10 истории, с 10 до 15 задачи, възложени на всяка история.

Събиране на потребителски истории

Всяка потребителска история за итерация на проект трябва да бъде кратко и фокусирано върху резултатите описание на потребителското изживяване, както е казано от първо лице (напр. „След това търся въз основа на цвета ...“). Това изживяване е написано от потребител, който представя идеалния бъдещ продукт в действие, така че може да помислите за потребителска история като положителна визуализация за софтуера! Целта на всяка визуализация е да предостави достатъчно информация за разработчика на софтуер, за да оцени усилията, необходими за реализирането на тази история.

XPlanner каталогизира колекцията от потребителски истории за вашия проект, като същевременно записва оценка на клиент, тракер, приоритет и усилия спрямо всяка една. Основната трудност, която често откриваме, е събирането на висококачествени потребителски истории от съзнанието на системните потребители. Това със сигурност беше случаят с нашия проект, тъй като това беше значителна промяна на парадигмата от изискванията за твърда секция / подраздел, на които потребителите бяха свикнали. Въпреки това, способността да се използва XPlanner за управление на истории, така че те да могат лесно да се виждат и актуализират от заинтересованите страни и да се търгуват бързо и извън дадена итерация, със сигурност помогна. Една хубава, ако не и функционална характеристика на XPlanner е автентичното усещане, което дава на потребителя, показвайки всеки на екрана като подобна индексна карта 3 на 5, както е показано на фигура 1.

Оценете и запишете усилията

Agile разработката предписва разработчиците да предприемат собствени цели, които включват анализ на потребителска история и определяне на техническите задачи, необходими за реализирането на тази история. Разработчикът трябва да бъде свободен да добавя допълнителни задачи или да модифицира съществуващи задачи, когато станат достъпни допълнителни подробности за историята. XPlanner поддържа тази гъвкавост, като предоставя на разработчиците пълен достъп за дефиниране и редактиране на задача. На всяка задача може да бъде присвоен тип, като дълг, характеристика или дефект, за да се характеризира вида на работата, която се извършва (дългът например е задача за почистване на технически „разлом“, останал в системата от предишна итерация). Задачите също се уточняват с разположение (планирано или непланирано), приемащия разработчик, работно описание и оценка на броя идеални часове, необходими за завладяване на тази задача.

XPlanner улеснява разработчика да запише колко труд е вложен в дадена задача или да актуализира първоначалната оценка на усилията (оригиналът все още се съхранява). Имайте предвид, че оценките на усилията, както бе споменато, трябва да бъдат посочени в идеални часове. Идеалният час е час, в който разработчикът не изпитва абсолютно никакви прекъсвания.

Разработчиците също трябва да записват броя на идеалните часове, които инвестират за дадена задача. Ако насърчите разработчиците си честно да записват идеални часове (като не изисквате да знаете къде отива времето), ще можете да извлечете някои полезни показатели от XPlanner (обсъдено по-долу). Установихме например, че по нашия проект идеалният час отне около 1,4 изминати часа. След това тази информация може да се използва за предоставяне на прецизна оценка за последващи повторения - което помага да се спазят обещанията на екипа и очакванията на клиентите в една и съща база.

Метрики и планиране за следващата итерация

По средата на една итерация сте и шефът иска да знае „как изглеждаме“. Изтъркан отговор на този въпрос е „Ние сме на около 80 процента от пътя там“. Разбира се, последните 20 процента винаги отнемат много повече време, отколкото би трябвало - последните 20 процента са софтуерният еквивалент на скучните зеленчуци на вечеря, които оставяхте до последно.