Проектное управление

Разработка программного обеспечения всегда сложный процесс. Управление таким процессом в чем-то схоже с классическим проектным подходом PMBoK (Project Management Body of Knowledge). Конечно есть специфика в неопределенном количестве итераций работ над каким либо участком программы, описанная в методиках Rational Unified Process, Agile, eXtreme programming.

Из практики проектной работы мне видно боольшое разнообразие индивидуальных методик буквально в каждом проекте. Шаблоны почти никогда не работают в общем виде. Постараюсь раскрыть особенности, с которым приходилось мне встречаться.

Microsoft Project

Обычно первым инструментом на пути всех новичков попадает в руки продукт компании Microsoft. Он удобен табличным Excell стилем интерфейса, сразу видна группировка задач и легко назначать ответственных. Интеграция c Microsoft SharePoint сервером позволяет получить заодно удобное хранилище для документов и списков проекта.

Проект «Система проектной реализации заказов»

Заказчик: WhiteSite (2002)

Проведен анализ бизнес процессов производства. Реализована система матричного проектного производства Интернет представительств на базе продукта «Microsoft Project 2000 + Microsoft SQL Server» с возможностью сетевого распределенного планирования проектов на едином пуле ресурсов. Разработаны библиотечный модуль управления мультипроектной структурой и модуль интеграции системы маркетинга продаж с системой реализации заказов.

Управление лабораторией беспроводных систем мониторинга

Заказчик: Институт Точной Механики и Вычислительной Техники им. Лебедева

Развернут проектный офис в интеграции с Microsoft Sharepoint Server, организовано более 30 проектов для работы с заказчиками по изготовлению стендов и опытных образцов устройств сенсорной сети на основе радиопротокола ZigBee.

Spider Project

Во время прохождения стажировки в российском отделении PMI в 2002 году у Либерзона Владимира Иосифовича (одного из автором PMBoK) узнал много интересного о методах проектного управления - о критическом пути в сетевых графиках работ, проектных вехах (а не групп задач), иерахиях задач, которых может быть несколько для разных проектных процессов.

Самое главное - пришло понимание необходимости описывать ресурсы проекта, их характеристики в затратах и эффектах. Такие характеристики позволяют легко рассчитывать сложные параметры проекта, строительные сметы.

Expert Project

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

Подготовка венчурного проекта

Заказчик: Институт Точной Механики и Вычислительной Техники им. Лебедева

Одной из целей работы направления сенсорных сетей было формирование инвестиционного проекта для вывода технологии на рынок. Мною было разраоботаны несколько бизнес-планов в Project Expert для разных применений технологии. По некоторым из них были иницированы венчурные процессы.

Redmine

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

Управление группой проектов программной разработки

Работа над системой электронной коммерции в компании Триумф в период 2009-2014 была связана с поиском продуктового образа и сопровождалась десятками проектов по программной разработке, веб дизайну и трехмерному моделированию.

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

Управление юридическим агентством

Попутная задача для соседнего юридического отдела выявила способности Redmine к организации юридических проектов с определением специфических метрик потраченных часов, проведенных мероприятий и оценки результативности юристов.

GitLab

Формальные проектные цифры все же не дают глубокой картины по проекту. На определенной стадии проекту нужно подробное описание и интегрированное взаимодействие участников.

Тенденцию в программных проектах по уменьшению формальности, упрощению заведения задач и возможности проще описывать ситуации с задачами задал сервис GitHub с чатом Slack. Офисным аналогом GitHub стал GitLab и чат Mattermost.

Управление разработкой программных продуктов

Работа над системой электронной коммерцией в компании Триумф в период 2015-2020 была связана больше с продуктовой разработкой. В этот период особое внимание уделялось проектному окружению, рабочей документацией, разработке конкуретноспособной системы требований, отладке архитектуры и функциональности программных продуктов.

Все перечисленные работы были более эффективно организованы в GitLab, Mattermost и Sphinx. Благодаря формату рабочей документации Sphinx удалось максимально сильно интегрировать все участки проекта и объединить программистов с конструкторами, руководством и группой тестирования.

Sphinx

Любой сложный проект требует рабочего окружения. По опыту продуктовой разработки желательно, чтобы формат рабочего окружения был близок к документации.

Интересным вариантом создания рабочего окружения было сочетание GitLab хранилища кода, интегрированный с GitLab чат Mattermost и система документирования Sphinx (подробнее см. Рабочая документация в Sphinx).

Отличительные особенности программы

  • формирование комплекта автономных веб-страниц с поддержкой поиска и тем оформления

  • возможность размещения в качестве сайта на любом файловом хостинге без использования сервера баз данных и сервера веб-приложений (GitHub, BitBucket, GitLab)

  • автоматическое создание структуры навигации по группе файлов на основе заголовков

  • возможность использовать для работы любой тектовый редактор

  • поддержка систем версионного контроля (Git например) для коллективной работы

  • использование интуитивного языка разметки reStucturedText с богатым набором директив

  • поддержка автодокументации программного кода

  • кроссплатформенная работа на разных операционных системах (Windows, Linux, MacOS)

Плюсы для программной разработки

  • документация имеет сквозную структуру из нескольких файлов, что позволяет формировать логически связанную подшивку документов с более легкой навигацией и поиском по сравнению с офисными документами, сложенными в случайные папки

  • документацию легко «наращивать» с простого технического задания иллюстрациями прототипированных пользовательских форм, описанем алгоритмов работы и спецификациями программных модулей

  • документация может выполнять роль базы знаний по проекту, доступной для всех участников

  • в каждом разделе документации можно фиксировать планы работ, замечания, ошибки и формировать сводный раздел по задачам из всех разделов

  • для планирования легко выделять новые разделы для недельных и месячных спринтов

  • в документацию легко вставлять видеофрагменты и анимированные гифы

Бизнес процессы

В документацию Sphinx можно размещать html фрагменты с помощью директивы .. raw:: html.

Например можно вставить SVG диаграмму бизнес процессов, созданную предварительно в Draw.io. SVG файлы можно также вставлять документацию с помощью лиректив .. image:: <название файла> и .. figure:: <название файла>.

Пример диаграммы MindMap

Container
Central Idea
Central Idea
Branch
Branch
Sub Topic
Sub Topic
Organization
Organization
Sub Section
Sub Section
Sub Section
Sub Section
Division
Division
Division
Division
Viewer does not support full SVG 1.1

Пример диаграммы Aris

../../_images/D.svg

Разработанный мною комплект элементов для методолигии Aris.