О project management и issue tracking
На рынке существует огромное количество project management и issue tracking систем, но пользователи (и производители) часто произвольно используют эти термины, что еще больше размывает разницу между понятиями. Это приводит к таким вопросам как:
- можно ли использовать MS Project для управление разработкой ПО
- можно ли использовать TrackStudio вместо MS Project
- что лучше - MS Project или TrackStudio
Предметная область у этих систем очень похожа (контроль задач и сроков), но в большинстве случаев они не могут заменить друг друга.
Итак, заказчик обычно хочет от программистов систему, которая бы решала его бизнес-задачи. Он не хочет систему имеющую такой-то набор функций, он хочет решения проблем. Техническое задание, (т.е. описание компонентов и функций системы, а не решения его задач) - это обычно максимальный уровень абстракции, на котором заказчик готов понимать проект. После этого заказчик хочет разбить весь проект на понятные этапы и контролировать сроки, затраты, процент завершенности и т.п.
Для общения с заказчиком project management система - идеальный вариант:
- заказчик видит нужную ему информацию на понятном ему языке. Например, если в плане MS Project написание генератора отчетов - это одна задача, то заказчик хочет знать когда эта задача будет выполнена, кто за нее отвечает, сколько денег ушло на выполнение этой задачи, процент выполнения. Эта информация позволяет решать заказчику свои проблемы, не вникая в процесс программирования.
- заказчик не видит лишней информации. Заказчику важно состояние проекта, его не интересует процесс написания. Поэтому не нужно в project management системе дробить "генератор отчетов" на 100 подзадач, описывать состояние каждой из них, переписку и т.п. - все равно заказчику эта информация бесполезна.
Но для программистов уровень project management - это сплошная абстракция:
- программисты хотят знать не что должно быть в итоге, а что им прямо сейчас нужно делать. Программистам нужно описание процесса (сделай диалог такой-то, исправь багу, подвинь кнопку на 5 пикселов вправо), а не описание результата.
- программисты не могут сказать на сколько процентов у нас готов генератор отчетов, они могут более-менее точно сказать сколько часов у них займет реализация данного конкретного изменения (подвинуть кнопку вправо), причем без учета тестирования и исправления ошибок.
- программист не может сказать какие зависимости между генератором отчетов и модулем импорта, каждый из этих компонентов может включать сотни задач, не все из которых будет делать он. Даже если он может написать генератор без модуля импорта, то это не значит что тестировщик сможет его протестировать.
Значит, должен быть отдельный человек (project manager) который и будет заниматься переводом с языка "что должно быть" на язык "что нужно сделать" и обратно. Он должен сначала разбить задачу "написать генератор отчетов" на 20-30 подзадач, назначить ответственных (разные части генератора могут делать разные люди), периодически контролировать состояние работы, создавать новые задачи по мере необходимости и т.п. Именно для этого и нужна issue tracking система.
Периодически он должен оценивать сколько еще задач не сделано, на какую функциональность change requests еще не писались, что уже протестировано, как часто обнаруживаются новые проблемы, сколько пользователей работало с системой и т.п. делать свою оценку процента завершенности и сообщать ее клиенту (например, вносить в отчет MS Project).
TrackStudio позволяет интегрировать issue tracking и project management - для этого нужно создать дерево проектов в TrackStudio, после чего в каждом из этих проектов менеджер дает конкретные задания для программистов. TrackStudio позволяет на основе данных программистов считать затраты времени на любую часть проекта, устанавливать сроки и бюджеты, контролировать их выполнение.
TrackStudio даже позволяет выполнять экспорт данных в MS Project, при этом можно указать какие именно категории задач должны включаться экспортироваться (например, сообщения об ошибках не включаем). Но польза от использовании экспорта в MS Project для автоматического рисования отчетов минимальна по следующим причинам:
- по мере выполнения работ задачи создаются постепенно, issue tracker не знает какие задачи в систему не внесли, насколько интенсивно тестировалось приложение, как часто тестировщики находят проблемы, показывали ли систему пользователям и т.п.
- задачи по разным подпроектам выполняются практически постоянно с начала старта проекта до его окончания. В MS Project это выглядит как дробно-кусочный график, где каждая работа выполняется в течении всего времени работы над проектом (ведь с точки зрения программиста это именно так и есть).
Ответы на вопросы в начале статьи:
- MS Project можно использовать для управления разработкой ПО если заказчик и программисты говорят на одном языке: заказчик готов ставить конкретные задачи программистам или программисты готовы сами себе ставить задачи на основе ТЗ.
- TrackStudio можно использовать для составления/корректировки планов для заказчика. Возможности по обработки первичной информации (сколько времени уходит на решение задачи, какого рода запросы клиентов мы чаще всего не можем решить и т.п.) значительно превосходят большинство конкурирующих продуктов, но _автоматически_ генерировать отчеты для клиента на основании любой issue tracking системы - это плохая идея. По тем же причинам нельзя генерировать "руководство пользователя" на основе исходного кода, комментариев или переписки программстов.
- Если заказчики не могут выделить в проекте 100-200 подпроектов, состояние которых они готовы контролировать, то использование MicroSoft Project будет излишеством, уж лучше Excel. Если внутренняя организация команды разработчиков простая (мало программистов, у каждого свой четко выделенный кусок работ, программисты сами общаются с заказчиком) - использование issue tracking тоже будет лишним и можно попробовать обойтись Excel.
А вот если и заказчик хочет детальный контроль, и программистов много - надо искать систему, которая бы устроила и клиента, и программистов. Начать можно с TrackStudio.
PS. Вот тут обсуждается вопрос автоматического вычисления процента завершения проекта на основе информации в трекере: https://www.facebook.com/TrackStudioEnterprise/posts/722333911149533