Интро
На рассуждения ниже натолкнула "стандартная" проблеме в мире IT - разработка нового vs поддержка существующего. В некотором смысле, она подобна проблемы баланса задач разного цвета для индивидуального перформанса.
Рост или sky is the limit
Самая примитивная модель производительности говорит, что за один и тот же отрезок времени t выполняется один и тот же объем работы x, что можно условно записать как
dx = dt, x (t)= t
Выражение выше никак не учитывает эффект, который, я думаю, многие наблюдали в проектах - чем больше сделано, тем сложнее делать следующий шаг
Можно попробовать смоделировать это следующим образом
dx = dt / sqrt(x), x (t)= 2 sqrt(t)
- Производительность падает с объемом выполненной работы, разница лишь в скорости замедления.
- Решением является функция, которая бесконечно растёт, не ограничена сверху.
Растущее легаси или пределы роста
Наивный подход, который моделирует влияние легаси, исходит из двух предположений
- чем больше сделано, тем больше сил тратится на поддержку с коэффициентом пропорциональности, допустим 0,01
- поддержка осуществляется из общей производительности
приводит к следующему уравнению
dx = (1 -0.01x) dt, x (t)=100 (1 - exp(-0.01t))
Давайте, посмотрим как ведет себя решение.
"Линейное" начало
"Небольшое замедление" в середине
И "насыщение" на бесконечности
Особо стоит отметить
- Прогресс всегда есть, инкремент всегда положительный
- При положительном прогрессе отметка в 101 не будет достигнута никогда
Таким образом, создается работа для любого размера команды. Всегда будет репортиться прогресс. Всегда будет не хватать чуть-чуть для достижение целей.
Вместо заключения
Мы всегда так работаем, и смотрите чего достигли ! Мы всегда показываем прогресс! Просто не хватило пары спринтов!
Путь маленьких шагов может сойтись в точку, и Ахиллес никогда не догонит черепаху.
В IT проектах, количественные: постоянный рост техдолга, замедление релизного цикла, - качественные: рассказы разработчиков как неделями провели на SL3 и фиксили прод, сложность анализа и изменений в стиле 3 недели думали, как изменить одну строку кода.
В личных, рост количества повторяющихся задач и увеличение красных vs зеленых.
Интересно, а как нелинейная продуктивность воплощается в жизни?