tgoop.com/emacsway_log/1098
Last Update:
Об инструментах управления процессами гибридной SDLC-модели разработки небольших проектов.
Почему меня интересует гибридная модель? По двум причинам:
1. Небольшие проекты имеют, как правило, низкий уровень неопределенности, а значит баланс Prediction/Adaptation у них смещен в сторону Prediction. Они могут разрабатываться вообще по спиральной или даже каскадной SDLC-модели.
2. Заказная разработка имеет свои особенности бюджетирования, и её процессы должны предусматривать активности анализа и архитектуры для формирования спецификации требований и утверждения их заказчиком/инвестором.
Я исследовал исключительно Open Source решения.
Абсолютным моим фаворитом стал TaskJuggler (упоминался здесь) - инструмент, который позволяет управлять процессами на текстовых файлах (подобно ADR).
К Taiga у меня интерес угас, т.к. он до сих пор еще использует AngularJS первой версии.
Внимательно изучил три решения: Trac, Redmine и OpenProject.
Все три системы хорошо настраиваются для гибридной разработки - Program Backlog можно организовать либо посредством иерархии проектов, либо через components/subcomponents/category. Все три системы поддерживают Gantt-diagram.
Trac - это недооцененное произведение искусства. Но есть нюанс - подавляющее большинство плагинов написано под версию 1.2. Начиная с версии 1.3.1 шаблонизатор Genshi заменен на Jinja2. Python3 поддерживается только начиная с версии 1.6, которая пока еще в разработке.
Если отфильтровать плагины, совместимые с версией 1.6, то можно увидеть, что для полноценной системы хватает не всего, т.е. развивается Trac в вялотекущем режиме. Это порождает дилемму - использовать Trac 1.2 с полноценным набором плагинов и самостоятельно мигрировать его когда-нибудь потом на Python3, или использовать Trac 1.6 и самостоятельно мигрировать недостающие плагины сейчас? Первый вариант выгодней в краткосрочной перспективе.
Чтобы получить полноценное решение на Trac, нужно попотеть, собрав винегрет из плагинов, но зато открываются широкие возможности кастомизации - можно допилить и PERT, и Monte Carlo, и многое другое. Внутренняя архитектура Trac вызывает симпатию, хотя и не без нареканий в адрес чистоты расслоения.Пока не обнаружил (два, три) в Trac возможность назначать ticket на команду (см. set_owner).
Сопоставление Agile-терминов и терминов Trac идентично как в Gitlab.
Redmine, в отличии от Trac, предоставляет основной функционал из коробки. Хотя он тоже имеет хранилище плагинов для расширения, но в них нет особой нужды. Есть неплохой плагин для Scrum, хотя Redmine и без него можно использовать в Agile.
OpenProject - это форк Redmine с Angular-based frontend, из коробки адаптированный под Agile несколько более Redmine.
Создание плагинов
Поскольку ни одно из этих решений не предоставляет возможности работать с оценкой, как с вероятностной распределенностью, то возникает потребность в допиливании.
Trac
- Developer guide
- Writing plugins
- Extension Points
- Project management ideas
- By apache (REST)
Redmine
- Developer guide
- Writing plugins
- Hook list
- Sample
OpenProject
- Developer guide
- Writing Plugins
- Application architecture
- Sample (там же список hooks & events)
Другие решения
LibrePlan - Open Source project management tool, поддерживающий Monte Carlo из коробки (упоминался здесь). Интересное решение для коллективного планирования. Не обнаружил поддержки иерархии ресурсов (Team/Member).
Но иногда коллективность не востребована, например, на этапе предварительного согласования плана разработки. Потенциальный исполнитель и заказчик/инвестор пока еще не объединены ни контрактом, ни совместно-используемыми инструментами, и их могут заинтересовать:
- ProjectLibre
- GanttProject (имеет политизированный GUI, но предоставляет средства синхронизации)
- Twproject Gantt editor
Django-based
Ещё привлекли внимание django-projector (давно заброшен, но несложно реанимировать), NearBeach и matorral.
Reference Application
From the book "Implementing Domain-Driven Design" by Vaughn Vernon for Java and for .Net.
#Management #Scheduling #Estimation
BY emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Share with your friend now:
tgoop.com/emacsway_log/1098