You are viewing [info]cartmendum's journal

Previous Entry | Next Entry

Cartmendum
“Эту задачу следует выполнить. Приоритет задачи - 3”. Как много в этих словах… Всего много… Только смысла мало.
В моей картине мира приоритет каждой задачи – уникален. Его можно выразить одним числом, но оно не должно повторяться. Уникальное значение приоритета равносильно выстраиванию задач в общую очередь: сверху самые важные задачи, внизу – то, без чего никто не сдохнет. Мысль не нова, не я первый придумал такой способ приоритезации, но замолвить об этом словечко хочется.



Итак, почему очередь лучше, чем приоритеты вида 1,2,3?

Мысль первая

Если число задач превышает возможности команды, то все эти коды приоритетов рано или поздно сводятся к двум: «нужно делать» и «не нужно делать». Естественно, не явно, но сводятся. Что означает «приоритет 3»? Это значит, что приступать к этой задаче стоит, когда выполнены все задачи с приоритетом 2. А эти задачи не могут выполняться, пока есть задачи с приоритетом 1. Вы можете вспомнить, когда у вас не было задач с приоритетом 1? Все команды, с которыми я так или иначе сталкивался, львиную долю своего времени уделяли задачам только первого приоритета. Задача с приоритетом 3 как правило мариновалась до тех пор, пока для заказчика она не будет иметь приоритет 1. В итоге все сводится к реактивной методике – FDD (Fuck-up Driven Development).

Мысль вторая

В системе приоритетов «1,2,3», стоимость повышения приоритета не очевидна для заказчика. Если заказчику кажется, что команда выполняет его задачи не так быстро, как ему хотелось бы, то появляется великое искушение выбрать какую-нибудь задачу и сказать: «Парни, теперь у нее приоритет 1». Сказать легко. Но подобные трюки не проходят бесплатно – повышение приоритета одной задачи неизбежно отражается на выполнении других, и механизм очереди способен это наглядно показать. Если задача действительно важная, то мы берем и поднимаем ее выше. Естественным образом все задачи между старым и новым местами в очереди сдвигаются вниз. Многие ненавидят этот механизм...



Мысль третья

Человек не способен эффективно выполнять больше одного дела одновременно. Наиболее эффективный режим – взять ОДНУ задачу, сделать, взять еще ОДНУ, сделать, и т.д. Таким образом, если число задач превышает допустимую область значений параметра «приоритет», то неизбежно у нас будет несколько задач с одинаковым значением этого параметра. Хорошо. Перед нами куча задач, с приоритетом 1, так все-таки, какую из них взять первой? Не понятно? Конечно! Нужно ввести еще тучу параметров, определяющий серьезность, стоимость, возврат инвестиций, бизнес необходимость, значимость для репутации… Потом обязательно придумать страшенную формулу, по которой рассчитывать очки кармы для каждой задачи. И все равно, какую из этой кучи начать делать первой? Конечно! Нужно собраться и обсудить. В итоге будет решено, что 5 задач из этой кучи все-таки самые важные и на каждую из них нужно назначить 20% ведущего разработчика… Это дорога в ад.

Делать 5 задач одновременно – самый лучший способ искренне затрахаться, без всякого полезного результата.

Comments

( 65 comments — Leave a comment )
[info]peeplevarreh wrote:
Nov. 20th, 2009 08:01 pm (UTC)
Про пять - наверное, до фига. Две-три - нормально. Если проект, конечно, предполагает программирование, а не закручивание гаек на заводе.
[info]cartmendum wrote:
Nov. 20th, 2009 08:59 pm (UTC)
Сильно от человека зависит. У меня сейчас в команде есть человек, которому не комфортно, когда у него в голове больше 1й задачи. И есть боец, спокойно переключающийся между 3-5 небольшими задачками.

В моей религии число одновременно активных задач на человеке индивидуально и решается совместно.
[info]peeplevarreh wrote:
Nov. 20th, 2009 10:07 pm (UTC)
Так индивидуально или способ искренне затрахаться?
[info]cartmendum wrote:
Nov. 20th, 2009 10:12 pm (UTC)
Индивидуально. Но человек, которого не затрахивает больше 3-х одновременно активных задач, мне попался только один. Подовляющее большинство это просто затрахивает.
[info]23derevo wrote:
Nov. 20th, 2009 08:40 pm (UTC)
Ваше творчество мне нравится больше и больше. Да, это грубая лесть.

