Как стать автором
Обновить

Комментарии 20

А про автовыравнивание ресурсов в MSПроджекте не вспоминалось? хотя денег хотят много.
Кстати, у вас задачи могут рваться?
Например:
у Алисы задача А:3дня и задача С:10 дней
у Боба Б:2 дня, но от неё зависит А
Алиса будет:
1. 2 дня балду пинать, а потом возмется за А
2. будет делать 2 дня С, потом А, потом С
3. Сделает С целиком, потом возьмется за А

Ну и я бы получив граф задач ходил не по нему, а по исполнителям/квантам времени(далее — датам) — в конце концов их надо работой загрузить. (неявные зависимости в этом случае не нужны)
1. Отсортировать пары исполнитель/дата по дате
2. Для текущей верхней пары выбрать задачи исполнителя без входящих связей
3. Назначить на дату самую приоритетную
4. Сократить ей время на день
5. Если задача завершилась, убрать из графа
6 GOTO 2 если граф не пуст.

Как вариант условие выхода — достижение горизонта планирования. Тогда можно отвечать на вопрос «а что вы успеете за месяц»
Да, точно, в MS Project тоже такое умеет! Забыл упомянуть, т.к. на маке уже не первый десяток лет работаю, а там MS Project нет.
Разрыв задачи — интересная штука. На практике, правда, редко когда так делаем, т.к. уходит дополнительное время на переключения, да и сами задачи стараемся короче формулировать. Поэтому сильно про такую штуку не думал.
В вашем алгоритме надо еще как-то отслеживать занятость исполнителя и временные сроки. Кажется, это довольно все усложнит.

Занятость исполнителя надо отслеживать в любом случае. Мы же ради этого алгоритм делаем. У меня описание конечно под разрыв задач сделано.
Какие сроки нужно отслеживать? (да, мой алгоритм только под явные связи начало — окончание и задачи начинать "как можно раньше" под экзотику нужно доделывать, но кажется не сильно усложнит)


Если задачи не рвем, то можно по исполнителям сделать иначе:


  1. Собираем список исполнителей указываем для каждого дату, когда он свободен (сегодня по умолчанию, если он сейчас занят на задаче — окончание задачи +1)
  2. Отсортировать исполнителей по дате освобождения
  3. для верхнего исполнителя выбрать задачи без входящих связей (здесь если надо ограничения "не ранее" для задачи)
    1 если таких нет, то дата освобождения сдвигается на день (квант) го 2
    2 Назначить самую приоритетную задачу
  4. сдвинуть исполнителю дату освобождения (здесь праздники, отпуска и тд)
  5. Исключить назначенную задачу из графа (по сути — обновить счетчики входящих у связанных с ней задач)
  6. го 3

По сути работаем с 3 объектами:


  1. Граф задач с явными связями и счетчиком входящих для каждой задачи
  2. список исполнителей с датами освобождения
  3. Список задач с 0 входящих. Этот список один раз строится по графу, а в процессе работы из него исключаются назначенные задачи и туда просто переносятся задачи у которых счетчик обнулился на шаге 5, без дополнительных обходов графа.
На шаге 5 «Исключить назначенную задачу из графа» получается будут теряться зависимости между задачами, разве нет? Типа Задача Б зависит от Задачи А. Задачу А отдали Васе и, получается, можно Оле сразу отдать задачу Б, а ведь надо дождаться окончания А сначала.

Угу…
Значит поле "начинать не раньше" для задачи нужно обязательно. Так разговоры кончатся тем, что напишу таки свой вариант "в железе". Давно задумывался, уж больно проджект дорог в проф варианте.

В копилку:
Сетевое планирование и метод критического пути. Насколько помню, Мстислав Всеволодович Келдыш по заказу Госплана.
О, шикарная теория, спасибо! Умели же делать и понятно объяснять.
Действительно, для полноты решения также надо выводить критический путь и добавить инструменты выставления неточных сроков. Последнее, кстати, в каком-то виде есть в Omniplan, там сроки вех вычисляются с помощью симуляции Монте-Карло.
Интересная тема про поздние сроки (запас времени для окончания работ по задаче) и в целом понятие резерва, такого я нигде еще не видел.
Вообще меня это вдохновило попробовать сделать не Ганта для работы с проектом, а сетевые графики из системы в ролике.
В критическом пути прекрасно все, кроме одного — в реальной жизни он применим очень плохо. Эффективно работает только критическая цепь, теория кратко описана например тут: habr.com/ru/post/25621 (хотя лучше прочитать книжку «Вовремя и в рамках бюджета», там методология описана полностью и очень подробно). Если Вы реализуете критическую цепь — благодарные проджект-менеджеры поставят Вам памятник, софт, который работает с критической цепью, практически отсутствует.
Критическая цепь Голдратта из поста очень похоже на советский СПУ. Там и там предлагаются инструмент борьбы с неопределенностью. Мне советский вариант показался более понятным и последовательным.
Интересно, система Голдратта наша реализацию в каком-нибудь ПО?
Имеет, конечно. Единственный софт, которым можно хоть как-то пользоваться — LYNX, www.a-dato.com/ccpm-software и это кошмар юзабилиста. Реализация не web, а как толстый клиент, только под винду. Единственная известная мне реализация для web bipulse.ru — более-менее пригодна к использованию, но имеет собственные проблемы. И собственно это все, поскольку остальные решения — никак не для малого бизнеса. Думаю, есть еще некоторое количество самописных решений, я сам себе в свое время писал простой калькулятор буфера, но к сожалению нужно полное решение, просто следить за буфером недостаточно. Место на рынке пока пустует.
CCPM software: www.marris-consulting.com/en/points-of-view/critical-chain-project-management-software-solution

