понедельник, 1 сентября 2008 г.

Как назначать задачи в Agile (Task Volunteering)

Вопрос по назначению задач не даёт спать. В ряде веток Agile задачи назначаются руководителем (см. FDD методологию). Но в основном принято задачи разбирать самими разработчиками. Остаётся вопрос - когда?

Вариант 1 (Tasks ownership). В начале итерации все расхватывают задачи, а потом уже помогают друг другу. Общий пул задач. Каждый, кто освободился, берет себе задачу с наивысшим приоритетом.
+ Ориентация на общее решение (приоритетность задач)
+ Выполняется максимально возможное количество самых приоритеных задач
+ Возрастает мотивация (я выбираю сам согласно приоритету, я являюсь вкладом в командный успех)
+ Командная ответственность
+ При появлении высокоприоритетных задач во время итеррации их легко отправить в разработку
+ Можно "вынашивать" решение: есть время подготовится к решению задачи в свободное от работы время (поразмышлять, почитать лит-ру), а потом поделиться размышлениями с коллегой, взявшим задачу
+ Общее владение кодом
+ Общий стиль программирования
+ Кросс-функционалность
+ Повышение коммуникации

Вариант 2 (Individual Commitments). Общий стэк задач на всю итерацию, и каждый отхватывает самую приоритетную.
+ Ориентация на личные предпочтения
+ Возрастает мотивация (я выбрал задачи сам)
+ Индивидуальная ответственность
+ Специализация разработчиков
+ Можно "вынашивать" решение: есть время подготовится к решению задачи в свободное от работы время (поразмышлять, почитать лит-ру)
- Разные стили программирования
- Незаменимость учатников
- Снижение коммуникации

Я работал в обоих вариантах. Есть свои плюсы и минусы в обоих. Предлагаю послушать эксперта в области оценки в Agile проектах:

Individual Commitments

When assessing the ability to commit to completing a set of new functionality,
some teams prefer to allocate each task to a specific person and
then assess whether each individual is able to commit to that amount of
work. This approach works well and I’ve recommended it in the past
(Cohn 2004). However, I’ve found that by not allocating tasks while planning
the iteration and not doing the personal math needed to make individual
commitments, the team benefits from the creation of a “we’re
all in this together” mindset.

If you do find a need to allocate tasks to individuals while planning an
iteration, the allocations should be considered temporary and subject to
complete change once the iteration is planned and underway.

src:
1. Mike Cohn Agile Extimating and planning
2. Беседа с Ильёй Сербисом :)

Комментариев нет:

Отправить комментарий