Я не знаю, почувствовали ли Вы, но "обезьянки против роботов" стали бомбой. Наверное, им не быть в топах яндекса (туда попадают всякие бездомные собаки, тимати, тёмы лебедевы и пр). Потому что целевая аудитория сильно шире. Тем не менее, волна пошла. У вас есть реальный шанс сформировать вокруг себя российское IT-сообщество (имхо его сейчас ещё нет). А то ходят слухи о всяких джагах и пр, но они все мёртвые по ходу. Из живых тем только hackdays на ум приходят.

Такой шанс выпадает не всем. Пользуйтесь. Люди за Вами пойдут. Может получиться очень и очень интересно.

P.S. Вы не думали написать книжку? Или публиковаться в журналах? Думаю, уровень доверия у публики был бы очень высок.
[info]cartmendum wrote:
Nov. 20th, 2009 09:52 pm (UTC)
Спасибо за грубую лесть. Стараюсь...

То, что обезьянки популяризовались, я уже заметил по счетчику просмотров: 2500 просмотров первой части и по 1000 второй и третьей. За месяц, для слайдкаста, где нет ни одной сиськи - не плохо.

Вести за собой кого-то - об этом я пока и не думал. Я не на столько крут и опытен, что бы говорить всем куда и как надо идти. Честно говоря, я и сам-то пока не чень понимаю, куда эта вся индустрия должна попасть.

Про книжку думаю... Есть мысль собрать "курс естествознания для менеджера проекта" в единое целое и опубликовать. Ну и еще мне предложили чего-нибудь в PMMagazine опубликовать. В начале декабря это чего-нибудь им пошлю, то есть в первом квартале следующего года опубликуют.

Еще раз спасибо за лесть :)
[info]23derevo wrote:
Nov. 20th, 2009 10:42 pm (UTC)
Честно говоря, я и сам-то пока не очень понимаю, куда эта вся индустрия должна попасть.

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

Вам интересно рассказывать. А слушать? Если да, то это и есть шаги к комьюнити.
[info]cartmendum wrote:
Nov. 21st, 2009 10:53 am (UTC)
Рассказывать интересно. Слушать - еще интереснее. Если людей не слушать, то скоро не о чем будет рассказывать :)
[info]23derevo wrote:
Nov. 20th, 2009 10:46 pm (UTC)
а насчёт крутых и опытных... Один начальник как-то сказал что мы, программисты, его подчинённые, плохо работаем. Денег хотим много, проги пишем бажные...

Тогда я встал и спросил его: дяденька, а где ты видел хороших программистов? Таких, чтобы писали быстро, понятно и безглючно. В сказках? Во сне? А ну-ка покажи-ка мне хоть одного!

