Expertus metuit
Системы управления жизненным циклом программного проекта
2010-03-12 16:37

У каждого программного проекта есть жизненный цикл. Для разных этапов такого цикла есть средства управления — багтрекеры, системы документирования, тестирования. Однако хочется найти полноценную систему для управления всеми этапами жизненного цикла проекта.

Если совсем упрощать, этапы жизненного цикла такие:

  • сбор требований
  • проектирование
  • реализация
    • рецензирование кода
    • контроль исполнения задач
  • тестирование
  • внедрение
  • поддержка/сопровождение

Для некоторых этапов есть различные инструментальные средства, например, для автоматизации тестирования есть TestLink, для контроля исполнения задач — разнообразные трекеры, например, Bugzilla, JIRA, Trac; для документирования есть разнообразные WIKI-системы. Есть попытки построить интегрированные решения из нескольких компнентов, например, линейка продуктов компании Atlassian — Confluence, JIRA и другие. Однако полноценного продукта, охватывающего ВСЕ этапы, мне не встречалось вообще.

Далее пойдут мои размышления на тему ожидаемой функциональности от подобного продукта.

Существует набор шаблонов технической документации проекта, охватывающий все этапы производства программного продукта — это проект Джейсона Роббинса ReadySET. Комплект этих шаблонов распространяется по лицензии BSD и поэтому может без проблем использоваться в практически любом программном продукте. Шаблон из ReadySet — это HTML-файл, в котором описывается какой-либо этап в жизни продукта. Описание чётко формализовано, присутствует подробное описание каждого шага. Однако статичная природа набора файлов не позволяет организовать динамичный процесс работы над проектом. Можно, конечно, держать его в системе контроля версий, но вот динамических, автоматически обновляемых ссылок между частями нет. Другими словами, нет интеграции.

Что есть интеграция? Поясняю на примере. Баг в трекере ссылается на конкретный use case из SRS. Причём ссылается качественно — баг «знает» юзкейсы, с которыми он связан. А юзкейсы «знают» баги, которые связаны с юзкейсами. Аналогично в тесткейсах есть ссылки на баги и, возможно, ссылки на тикеты в системе техподдержки.

Как можно заметить из описания выше, система рассчитана во многом на разработчиков и вообще на разработку. Но существуют подобные системы, ориентированные на project management с уклоном в менеджерство, например, JIRA Studio. Ещё одним недостатком JIRA Studio является его довольно спорный интерфейс, лично я к нему так и не смог привыкнуть.

Итак, что же делать? Так как подходящей системы для моих нужд не нашлось, я решил посвятить немного времени на постепенное обдумывание и формализацию требований к такой системе. Ожидаю, что это выльется в ряд статей, объединённых одной темой — проектирование системы управления циклом разработки программного продукта.

Комментарии

Евгений | 2010-08-10 в 16:02

Рекомендую Вам посмотреть на систему DEVPROM, которая как раз автоматизирует управление жизненным циклом программного продукта, вот ссылка на сайт продукта: http://devprom.ru

Текст комментария (разметка: *курсив*, **полужирная**, [ссылка](http://example.com) или <http://example.com> ещё)
Имя (обязательно, 50 символов или меньше)
Email, на который получать ответы (не будет опубликован)
Веб-сайт
© 2006—2016 Sergey Stolyarov | Работает на Pyrone