Ответ на комментарий / вопрос AviD к Джоэлу :
Итак, если у вас есть 10 новых функций
в следующей версии, с каждой функцией
вам нужно выполнить 5 задач, вы
рекомендовать создавать 10 выпусков? А также
как мне определить, что это
функции / "релизы", которые должны быть
включены в предстоящий релиз?
Вот как мы справились с этой конкретной проблемой в процессе разработки:
- Сначала мы составили регулярный график выпуска: ежемесячные внутренние выпуски и ежеквартальные внешние выпуски. Этот график никогда не меняется, но назначение задач / завершение функции меняется. Это очень важно с точки зрения упрощения нашего общения между людьми: не пытайтесь спорить с календарем.
- Основные функции («10 новых функций» в вашем примере) превращаются в случаи (например, случай 101 в случай 110).
- Каждая задача, являющаяся подкомпонентом основной функции, также создается как подслуча с описанием того, что делает этот кусок работы важной частью более широкой картины. Ранее, в Fogbugz 6, мы использовали функцию «Смотрите также», позволяя нам искать текст для нас (например, «Это подкомпонент случая 101»). Это было фактически то же самое, но менее эстетично.
- Теперь, когда мы разбили работу до ее высочайшего уровня полезности, мы привлекаем к обсуждению реальных разработчиков. Каждое задание и основная функция индивидуально назначаются конкретному разработчику.
- Разработчик определяет, когда он может выполнить порученную ему работу, выбирая соответствующую дату внутреннего выпуска, которую, по его мнению, он может принять на себя.
- На данный момент у нас есть приблизительный набросок того, что будет сделано для каждого выпуска. Дальнейшие уточнения продолжаются, поскольку работники фактически оценивают часы, которые им понадобятся для выполнения работы, включая планирование на основе фактических данных и т. Д.
Для вопроса AviD, однако, он решит проблему назначения релиза с помощью шага 5 выше.
Тем не менее, я думаю, что пункт 6 является наиболее интересным, потому что именно здесь у вас действительно плотный график. Например, если у разработчиков возникают проблемы с оценкой более крупной задачи, они разбивают ее на подслучаи еще дальше. Обратите внимание, как моя оценка «наилучшего уровня полезности» может отличаться (возможно, сильно) от человека, которому действительно нужно выполнить работу.
Это также время, когда разработчик может обратиться к кому-то еще и сказать: «Я могу сделать большую часть этого, но было бы действительно полезно, если бы человек Х мог помочь мне с этим маленьким кусочком Y». Именно на этом я и выполняю большую часть своих задач по разработке: я лично сижу в разных местах во время этого процесса, от крупномасштабных совещаний по планированию до маленьких непростых задач, которые никто больше не успевает выполнить.
PS: Создание личной цели, чтобы этот ответ был оценен выше, чем у Джоэла ....; -)
PPS: Мой первоначальный ответ теперь преодолевается событиями, так как в Fogbugz 7 есть прекрасные подзадачи. Руководители программ любят эти отчеты.