В общем, подобных вопросов дяденька больше не задавал.
(no subject) - [info]cartmendum - Nov. 21st, 2009 11:03 am (UTC) - Expand
(no subject) - [info]23derevo - Nov. 21st, 2009 11:18 am (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 21st, 2009 12:39 pm (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 02:48 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 27th, 2009 05:48 pm (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 06:24 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 27th, 2009 08:42 pm (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 09:09 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 27th, 2009 09:14 pm (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 10:41 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 28th, 2009 09:05 am (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 06:24 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 27th, 2009 08:44 pm (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 09:11 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 27th, 2009 09:37 pm (UTC) - Expand
(no subject) - [info]rustydragon - Nov. 27th, 2009 10:42 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 28th, 2009 09:07 am (UTC) - Expand
[info]vsavkin wrote:
Nov. 20th, 2009 10:14 pm (UTC)
Проблема озвучена, а решение не предложено :)
Безусловно, выстроить все задачи в порядке убывания уникального приоритета - звучит заманчиво. Но как это сделать? Боюсь, что эта задача превратится в нечто, что ты сам описал как "ввести еще тучу параметров, определяющих серьезность, стоимость, возврат инвестиций и т.п.... потом обязательно придумать страшенную формулу, по которой рассчитывать..." уникальный приоритет, а не карму.
И ещё одно замечание. Описанные мысли верны для одно-конвейерной системы. Если же у нас 20 конвейеров (работников), то вполне допустимо будет иметь 20 задач с приоритетом 1, которые мы распределим по одной на каждого.
[info]cartmendum wrote:
Nov. 20th, 2009 10:35 pm (UTC)
Один из вариантов решения уже был предложен ;) : http://cartmendum.livejournal.com/27842.html

Сейчас я делаю симбиоз из TFS и доски. Думаю, получится софтинка, которую потом в опенсорс вывалю.

С уникальным приоритетом согласен, нужно сделать оговорку, что приоритет должен быть уникальным в пределах одного конвеера (я их пайплайнами называю).
[info]w_bf wrote:
Nov. 20th, 2009 10:42 pm (UTC)
Очень верно. Осталось установить пулемет у рабочего места, чтоб никто не менал приоритеты когда задачи уже в работе. Потому что в некоторых местах людям интересней тосовать приоритеты.

А вообще6 вспмню о себе:
Программировать - минимум 4 часа между переключениями, и не мешайте мне, сволочи.
Тестирование и ТП - полчаса-полтора часа чтоб переключиться.
Инфраструктура - 1-2 параллельно.
[info]cartmendum wrote:
Nov. 20th, 2009 10:47 pm (UTC)
Я сейчас как раз готовлю инструмент и процесс, что бы расставлятели приоритетов делали это по возможности удаленно от команды.

Раз в итерацию мы тупо берем пять задачек сверху и уходим в себя на неделю. А то, что в общей куче осталось - пусть хоть пять раз на дню перетасовывают.

Соответственно, единственный момент, когда текущее состояние приоритетов влияет на работу - это небольшой промежуток времени, посвященный планированию следующей итерации (пока где-то 2 часа в неделю).
[info]w_bf wrote:
Nov. 20th, 2009 10:54 pm (UTC)
"Раз в итерацию мы тупо берем пять задачек сверху и уходим в себя на неделю. А то, что в общей куче осталось - пусть хоть пять раз на дню перетасовывают."

Какие то вы все сферические в вакууме. Если такое творить - без пулемета никак. Хотя, неделя. Может и можно, если пару раз показать что эффективно. Но в себя уходить надо как минимум на другой конец города. Ведь подойдут же, все такие вежливые...
P.S. Все нормальные в это время спят.
(no subject) - [info]cartmendum - Nov. 21st, 2009 11:06 am (UTC) - Expand
[info]ivan_gandhi wrote:
Nov. 21st, 2009 12:04 am (UTC)
Да всё фигня. Как только количество задач первого приоритета достигает четырёх, и приоритет ставят третьи лица, надо менять работу. Пусть чешут репу. Они, кстати, ни в жисть не согласятся, что это их проблема и вина.
[info]cartmendum wrote:
Nov. 21st, 2009 11:10 am (UTC)
Ээээ.... Слишком радикально :)

Приоритеты ставят третьи лица - в некоторых условиях как раз без этого никак. У нас все заказчики - это коллеги из других департаментов той же компании. Для приоритезации нужен человек, способный исходя из текущей стратегии компании понять, что важнее подготовить цифры для маркетингового исследования, прикрыть дырку от хакеров или вложится в инфраструктуру. И это получается реально большая работа.
[info]volodymyrz wrote:
Nov. 21st, 2009 05:22 am (UTC)
Иногда полезно выделить человека (возможно - себя) для подбора коротких задач: "Просмотри список задач и сделай те, которые можно сделать быстро. Если затягивается - бросай. На все - 4 часа.". Помогает избежать двухчасовых переговоров с заказчиком о получасовой задаче.

Всегда полезно составить списочек из 5-7 задач, отсортировать их по своим приоритетам и отправить заказчику с эстимэйтами на утверждение. Почти всегда заказчик его утвердит с мелкими изменениями:
- ему лень вникать
- все задачи делать надо, а тут умный человек советует.
Проверенный способ разгребать список из супер-топ-хай-эмергенси-первоочередных задач.

Кстати, большое количество задач с одинаковым приоритетом дает возможность самостоятельного выбора. "Вася, какая из задач #1122, #1223, #12, #32" тебя больше всего привлекает?
[info]cartmendum wrote:
Nov. 21st, 2009 11:14 am (UTC)
"Если затягивается - бросай" - здесь нужна крепкая сила воли. Неужели ни разу не доделывал "буквально совсем чуть-чуть", после чего обнаруживал себя в пустом кабинете и в новых сутках? ;)

Но идея конечно же правильная. Именно по этому ITIL-овские парни и предлагают поддержку выстраивать в несколько линий обороны.

И еще один момент. "Вася, какая из задач #1122, #1223, #12, #32" тебя больше всего привлекает?" - так я пробовал. Потом поговорил с этим Васей на чистоту, а он сказал, знаешь, не надо так делать. Мне так или иначе приходится вникнуть во все 4, и они у меня потом крутятся в голове, пока я их все не сделаю.

Так что все индивидуально. Если парень практикует GTD, то ему можно давать выбрать. Если он не способен контролировать крутящееся у него в голове, то лучше не пытаться.
[info]volodymyrz wrote:
Nov. 22nd, 2009 07:25 am (UTC)
Да, люди разные. Я должен предложить человеку разные варианты, и посмотреть, кому что подходит. Кому-то нужна устная постановка задачи, кому-то письменная. Кому-то хватит списка задач, кому-то номера одной конкретно, а кому-то "конкретно"+"разжевать"
(no subject) - [info]cartmendum - Nov. 22nd, 2009 11:51 am (UTC) - Expand
(no subject) - [info]volodymyrz - Nov. 22nd, 2009 03:06 pm (UTC) - Expand
[info]gi_ant wrote:
Nov. 21st, 2009 03:00 pm (UTC)
Когда есть сотня багов и приходит репорт о сто первом, тяжело его впихнуть именно между тридцать вторым и тридцать третьим. Легче присвоить ему второй приоритет.
[info]cartmendum wrote:
Nov. 21st, 2009 04:05 pm (UTC)
Когда есть сто багов, то проблемы с приоритезацией - это уже не самое страшное :)
[info]gi_ant wrote:
Nov. 21st, 2009 05:49 pm (UTC)
100 багов это может много, а может быть и мало. Всё зависит от программы. В Windows'е наверное тысячи известных багов.
[info]cartmendum wrote:
Nov. 21st, 2009 07:00 pm (UTC)
Согласен. Кстати, многие так и останутся багами и никогда не будут исправлены.

А каков смысл приоритета 1,2,3 у бага?
(no subject) - [info]gi_ant - Nov. 21st, 2009 08:52 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 21st, 2009 09:01 pm (UTC) - Expand
(no subject) - [info]gi_ant - Nov. 22nd, 2009 10:45 am (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 22nd, 2009 11:38 am (UTC) - Expand
(no subject) - [info]gi_ant - Nov. 22nd, 2009 12:32 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 22nd, 2009 03:21 pm (UTC) - Expand
(no subject) - [info]gi_ant - Nov. 22nd, 2009 06:01 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 23rd, 2009 09:16 am (UTC) - Expand
(no subject) - [info]zuzo - Nov. 23rd, 2009 04:45 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 24th, 2009 01:46 pm (UTC) - Expand
(no subject) - [info]zuzo - Nov. 24th, 2009 03:47 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 24th, 2009 04:19 pm (UTC) - Expand
(no subject) - [info]zuzo - Nov. 24th, 2009 04:29 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 24th, 2009 04:33 pm (UTC) - Expand
(no subject) - [info]zuzo - Nov. 24th, 2009 05:00 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 24th, 2009 05:23 pm (UTC) - Expand
(no subject) - [info]zuzo - Nov. 24th, 2009 05:51 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 24th, 2009 05:54 pm (UTC) - Expand
(no subject) - [info]zuzo - Nov. 24th, 2009 06:07 pm (UTC) - Expand
(no subject) - [info]cartmendum - Nov. 24th, 2009 06:09 pm (UTC) - Expand
[info]bessarabov wrote:
Nov. 22nd, 2009 09:17 am (UTC)
Согласен с вами, что гораздо лучше иметь список-последовательность задач в котором их нужно выполнять. Когда есть такой список приоритеты действительно не нужны. Но есть вопрос (правильного ответа я, к сожалению, не знаю): как составить этот список?

Есть есть 100 задач, то как просто определить что нужно делать (и составить последовательность решения этих задач), а что делать будем потом? Возможно (я не уверен), что приоритеты как раз помогают решать эту задачу. Как вы думаете?

Я работаю над созданием программ (использую систему trac). Приоритеты не использую. В трак забиты все задачи, которые вообще надо бы когда-нибудь решить. Есть milestone-ы: версия 31, версия 32, версия 33 и т.д. При планировании что будет сдеално в новой новой версии системы, выбираются задачи, которые жизненно необходимы для выпуска именно этой версии - логика простая: все что можно сделать потом должно быть сделано потом. Проблема в том, что мало удобно выбирать все эти задачи - нужно просмотреть все существующие.
[info]cartmendum wrote:
Nov. 22nd, 2009 11:47 am (UTC)
Совсем без приоритетов плохо. Приоритет 1,2,3 как правило - не самое лучшее решение, но оно все равно лучше, чем отсутствие приоритетов. Они нужны как раз лоя того, что бы каждый раз, когда нужно выбрать 10 задач, не приходилось пересматривать всю 1000.

Сейчас наша работа это не выпуск продукта, а деятельность, которая ближе к поддержке: со всех сторон постоянно приходят новые запросы. Запросы, в отличие от багов, должны быть выполнены почти все (а не так, что 100 багов из 1000 починили, и хватит). По своей сути каждый запрос - это относительно небольшая задача (1-3 дня работы), но их много...

И приоретизировали мы все при помощи доски:
( 65 comments — Leave a comment )