Что такое jira software
Что такое jira software
Jira — это инструмент управления проектами, который помогает оптимизировать работу команды. Принцип работы сервиса похож на диспетчер задач в компьютере: с его помощью отслеживают запущенные процессы (проекты) и контролируют число ресурсов (сотрудников). В Jira проджект-менеджер грамотно распределяет сотрудников для выполнения задач и планирует работу. Например, если в работе уже четыре проекта, в которых задействованы все разработчики, значит, новый проект запускать не стоит, нужно дождаться завершения хотя бы одного.
Agile-разработка с Jira
В Jira работают Samsung, Coca Cola, Visa, Dropbox и Audi. NASA использует Jira для создания ПО, которое управляет беспилотными исследовательскими аппаратами в космосе, например марсоходом Curiosity. Еще все эти компании придерживаются методологии Agile.
Agile — это гибкая система разработки, в которой сложные задачи разбиваются на итерации — небольшие этапы. После каждого из них команда постепенно выдает готовые части продукта, их тестируют и оценивают. Одну итерацию называют спринтом ( англ. sprint — бег на короткую дистанцию). В конце спринта команда подводит итоги и ставит себе задачи на следующий.
Главные принципы Agile:
Есть два подхода к работе над проектом, основанные на Agile.
1. Методика Kanban — это способ визуализации задач с помощью досок, на которых задачи располагаются в соответствии со статусом. Стандартная канбан-доска делится на три колонки:
К этим колонкам можно добавлять другие. Например, между задачами в работе и завершенными поставить колонку с этапом тестирования. Такие доски используют для разных процессов — в команде маркетинга или при любой проектной работе.
2. Методика Scrum — в ней собраны все принципы гибкой разработки: деление на спринты, взаимодействие в команде и с заказчиком, нацеленность на рабочий продукт. Для визуализации рабочего процесса в Scrum тоже используют доски, на которых отслеживается процесс разработки. Отличие от канбан-досок в том, что самую важную роль играют спринты и задача не может находиться в работе дольше, чем длится спринт. Доски бывают физическими — тогда команда перемещает задачи, переклеивая стикеры. Такую методику скрам-мастера рекомендуют для небольших команд, у которых все разработчики в одном офисе. В Jira виртуальные скрам-доски выглядят так:
Для чего используют Jira
Этот инструмент создавали для отслеживания статуса задач и ошибок, но со временем его функционал расширился. Сегодня в Jira можно управлять процессом разработки от идеи до запуска готового продукта. Кроме IT-команд, ее используют маркетологи, аналитики, тестировщики и другие специалисты.
Для чего может помочь Jira:
Начните свой путь в IT
Попробуйте себя в IT-профессиях. Получите все курсы по программированию, аналитике данных, Data Science по цене одного.
Как пользоваться Jira
Зайдите на сайт проекта и зарегистрируйтесь с помощью электронной почты, Slack, Microsoft или Google-аккаунта.
После регистрации придумайте имя проекта. Система рекомендует выбирать простое и понятное, например название компании, чтобы никто из команды его не забыл. Но нужно уникальное имя — некоторые уже могут быть заняты.
После регистрации инструменты для управления будут доступны.
Интерфейс
Внешне Jira похожа на любой другой таск-менеджер.
В верхней строке меню шесть вкладок:
В рабочей области отображаются доски с колонками и задачи, которые в зависимости от статуса перемещаются между этими колонками. Есть несколько типов задач:
Боковое меню состоит из элементов управления проектами:
В нижней части бокового меню расположены компоненты проекта:
Создание первого проекта
После регистрации в Jira кнопка «Создайте проект» появится в рабочей области в самом центре экрана:
Шаг 1. Jira предлагает на выбор три шаблона проектов, которые подходят для разных методов работы команд:
В первых двух шаблонах рабочий процесс разбит на колонки «К выполнению», «В работе» и «Готово», и в них доступны одинаковые типы задач: эпик, история, баг, задание, подзадача.
Шаг 2. При выборе шаблонов Kanban и Scrum Jira предлагает выбрать тип управления проектом:
Шаг 3. Проекту присваиваются название и ключ:
После этого новый проект будет создан, и внутри него уже можно создавать задачи:
Создание задачи
Добавить задачу в проект можно двумя способами: кликнуть на кнопку «Создать» в верхнем меню или на «+ Создать задачу» в колонке «К выполнению». Во всплывающей форме заполняются атрибуты задачи:
Повышение производительности Jira
Компания Atlassian поддерживает комьюнити пользователей Jira и создает обучающие материалы, с помощью которых легче внедрить этот инструмент в работу. Например, на официальном сайте есть инструкция «Шесть базовых шагов для начала работы с Jira».
Вот что рекомендуют специалисты из Atlassian, чтобы повысить эффективность работы в Jira.
Дробить большие задачи на мелкие. В тайм-менеджменте есть прием — разделить слона (большую и трудную задачу) на бифштексы (мелкие и простые задачи), потому что так слона удобнее есть. Этот принцип применим не только к масштабным проектам, но и к простым заданиям, которые выдаются сотрудникам. Если в задаче несколько шагов или действий, стоит разделить ее на подзадачи, каждую из них расписать внятно и подробно, а не пытаться уместить алгоритм выполнения в одном описании, потому что в нем сотрудник может запутаться.
Каждая задача должна состоять из одного понятного действия. Например, «Составить дизайн-макет продукта» — это не задача, а этап работы, который состоит из цепочки действий: провести интервью с заказчиком, создать бриф, собрать референсы, обсудить дизайн с командой разработки, согласовать референсы с заказчиком, создать «рыбу» макета и так далее. Описанные шаги — это даже не половина работы над дизайн-макетом, а только малая часть, и каждый из шагов — отдельная задача.
Комментировать задачи. Комментарии — это архив обсуждений проекта, к которому обращаются, если возникли разногласия или ошибки. Они помогают команде не держать в голове мысли по поводу проекта, а фиксировать их под карточками задач и доносить друг до друга нюансы работы.
Допустим, в проекте возникла ошибка — кнопка в приложении вместо нужной страницы отправляет пользователя на главную. Один из разработчиков вспоминает, что подобная ошибка возникала в работе над предыдущим проектом и в комментариях обсуждали, в чем ее причина и как это можно исправить.
Готовиться к спринтам. Подготовка — это составление списка задач, расстановка приоритетов, оценка целей, сроков выполнения работы и сложности. На планирование создатели Jira советуют отводить не менее двух часов в неделю, а при оценке сложности использовать разные способы и обозначения. Например, можно использовать размеры одежды для обозначения величины задач, где XS — это небольшая, простая в решении задача, а XXL — объемная и сложная, которая не решается за один спринт.
Аналоги Jira
Это тоже инструмент для управления процессами на основе канбан-досок, который разработали Fog Creek, но в 2017 году его выкупила компания Atlassian, и теперь и Trello, и Jira принадлежат ей. Trello считается интуитивно понятным инструментом, который подходит любым, даже небольшим командам.
Работа, как и в Jira, организована по методу Kanban, задачи располагаются на досках и делятся на колонки: запланированные, в работе и завершенные. Для каждой задачи заводится новая карточка с названием, описанием, метками, исполнителем и другими атрибутами. Но в отличие от задач в Jira, карточки в Trello могут содержать подзадачи, списки или чек-листы.
Инструмент для управления процессами, организующий задачи в группы, которые и называются Basecamp, то есть «базовый лагерь». Таких групп шесть: новостная лента (Message Board), лист задач (To-dos), общий чат (Campfire), календарь (Schedule), автоматический чек-лист (Automatic Check-ins), документы и файлы (Docs & Files).
Преимущество Basecamp — это Campfire, чат для общения в команде, своего рода лагерный костер, где все собираются и обсуждают задачи, — а также автоматические чек-листы, благодаря которым можно не задавать коллегам вопросы о готовности задач, а отслеживать их самостоятельно.
Asana предлагает пользователям выбрать вариант контроля процессов: доски, список задач, таймлайн или календарь. Принцип управления процессом похож на Jira и другие планировщики: проект делится на задачи и подзадачи, у задач есть авторы и исполнители, их распределяют на доске в соответствии со статусом и располагают на таймлайне.
В Asana предусмотрено три уровня коммуникации: общение происходит в комментариях к задаче, в проекте или внутри команды, — это отличает ее от других таск-менеджеров. Для обмена файлами предусмотрена интеграция с Dropbox, Google Диском, Adobe Creative Cloud и другими сервисами.
Позиционирует себя как простая альтернатива другим планировщикам. У Wrike есть готовые шаблоны, выбор которых зависит от целей проекта, — например «Управление маркетинговой кампанией», «Запуск продукта», «Планирование нового проекта» и Канбан-доска.
Wrike, как и Jira, позволяет создавать дашборды с отчетами, отслеживать загруженность команды, чтобы предотвратить переработки и выгорание. Также в планировщике есть система контроля версий. Документы в форматах Word и Excel редактируются прямо во Wrike, скачивать их не нужно.
JIRA как средство от бессонницы и нервных срывов
Как наладить эффективный процесс управления проектом в условиях, когда «правильно» и «как лучше» сделать нельзя, но делать все равно надо? В статье дан обзор применения JIRA для управления проектом по разработке программного обеспечения в интересах крупного государственного заказчика. Я буду рад, если описанные подходы помогут лично вам повысить эффективность своей команды и снизить напряженность на проекте. Приветствуется любая критика.
Сын ошибок трудных
Судя по большому количеству типовых статей в Интернете о том, как нужно правильно применять системы управления проектами при разработке программного обеспечения, дело это нехитрое и благодарное. Однако реальное применение автоматизированных систем управления в проектах, в которых довелось поучаствовать, было не таким «радужным», как можно было бы ожидать. Можно выделить несколько типовых случаев, с которыми пришлось столкнуться на практике.
Лучшие варианты сводились к использованию проектной командой одной из многочисленных систем отслеживания ошибок (bug tracking system). Структура задач и бизнес-процессов проекта обычно разворачивалась «из коробки». Данные системы использовались в основном группами программистов и тестировщиков. Такая организация разработки хорошо себя оправдывала на небольших проектах с частными заказчиками или если в задачи исполнителей входило только гарантийное сопровождение программного продукта (исправление выявленных ошибок). Однако с ростом новых требований такой подход начинал буксовать. Это проявлялось в росте временных затрат на сопоставление требований заказчиков и сведений, сохраненных в багтрекере (и ручном составлении интегральных отчетов), а также в разделении команды на два лагеря («хороших» программистов и «плохих» аналитиков).
Другие ситуации сводились к «гениальным» озарениям руководства, когда, используя административные рычаги, в деятельность проектных групп «внедрялись» лучшие методологии разработки программного обеспечения. Правда, эти руководители считали, что их действия ограничивались только процессом нахождения этой «серебряной пули». Они не заморачивались такими понятиями, как «спринт», «диаграмма сгорания задач» или «диаграмма совокупного потока». А даже если и заморачивались, отчетные документы, которые требовалось формировать о состоянии проекта (опять же вручную), были слабо связаны с этой самой лучшей методологией. Попытки приобщить заказчиков к этим методикам приводили к тому, что условия проекта не менялись, а к старым отчетам дополнительно требовалось формировать новые дополнительные отчеты (по новой методике). Особенно ярко такие противоречия проявлялись на проектах по госконтрактам, условия организации которых напрямую конфликтовали с условиями успешности применения Agile, RUP или PMBOK.
Апофеозом автоматизации управления стал проект по доработке информационной системы федерального уровня в интересах одного крупного государственного заказчика. В рамках этого проекта сам заказчик использовал HP Service Manager и JIRA. HP Service Manager использовался для сбора и анализа ошибок программного обеспечения. C помощью JIRA заказчик планировал деятельность своих сотрудников, связанную с исправлением этих ошибок и дальнейшим развитием системы. Перечень состояний задач в этих системах предусматривал все многообразие возможных вариантов их обработки. Подробнейшие регламенты сопровождения этих задач, сформированные проектным офисом заказчика (т.е. людьми, не отвечающими за сопровождение и разработку), были размещены на платформе Confluence. Сотрудники исполнителя были допущены к обеим системам, и на них были возложены обязанности по сопровождению инцидентов и требований (с временными нормативами по обработке задач и прогрессивной шкалой штрафов). Кроме того, на площадке исполнителя был развернут свой экземпляр JIRA, с помощью которого планировалась деятельность проектной группы. Синхронизация деятельности всех трех систем осуществлялась вручную (для этого приходилось вести «простыню» в Excel, в которой отмечались взаимосвязи задач и их текущее состояние). Кроме того, отчеты, которые формировала JIRA, руководство не устраивали, и поэтому сотрудники проектной группы должны были предоставлять почасовые отчеты о своей деятельности, также создаваемые ими вручную в Excel. Не редкостью была ситуация, когда руководитель группы разработки или руководитель групп сопровождения «зависали» на работе до поздней ночи, формируя сводные отчеты о состоянии проекта по результатам деятельности проектной команды. Данный проект был успешно завершен точно в перенесенные сроки и запомнился, кроме рекордно низкой производительности, повышенным количеством нервных срывов, стремительным профессиональным выгоранием и, судя по премиям «выживших» сотрудников, неожиданно невысокой маржинальностью. После таких проектов долго не дает покоя мысль: «Если мы создаем инструменты, которые значительно облегчают жизнь заказчиков, то почему, за счет подобных инструментов, мы так изощренно ухудшаем свою жизнь?»
Особенности национальной разработки
Обобщая опыт, можно сделать вывод, что наибольшие проблемы с автоматизацией управления разработкой программного обеспечения происходили на проектах по госзаказу.
При этом неоднократные попытки решить эти проблемы в соответствии с лучшими практиками разработки программного обеспечения, привели к выводу: это не проблемы, а неизбежные условия выполнения проекта для госзаказчика. Анализ нескольких проектов позволил выделить следующие обобщенные характерные черты таких условий:
Кроме внешних условий, как выяснилось, общими характерными чертами обладают и коллективы сотрудников, вовлеченных в проект по созданию программного обеспечения.
Победа надежды
Второй брак – это победа надежды над жизненным опытом.
Сэмюэл Джонсон
Два года назад я был приглашен в качестве ведущего аналитика на проект, выполняемый компанией ЛАНИТ по госзаказу. Проектная группа была сформирована ранее, проект заключался в существенной доработке автоматизированной системы, существующей более десятка лет. В целом, условия проекта соответствовали описанным выше. На тот момент коллектив разработчиков не применял в своей работе ни одну из существующих систем управления проектами (хотя практически все сотрудники участвовали в проектах, где такие системы использовались и имели довольно скептическое мнение о необходимости автоматизации управления). Однако сложившаяся исходная ситуация предоставила возможность выпестовать автоматизацию управления проектом «с чистого листа».
В качестве платформы для автоматизации была выбрана JIRA. Этому выбору поспособствовала совокупность следующих факторов:
Автоматизация управления проектом изначально преследовала следующие цели:
Автоматизация управления проектом не должна раздражать сотрудников проектной команды. Учитывая предыдущий негативный опыт автоматизации управления проектами, одним из ключевых факторов внедрения стало создание таких условий, чтобы каждый сотрудник проектной группы воспринимал JIRA не как лишний груз в лодке проекта, а как коллективную навигационную систему, которая своевременно оповестит команду о приближающейся опасности и поможет достичь цели проекта по кратчайшему и безопасному пути. При этом использование этой навигационной системы должно облегчить жизнь всех членов команды, а не только менеджмента проекта. Для этого изначально порядок работы с JIRA планировался с учетом минимизации количества регистрируемых данных со стороны программистов, тестировщиков и технических писателей. С другой стороны, преследовалась цель создать комфортное рабочее окружение в JIRA для всех сотрудников проекта, которое помогало бы им обеспечить эффективное планирование своего рабочего дня.
Гарантии преемственности. Одной из целей автоматизации управления проектом является обеспечение преемственности, чтобы любой квалифицированный сотрудник мог «подхватить» обязанности выбывшего члена команды без «испытательного срока» и с минимальной головной болью, чтобы «отряд не заметил потери бойца». В этой связи вспомнился случай, который мне рассказал один из заказчиков. Однажды он остался за начальника, который, уехав в отпуск, сообщил ему пароль от своего компьютера с репликой: «Ну, там все понятно, разберёшься в случае чего…». Этот сотрудник потратил несколько бессонных ночей на осознание содержания нескольких папок с названиями «xxxxx1», «xxxxx11» и «xxxxx111» (названия папок изменены, в интересах соблюдения правил приличия). Предотвращение таких ситуаций требует регистрации в JIRA результатов работы всех сотрудников проектной команды, включая руководителя проекта.
Минимализм. Цель автоматизации управления проектом состояла не в том, чтобы посчитать с точностью до минуты, сколько тот или иной сотрудник потратил рабочего времени на решение поставленных перед ним задач, а в том, чтобы обеспечить решение задач с заданным качеством в требуемые сроки. Поэтому при развертывании проекта в JIRA был принят принцип минимизации данных, регистрируемых в системе. Т.е. набор параметров, регистрируемых в системе управления, должен был быть минимально необходимым для принятия обоснованных решений («Совершенство достигнуто не тогда, когда нечего добавить, а когда нечего убрать»). При этом подразумевалось, что принятая модель автоматизации управления проектом должна работать в условиях высокой неопределенности и непоследовательности (например, можно знать дату документа, но не знать его номер и наоборот). При типизации регистрируемых сведений использовалось, где только возможно, правило Миллера, говорящее о том, что оптимальное количество типов (состояний) должно лежать в пределах «семь плюс-минус два» (что значительно упрощает понимание работы системы сотрудниками). Так, например, при проектировании жизненного цикла задач (workflow) изначально предполагалось, что количество состояний должно соответствовать данному правилу.
Системность. Автоматизация управления проектом должна способствовать согласованности и слаженности действий всех сотрудников проектной команды (предотвращение ситуации «лебедь, рак и щука»).
В одном из проектов, в котором мне довелось поучаствовать, команда аналитиков в течении месяца разрабатывала модель автоматизируемой деятельности в нотации IDEF0. Как казалось, само использование методологии, созданной ВВС США (!), гарантировало успешность такого подхода. Однако, когда многостраничный аналитический отчет изучил начальник отдела программирования, его первым вопросом был: «Так, что собственно надо сделать?». Сформированная модель оказалась непригодной для использования, как описание постановки задач для программистов. Представители заказчика несколько раз восхитились, бегло просматривая многочисленные схемы, однако также не нашли применения этой модели для оптимизации своей деятельности. В конце концов эти схемы украсили описание технологических процессов, придав этому документу невиданную доселе толщину и солидность, однако на этом положительный эффект проведенного анализа был исчерпан. Результаты месяца работы нескольких аналитиков фактически оказались невостребованными в рамках проекта.
Учитывая этот опыт, при автоматизации управления проектом, предполагалось создать единый конвейер задач, который бы обеспечил согласованное преобразование требований заказчика в конечный программный продукт по кратчайшему пути и с минимальными издержками. При этом, на основе мониторинга имеющихся параметров этого конвейера, предполагалось выявить, измерить и развить эмерджентные свойства проектной группы, по которым можно было судить о состоянии проекта на всех его этапах.
Канбан-доска наизнанку
По моему убеждению, успех автоматизации управления в решающей степени зависит от того, насколько точно смоделирован объект управления в автоматизированной системе. Поскольку предполагалось автоматизировать управление процессом создания программного обеспечения, был проведен анализ этого процесса. На мой взгляд, процесс создания отдельных программных модулей всегда представляет классический каскадный жизненный цикл waterfall. Сначала появляется перечень требований к создаваемому продукту. Требования могут приходить из разных источников и имеют разную степень детализации. Часть требований взаимосвязаны между собой, другая часть относительно независима. По отдельным требованиям можно сразу сформировать задачу на разработку, другие — требуют уточнения и конкретизации. Т.е. всегда существуют работы, связанные со сбором, сортировкой и уточнением требований заказчика (при этом формулировки отдельных требований могут носить неоднозначный характер до окончания проекта). После того, как требования максимально конкретизированы, как правило, по группам взаимосвязанных требований формируются так называемые описания постановки задач, которые детализируют особенности реализации этих требований и являются исходным материалом для начала работы программистов. После окончания программирования созданные модули тестируются автономно, интегрируются в систему, тестируются повторно. По выполненным доработкам ПО вносятся соответствующие изменения в проектную и эксплуатационную документацию, после чего проводится ряд мероприятий, направленных на признание выполненной доработки чаяниям (требованиям) заказчика и последующее внедрение разработанного функционала в промышленную эксплуатацию.
Главным отличием реальной жизни от красивой схемы waterfall является ее хаотичность (все происходит не поэтапно и непоследовательно). В реальности, переход от одной фазы разработки к другой совсем необязательно происходит только после полного и успешного завершения предыдущей фазы. В реальном waterfall есть свои обратные течения противоречий, заводи и мели безразличия, топи словоблудия, стремнины и водовороты неоднозначности, пороги и скользкие камни безудержной фантазии, и, нередко, фонтаны и даже гейзеры новых требований. Переделать эту стихию в рамках проекта не представляется возможным, как невозможно для команды корабля переделать реку, по которой надо обеспечить доставку грузов заказчика.
Для прозрачности распределения ответственности при автоматизации управления проектом был реализован принцип «1 задача – 1 исполнитель». Т.е. процесс выполнения задачи заведомо не предполагал ее передачу другим исполнителям. Этот принцип позволил применить одинаковый бизнес-процесс ко всем типам задач, поскольку статус выполнения работы определялся прежде всего, с точки зрения исполнителя этой задачи. Стандартный для JIRA рабочий процесс (workflow) был немного изменен. Главное изменение заключалось в замене статуса «переоткрыт» на статус «в ожидании», т.е. состояния, когда работы по задаче приостановлены по какой-либо причине. Для регистрации переоткрытых задач стало применяться пользовательское поле «Счетчик переоткрытий». При этом, были детализированы виды причин перевода задач в ожидании решения:
В результате проведенного анализа была реализована следующая модель регистрации сведений о проекте в JIRA. Стандартный подход деления задач, который представляла JIRA, не был использован в проекте. Было создано шесть типов задач, которые по своей сути соответствовали основным этапам разработки программного обеспечения:
Найденные в JIRA способы отражения задач не предоставляли удобного просмотра состояния проекта в целом (учитывая многообразие плагинов, возможно нам просто не хватило времени, чтобы найти нужный). Поэтому для того, чтобы упростить работу с предложенной моделью регистрации задач, был создан собственный дашборд (в конце концов, сапожник должен уметь сшить сапоги и для себя). Созданный дашборд позволял отобразить состояние задач на проекте с позиции реализации каждого требования отдельно.
Созданный дашборд, на первый взгляд, слабо отличался от классической Канбан-доски, однако в нашем случае столбцы означали не статус выполнения задач, а их тип. В этом дашборде для каждого требования формировалась отдельная строка, в которой были отражены все связанные с этим требованием задачи, сгруппированные по видам деятельности (в классической последовательности waterfall). Если задача была создана в интересах выполнения нескольких требований, то карточка этой задачи повторялась в каждой из строк связанных требований. Статус выполнения задач отражался на данном дашборде цветом, который создавал «третье измерение». Степень готовности требования определялась при этом готовностью всех связанных с этим требованием задач. Получилась как бы Канбан-доска вывернутая наизнанку. С другой стороны, с позиции положений PMBOK, сформированный дашборд представлял собой усовершенствованный вариант классической матрицы отслеживания требований (Requirements Traceability Matrix).
Для отображения статуса выполнения задач была принята следующая цветовая схема:
Кроме цветов, по мере развития проекта, карточки задач на дашборде обрастали дополнительными метками, которые позволяли с первого взгляда оценить состояние выполнения работ по проекту.
— обычный;
— важный;
— критический;
— блокирующий.
Метки о рамках требования:
— развитие (требования в рамках проектов, направленных на существенную доработку существующих систем);
— расширенное сопровождение (требования по оперативной доработке отдельных модулей системы по текущим изменениям бизнес-процессов заказчика);
— гарантийное сопровождение (выявлены ошибки программного обеспечения);
— внепроектная деятельность (требования руководителя проекта, связанные с предпроектной деятельностью, рефакторингом, пресейлом, освоением новых технологий, обучением сотрудников и т.п.).
Метки причины ожидания:
— запрос дополнительных сведений у заказчика;
— согласование с заказчиком;
— ожидание решения связанных задач/подзадач;
— требуется уточнение постановки.
— в задаче была доработана база данных;
— количество связанных с задачей требований (чем больше связанных требований, тем более важно выполнение задачи);
— количество нерешенных подзадач;
— задача переоткрыта.
Фактически, этот дашборд стал основным инструментом для ежедневного получения ответа на вопрос управления проектом: «А что у нас сегодня самое важное?», что позволило в свою очередь своевременно реагировать на возникновение проблем. С позиций предложенной модели, для предотвращения проблем на проекте, необходимо ежедневно обеспечивать снижение количества красного, оранжевого и желтого цвета на предложенном дашборде. С другой стороны, поводом для беспокойства также являлось отсутствие связанных задач для требования (т.е. ситуация, когда требование запланировано, а работы по его реализации — нет).
Использование фильтров для созданного дашборда позволило в комплексе отражать состояние дел по выбранному перечню требований. С его помощью удавалось оперативно координировать действия всей проектной группы, сосредотачивая усилия на наиболее проблемных участках, при этом не утрачивая целостной картины проекта.
Waterfall нельзя Agile
В интересах регистрации результатов работ по всем типам задач были развернуты два репозитория (для документации проекта и для кода программного обеспечения). Добавление (изменение) материалов в этих репозиториях автоматически отражалось в связанных задачах JIRA и являлось основным видом отчетности исполнителей.
Организация работ с использованием предложенного подхода регистрации задач в JIRA, сводилась к следующей схеме.
В рамках предложенного подхода хорошо зарекомендовало себя планирование работ с использованием метода «набегающей волны» (Rolling Wave Planning). При этом, отчасти благодаря вышеописанному дашборду, удавалось избегать разрозненности и несогласованности планируемых работ. На начальных этапах регистрации выборка по требованиям напоминала красный зонтик, когда для большинства требований не определены сроки готовности и ответственные исполнители, а работы запланированы только по их малой части. Однако постепенно дашборд требований превращался в сине-зеленый ковер. Появляющийся на этом ковре красные и оранжевые пятна заставляли проводить ежедневную корректировку намеченных задач, что способствовало снижению проектных рисков.
Предложенная модель организации данных показала хорошую масштабируемость. Изначально в своей работе JIRA использовали только три сотрудника из проектной группы (один аналитик и два программиста), при этом регистрировались требования по отдельным подсистемам. Однако к окончанию проекта 100% требований на развитие и на расширенное сопровождение регистрировалось и отслеживалось в JIRA с участием всех сотрудников проектной группы.
Несмотря на то, что замысел автоматизации управления проектом базировался на каскадной модели разработки (waterfall), оказалось, что в рамках предложенного подхода, при желании, могут безболезненно применяться элементы Agile. А кто, вообще, сказал, что водопад не гибкий? Например, для применения Scrum, в рамках предложенной модели, достаточно обеспечить регулярность проведения мероприятий (задач) по внедрению программного обеспечения, и тогда, соответственно, все работы, связанные с этим мероприятием, будут «вынуждены» подчиниться правилам спринтов, заданных таким образом.
Кроме этого, предложенный метод регистрации задач не ограничивает руководителя проекта в применении Канбан-подхода и использования всего многообразия Agile-дашбордов, которые предлагает JIRA «из коробки».
Продолжение следует
Что в итоге? Разработанное программное обеспечение принято в промышленную эксплуатацию. В ходе проведения предварительных испытаний, опытной эксплуатации и приемочных испытаний заказчик зафиксировал множество замечаний к реализованному программному продукту. Однако впоследствии на основании материалов уточнения требований, которые хранились в JIRA, 25% замечаний заказчик был вынужден признать как новые требования, выходящие за рамки проекта (планируемая трудоемкость выполнения этих требований была соизмерима с реализованным техническим заданием). Проблемы, связанные с выполнением контракта по госзаказу, не исчезли, однако контроль исполнения требований с использованием JIRA позволил выявлять риски срыва на стадии зарождения и оперативно на них реагировать. Это, в свою очередь, обеспечивало положительную динамику проекта на всех его этапах, несмотря на особенности национальной разработки программного обеспечения. Было замечено, что если требования заказчика зарегистрированы в JIRA и по ним сформированы задачи на анализ, разработку и тестирование, то в отношении таких требований происходило гораздо меньше разногласий и споров.
На текущем этапе (этапе сопровождения) все требования находят отражение в JIRA. Все сотрудники проектной группы так или иначе используют JIRA в своей работе. Затраты программистов на регистрацию результатов своей работы в JIRA отнимают менее 1% их рабочего времени. Для аналитиков, напротив, JIRA стала одним из основных рабочих инструментов. Поиск полного набора сведений по любому из требований заказчика составляет менее минуты. Отчетные документы по результатам выполненных работ формируются автоматически на основании данных, содержащихся в JIRA. Также на основе этих данных формируется сопроводительная документация к релизам (перечень изменений и программа испытаний релиза).
Двухлетний опыт применения JIRA по новым правилам подтвердил старые истины:
P.S. Эта статья является первой из цикла статей под названием «Правила своевременного приготовления вкусного программного обеспечения» который я использую как неформальный регламент команды на заказных программных проектах в интересах государственных организаций. В этот цикл входят следующие статьи:
— «JIRA как средство от бессонницы и нервных срывов» — основная идея по организации работ на проекте с использованием JIRA;
— «JIRA: границы проекта» — основные положения по унификации проекта и общие требования ко всем типам задач JIRA;
— «JIRA: управление требованиями» — ключевые особенности регистрации, уточнения и контроля реализации требований заказчика в рамках предложенной модели;
— «Проектные решения: игра по твоим правилам» — основные аспекты управления аналитической работой и формирования постановок задач для разработчиков;
— «Матрица компетенций аналитика для самурая в запасе» — критерии оценки уровня зрелости аналитиков на заказных программных проектах;
В рамках этого цикла настоящее время готовится к публикации:
— «Отчетность для неправильного руководителя» — отчетность по результатам работ сотрудников программного проекта.
— «Где прячутся неприятности на проекте» — критерии (метрики) оперативной оценки текущего состояния программного проекта.
— «Невыносимая легкость внедрения в эксплуатацию» — простые решения сложных проблем при внедрении в эксплуатацию заказного программного обеспечения.
Основной лейтмотив этой серии статей — обеспечить эволюционное совершенствование качества программных проектов на основе повышения эффективности управления. Другими словами — сформировать прикладные способы роста по уровням модели CMMI.
Если вы придумали как эффективней использовать JIRA на своем программном проекте — делитесь своими идеями. Только в описании этих идей избегайте словосочетания «как-нибудь» и «как-то». Приглашаю к обсуждению всех. Жду замечаний/предложений/сомнений/пожеланий в комментариях.