Кирилл, со сравнению с 2017 годом, сейчас BIPULSE — почти не имеет проблем, однако для эффективного применения требует использования Метода управления «Pulse Management» pulsemanagement.org (цикл публикаций на Хабре habr.com/ru/post/462423)
Метод учитывает особенности применения CCPM для «реальной жизни» ИТ-проектов.

Проблема внедрения CCPM не в софте, а в головах. Так как требуется перестройка способа мышления и принятия решений.
Про проблему в головах безусловно согласен, это вообще основная сложность внедрения логических инструментов теории ограничений.
Но то что софт с хреновым юзабилити проблемы эти усугубляет на порядок — это тоже факт, подтвержденный опытом. Люди и так сопротивляются изменению устоявшейся практики, а тут вы им вгружаете дополнительные не самые простые инструменты…
Простой пример — циркулярный опрос команды «сколько осталось времени до завершения твоей текущей задачи?». Это в BIPULSE как реализовано? Есть простое приложение для iOS, чтобы оно мне напомнило в конце дня записать мои свежие оценки по завершению в простейшую форму или прямо из тайм-трекера отправить? Зуб даю, что нет, зато на скриншоте видно «План выполнен на 88%». Смекалка подсказывает что исполнитель по прежнему сообщает не «сколько осталось», а «сколько сделано». Пичалька.
>> циркулярный опрос команды «сколько осталось времени до завершения твоей текущей задачи?».

1. Собираем всех на «летучку»
2. Открываем «План / Оперативный / Задачи в работе» (там все факты есть сколько потратили времени и сколько хотели)
3. Идем по каждой задаче и задаём вопросы.

Если команда работает асинхронно и проект идет по CCPM (важно), и «летучку » не провести, то:
1. У исполнителя как правило есть своя задача «в работе» и карточка на неё уже открыта
2. Он тыкает в «осталось дней» и вводит значение +таб. Всё.
3. Мы на План/Тактический видим отклонение проекта.

Но этот метод плох тем, что мы не можем ускорить исполнение «в моменте». Так как на живой вопрос, мы получаем живой ответ и можем сразу предпринять корректирующие действия. Я соглашусь что дополнительный робот-пинатель будет хорошо, но его отсутствие пока это ни разу не являлось препятствием к внедрению.

>>Люди и так сопротивляются изменению устоявшейся практики, а тут вы им вгружаете дополнительные не самые простые инструменты…

Классное замечание! Мы это в версии 7.0, которая вышла в апреле этого года, преодолели! И теперь для исполнителей есть профили «исполнитель» — для тех кто «могу копать, могу не копать» и «инженер» — доски, списки задач и целей. А все стальное только для руководителя

>> 1. У исполнителя как правило есть своя задача «в работе» и карточка на неё уже открыта

Это если айтишники. А если проект из реального мира, под рукой исполнителя только телефон, как правило. Это не моя блажь, с мобильным интерфейсом, к сожалению, а реальная боль. И исходя опять же из опыта, если «управляемым» дать удобный мобильный интерфейс для отчетности, довольно большое количество проблем исчезает. Сам удивился, но факт. Народ практически саботировал внедрение таск-трекера, сделал им простейший PWA с тремя полями и двумя кнопками + напоминалкой, пользоваться стали вообще без понуканий. Мелочь, но может оказаться важной.
А понял! Если мы говорим про «монтажников», у которых только мобильник. то сейчас в BIPULSE есть возможность зарезать интерфейс в профиле «исполнитель» по максимуму. Но без реального Клиента с такой областью применения приоритет реализации такой функции весьма туманен %(

На самом деле это конечно не только «монтажники». Если есть API, сделать удобный (== простой) мобильный клиент это ~ 1 человеко-месяц. Но я понимаю, что методика все-таки важнее интерфейса, и ограниченные ресурсы имеет смысл направлять туда :)
При этом я считаю что BIPULSE на данный момент наиболее соответствует представлению о прекрасном в мире CCPM. У меня просто завышенные требования к юзабилити, это сугубо мои проблемы. Хотя я остаюсь при мнении, что юзабилити может чуть не половину сложностей внедрения разрулить.
Благодарю за комплимент! Над эргономикой мы работаем, но ключевое для нас: готов ли Клиент использовать BIPULSE для решения своих задач. Если использует, то на основе обратной связи мы адаптируем интерфейс. После смены frontend движка у нас появилось много возможностей по калибровке.

Из недавних примеров изменений на основе запроса: добавили опцию режима ручного планирования задач и задание режима расчета буфера чисто по CCPM и его размера вместо «адаптивного» по Pulse Management.
Комплимент заслуженный :) Я слежу за темой CCPM, пока у вас действительно наилучшее приближение к инструменту, который возможно применять в реальности. При случае попробую применить, для общего развития.
НЛО прилетело и опубликовало эту надпись здесь
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.