7/31/2009 6:55:07 AM

Михаил затронул интересную тему в комментах к предыдущему постингу: задачи и ответственность некого “руководитела команды”.
В частности он говорил о том, что все наши “неудачи” в начале процесса связаны с плохим “руководителем команды”, а если этого руководителя нет, то “и не удивительно” :)

Тема мне показалась интересной, а утверждение – спорным. В частности и потому, что “неудачи” были успешно пофиксены, а “руководитель команды” так и не появился. Просто мы стали командой. И всё.
Поэтому давайте рассмотрим, что же это за позиция такая: “руководитель команды”? Позиция, кстати сказать, весьма распространённая.

Итак, в чём заключается роль “руководителя команды” (они любят называть себя ПиЭм, поэтому я тоже буду использовать эту аббревиатуру, хотя это неверно).

  1. Управление требованиями, приоритетами задач, функциональностью релизов.
  2. Прямое руководство командой программистов.
    Программисты находятся в прямом официальном подчинении у ПиЭм’а.
  3. Распределение задач между программистами, сроков выполнения этих задач, а так же отслеживание результатов.
  4. Поддержка формальной методологии разработки ПО.

Вроде на этом всё. Рассмотрим по пунктам.

Начать хочется с пункта 4, как самого интересного :)
Интересного в этом пункте то, что формальные методологии процесса разработки практически умерли, доказав свою неэффективность.
Перефразируя Ладыженского:
”Умер RUP.
Это много страшнее других смертей.
Обалденно стою
Над потерей потерь.”

То есть, найти в применении что-то, что не-agile сейчас действительно проблематично. А Agile – это уже даже не методология, а процесс… Тот же SCRUM, пожалуй один из самых распространённых в мире процессов. Тот же канбан, который, видимо, набирает силу (но к которому я отношусь с подозрением). Всё это происходит от того, что издержки от “тяжёлых” методологий велики.

“Тяжёлые” методологии умирают. Об этом же пишет Том ДеМарко, один из основоположников всего этого дела и автор книги “Controlling Software Projects: Management, Measurement, and Estimation”. Он в своей статье прямо пишет:

“In my reflective mood, I’m wondering, was its advice correct at the time, is it still relevant, and do I still believe that metrics are a must for any successful software development effort? My answers are no, no, and no.

В статье он называет самого себя “юным автором, которому нравились метрики” и заявляет о том, что всё это оказалось неверным.
Оригинал можно почитать тут: http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf
Перевод – здесь: http://bishop-it.ru/2009/07/softwareengineeringisdead/

В действительности, поддержка “тяжёлых” методологий – это достаточно большой и не нужный кусок работы.

Перейдём к пункту 3.
Имея на руках задачи (об этом позже), кто может сделать разбивку задач на технические “таски”, сделать оценку сложности работ, оценку приблизительного времени исполнения лучше, чем сама команда разработчиков? Некий “руководитель”, который придёт и скажет потом “Вася с Петей делают то-то, у вас неделя, Миша, Маша и Маня – вот это, у вас 8 дней”? Да не смешите, это не работает :) Но даже если это сработает с определенной поправкой (допустим, “руководитель” хорошо знает способности всех пятерых), то это всё равно не будет лучше, чем если бы это сделали сами исполнители.
К тому же, в подавляющем большинстве случаев, программисты знают код и архитектуру лучше, чем любой волшебный ПиЭм :) Поэтому оценки будут вернее.
Есть ещё один аспект: команда может перераспределять подзадачи внутри себя. Никакой “ПиЭм” ей для этого не нужен. А эффективность возрастает существенно по сравнению с тем, что Вася сидит и делает данный ему “свыше” таск – практика.

Кстати, о том, что “нет руководителя – неудивительно”. Когда команда принимает решение – это делает именно команда. То есть, несколько человек. В процессе обсуждения.
Если мы “выцепим” одного из процесса, фактически из той же команды, и заставим его одного принимать решения – риск ошибки и негативных последствий только возрастёт.

О контроле за процессом разработки. Тут даже говорить-то не о чем – весь контроль – это фикция, сводящаяся к назойливому ежедневному (хорошо если не ежечасному) “ну, как продвигается?”. Да невозможно узнать “как продвигается” лучше, чем знают это конкретные исполнители. И если дать возможность команде самоорганизовываться – она станет способна решать эти проблемы. Сама.

О пункте 2. Простой вопрос: зачем?
При отсутствии фигни из пункта 3 отпадает всякая необходимость и в этом.

Наконец, пункт 1.
Это очень важный и нужный кусок работы. Серьёзно. Но фишка в том, что он никак не связан с “руководством команды”. Это просто кусок работы, который должен кто-то делать. Этот “кто-то” не является руководителем, не находится ни выше, ни ниже тех же программистов и тестеров. Так же, как и последние две (программисты и тестеры), эти специалисты представляют собой независимую ветвь.
Важно: они ничего никому не приказывают, никакими программистами не руководят. Они организовывают требования, описывают их с точки зрения будущего продукта, определяют, в какой момент жизни продукта в нём должна появиться какая функциональность и т.д.
Поэтому этот пункт мы отбрасывать не будем.

Итак, у нас осталась разработка требований, которая с руководством не связана.
Теперь давайте посмотрим на типичную команду, имеющую “руководителя-ПиЭма”. Кто он?
В 90% случаев (я видел только таких, но пишу 90%, мало ли :)) это люди, которые работали сначала разработчиками, потом.. как это по-русски.. senior software developer, а потом типа “выросли” до ПиЭма. То есть – программеры-переростки :)
Что такие люди знают об управлении требованиями? Об управлении людьми (буде они таки собрались ими управлять)? Об управлении чем-либо вообще? Ни-че-го. Хорошо, если книжек про это почитают.
И это хорошо ещё, если этот человек таки действительно занимается требованиями. Ибо часто бывает, что требованиями занимаются другие, например, непосредственно менеджмент, или представитель заказчика, а такой вот ПиЭм является просто переносчиком информации (вопрос “как продвигается” остаётся в силе).

Теперь задумайтесь: “повышая” (а посути понижая) хорошего разработчика до такого вот “руководителя команды” мы:

  1. Теряем высококвалифицированного специалиста.
  2. Получаем неквалифицированного (низко квалифицированного) человека, занимающегося требованиями.
  3. Вынуждены платить большие деньги этому человеку на новой позиции.
  4. Теряем гибкость и чёткость работы команды именно как команды, а не как Васи, Пети, Маши, Миши и Мани, делающих то, что в данный момент велел “руководитель”. Поверьте, именно командная работа существенно улучшает конечный результат.
  5. Увеличиваем риск ошибки (одна голова хорошо, но две – лучше). К тому же, та же самая голова никуда и не девается.

Скрипач не нужен…

Получается, что гораздо выгоднее перейти на рельсы самоорганизации команды, сделать её именно командой, вернуть такого программера-переростка на место, получив обратно +1.5 к programming skills в комманде.
А для работы с требованиями программист не нужен. Достаточно усердного человека, хорошо разбирающегося в офисе с минимальными навыками в программировании на уровне сделать запрос в ACCESS или простейший макрос на Office VB, чтобы просто понимал, что за магию творят другие :)
И станет он разбираться в продукте с “внешней” его стороны, и станет он распределять приоритеты необходимой для релиза функциональности, и станет он описывать требования ну никак не хуже вышеописанного ПиЭма. :)

Comments

7/31/2009 7:39:20 AM

Vadim

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

Vadim

7/31/2009 10:55:54 AM

Denis

Класс! Очень напомнило ситуацию в нашей фирме. Хотя у нас кроме ПМ есть еще и ТРП(тех.рук-ль проекта). Но как показала практика, требованиями по месту пришлось заниматься мне самому(на то время я был TeamLead на проекте). Пришлось разбираться и анализировать много инфы. А еще и ребят ориентировать. Думаю, проблема была в неосведомленности(моей) о том, что же мне нужно было делать. Хотя руководство закрывало глаза на то, что я занимался по сути повторным анализом. Как нужно было поступить? Может нужно было отдать части системы каждому участнику группы? И пусть бы каждый разбирался сам с этим "куском"? Я просто далек от скрам/аджайл, да и рук-во не особо хочет внедрять что-то такое, мотивируют это тем, что скрам/аджайл всего лишь коммерческие уловки.

Denis Ukraine

7/31/2009 1:37:08 PM

Oleg

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

Oleg Finland

8/2/2009 12:24:47 PM

Alexey Raga

Вадим, у нас это работает в команде из 18-ти человек. Уровень тоже разный у всех. Иногда даже специализация (я, например, UI своими руками не трогаю) ;)
Для решения проблем мы, бывает, делимся на саб-команды...

Alexey Raga Australia

8/2/2009 12:37:14 PM

Vadim

Просто если есть пара примерно одинаковых по уровню гуру и оба с амбициями, они могут начать спорить по поводу архитектуры и к хорошему это редко приводит Smile

Vadim

8/2/2009 12:39:52 PM

Alexey Raga

Денис, agile, а в частности scrum к руководству, на самом деле, отношения имеет мало.
В своей команде вы можете использовать его для своих собственных нужд. Возможно, вам станет легче. Я не знаю вашей ситуации, но единственное, о чем, возможно, придётся договориться с руководством (или теми, кто управляет требованиями), это о том, чтобы команде не меняли задание _в течение_ спринта (обычно около двух недель в SCRUM). Между спринтами - пожалуйста.
В качестве конфетки руководству можно периодически предоставлять стандартные SCRUM'овские графики: Product BurnDown Chart и Sprint BurnDown Chart. Помимо того, что каждые 2 недели (плюс-минус несколько дней) команда будет "сдавать" готовые фичи.
Руководство обычно это любит - с одной стороны фикция контроля (графики хоть каждый день), с другой стороны - удобство планирования того, что и когда может быть сделано + какое-то постоянство (двухнедельный релизик).
Во всяком случае у руководства должно отпасть стандартное "программисты сидят за компьютерами, а что делают - непонятно, наверное только в интернете порнуху смотрят, надо их вздрючить, чтобы не расслаблялись" Smile

Alexey Raga Australia

8/2/2009 12:48:17 PM

Alexey Raga

Олег, я согласен. Замкнутый круг получается: пока не попробуют - не поймут и не поверят, а пока не поверят - ничего не станут пробовать.
Здесь есть пара вариантов: во-первых подойти к таким людям с просьбой просто попробовать. Желательно не в критический для компании/продукта период. Желательно с конкретными фактами: какие пролемы есть и как они могут быть решены.
Ну и, в схеме того же скрама, как я сказал выше, предложить им фикцию контроля в виде тех же скрамовских графиков и митингов. Пусть видят, что всё под контролем! Что на митингах реально выявляются малейшие проблемы, если они есть, и тут же принимаются какие-то меры. Что если график начинает показывать опоздание - это видно сразу, а не в тот момент, когда уже безнадёжно опоздали.
Может сработать: для этих людей это будет выглядеть как еще один шаг к контролю ;) Give it a try!

Второй вариант - перейти на нормальный процесс в критической ситуации, когда любому "контроллёру" понятно, что что-то пошло не так и где-то мы начинаем "пролетать".

А отход от "тяжёлых" формальных методологий можно делать просто постепенно, я думаю. Инструменты, которые не используются, но поддерживаются ради самой методологии можно просто выводить из использования...
Хотя тут не скажу - такого опыта не имею.

Alexey Raga Australia

8/2/2009 12:54:44 PM

Alexey Raga

Вадим, это ты прав, без споров не обойдётся.
Но, с другой стороны, "гуру", способные спорить об архитектуре - это по определению умные и опытные разработчики. Они понимают, что есть сроки, есть возможности. Они, в силу своего опыта, вполне способны разработать нормальную поддерживаемую архитектуру. В таких спорах обычно выясняются узкие места и откровенные ляпы предлагаемых решений, а так же придумываются способы решения этих проблем.
Кстати, это вопрос о том "кто в команде архитектор", а не про ПиЭм'ов, которые, собственно, архитектурой не рулят, рулят "типа программистами" Smile
Архитекторы - другой вопрос.
Ну и, если в команде два (и более) гуру с амбициями, а мы безапелляционно назначим истиной то, что скажет один из них, то мы можем проколоться дважды:
1) это может не оказаться истиной (все делают ошибки)
2) остальные "гуру" (и те, для кого они являются авторитетом) могут сложить нехороший климат в команде (делаем фигню, а я говорю вам, нихрена это не правильно!), что тоже не есть позитивно.

Alexey Raga Australia

8/2/2009 1:15:45 PM

Vadim

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

Другая ситуация, когда команда не может самоорганизоваться, это когда в команде полно новичков. Даже если они могут организоваться внути себя, часто они не могут выразить свою точку зрения в присутствии старших товарищей. Получается, что они делают то, что им скажут, но в отличии от команды с выделенным менеджером, часто плохо об этом всем думают. Или получают противоречивые наставления, что в тупик их ставит Smile

В общем-то, я за отсутсвие всяких тим лидеров и прочих дармоедов, но все зависит от конкретной команды, может ли она работать сама по себе или нет. Опять же, есть пример FogBugz, когда команда сама пришла к владельцам и попросила нанять менеджеров, им так было спокойнее.
www.inc.com/.../...ed-to-love-middle-managers.html

В общем, не панацея это, как и Agile. Надо смотреть что работает в конкретной ситуации, а что нет.

Vadim

8/2/2009 1:36:52 PM

Alexey Raga

Ну.. не знаю.. может быть, конечно...
Но мне кажется, что два разумных человека смогут выработать совместно архитектуру и делить им будет просто нечего.. По сути, такие люди являются тимлидами, если они выделяются по знаниям и способны вести других...
В маленькой команде (5 человек) делить им будет некого, да и не зачем, а в большой команде и большом проекте наличие таких людей - только плюс... Что значит "рулить"? Кем им там рулить, а главное зачем, если это не позиционный вопрос? Если все ориентированы на одно: выполнить такой-то набор функциональности в такой-то срок.
Архитектура - считаем, что там договорились. Задачи "расписали" - что делать, как, в какое время. И все просто эти задачи делают. По опыту вижу, что те, кто послабее, просто подходят к тем, кто посильнее, посоветоваться, или узнать, как это работает сейчас и должно работать в будущем.. Как пользоваться API какой-то подсистемы и как внести изменения, чтобы было хорошо и ничего не сломать...
Ни о како "власти" тут речи идти даже не может, ибо этой власти просто нет _ни у кого_. Взял задачу - делай. Не можешь - посоветуйся. Не помогает - посоветуйся с другими, со всеми сразу, устроим брейншторм...

Про "полно новичков" я согласен. Но и ты согласись - так достаточно редко бывает, чтобы в команде были одни junior developes, не умеющие нормально работать в команде. Всегда есть опытные люди, а на практике почти всегда есть те, кто уже и не нов в данном проекте.
По поводу "не могут высказать". Согласен, могут быть такие проблемы у людей. Не знаю, на самом деле, как её решать. Может быть просто пытаться подбирать в команду тех, кто не стесняется высказывать своё мнение и задавать вопросы.
А, быть может, поможет та самая ровная структура: нет "старших товарищей", одинаковые все...
Кроме того, мне кажется, что наставления такие люди всё равно будут получать не от ПиЭма, а от соседних дивелоперов. Ну не будет ПиЭм им объяснять как правильно пользовать API, как его менять и т.д. Максимум, что он сделает: скажет "нууу... пока делай вот эту задачу она лёгкая, заодно в проекте подразберёшься...", а назавтра спросит "как продвигается?".
Все вопросы и наставления - всё равно к коллегам Smile

Про команду - опять ты прав.
Но, я думаю, что раз уж тебе нужна команда программистов для решения твоей бизнес-задачи - то и следует нанимать _команду_ и использовать её как _команду_. И ожидать от неё работы, как от _команды_. А набрать команду, а потом сказать: "ой! а они не могут работать как команда! вот ведь! ну, ладно, будем работать как придётся, авось выйдет чего! менеджера наймём, во!" - тоже как-то неверно Smile
Наверное надо произвести какие-то перестановки в этой команде, возможно взять людей, которые имеют опыт командной работы и в процессе работы научат других.. Постой! Так ведь обычно и делается! Сначала набираются "seniors", сколько надо, потом команда дополняется другими дивелоперами! Smile

Alexey Raga Australia

8/3/2009 9:23:57 AM

Michael Smirnov

Не знаю, Лешь, что движет тобой когда ты пишешь такие вот статьи.
Наверное хочешь привлечь побольше посетителй на заранее спорную тему Smile
А может просто не любишь когда тебя контролируют (а кто, собственно любит Smile )

Но надо понять, что управление проектом - это такая же, а как мне кажется, еще более креативная работа, чем непосредственное кодирование. При кодировании ты видишь и отвечаещь исключительно за свою участок. А при ПиЭм'стве у тебя есть возможность создать нечто более сложное, комплексное, чем куски кода (хотя я ни в какой степени не умаляю важность программирования как такового).

Почему многие ПиЭмы - это бывшие программеры. Мне кажется это очевидно. Индустрия достаточно специфична, поэтому я не уверен, что в ней может быть грамотный управленец, не владеющий техническими знаниями. Наверное это возможно на достаточно высоких уровнях руководства, в больших компаниях. Но в мелких - не думаю.

Не стоит идеализировать команды, и думать что они вот так вот самоорганизуются. Команда состоит из людей, а у каждого из них свои цели и задачи, которые часто могут не совпадает с целями и задачами проекта или всей команды. Например, кто-то может в рабочее время на себя работать Smile

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

Еще примеры нужны?

Michael Smirnov Russia

8/3/2009 9:57:38 AM

Alexey Raga

Миша, посетители меня интересуют мало Smile Ты не найдёшь ни одного баннера, никакой другой возможности мне получить выгоду с количества посетителей. Я даже пишу на русском, что означает, что я так же не ориентируюсь на "потенциальных работодателей", которые, как ты понимаешь, русские буквы видели только в паспорте Борна ;) Не говори ерунды.

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

При построении архитектуры у тебя есть возможность "создать что-то более сложное и комплексное, чем куски кода". Поэтому все архитекторы - это бывшие программеры.
ПиЭмы - не архитекторы. Поэтому про это не будем. Они НИЧЕГО не создают.

Они пытаются делать работу, которая без проблем и нативно делается другими персонажами. При этом создавая узкое место. Их профессионализм - это решать проблемы, созданные их же наличием Smile

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

>>Команда состоит из людей, а у каждого из них свои цели и задачи, которые часто могут не совпадает с целями и задачами проекта или всей команды. Например, кто-то может в рабочее время на себя работать.
Что относится к любому человеку. Даже к ПиЭму. И он может в свободное время на себя работать (уж мы-то знаем ;)). Ну и что? Главное, чтобы в рабочее время решались рабочие задачи.
Лично я в свободное время сплю. Что тоже не совпадает с целями и задачами моего текущего проекта. Собственно, я ещё ни разу не принимал участия в проекте, в котором бы мой сон совпадал Smile Не релевантно ;)

Про "зазвездится" - я не понял, честно говоря. Будет делать плохой код и архитектуру - не пройдёт первого же код ревью.
Будет делать хороший код - пусть себе "звездит" в свободное от написания этого хорошего кода время Smile

Примеры нужны, да.
Желательно - конкретные, релевантные и по делу, а не "это очевидно" и "нечто комплексное" Smile

Alexey Raga Australia

8/3/2009 10:10:08 AM

Vadim

Ты еще забыл сказать, что ПМ - хорошая и нужная профессия, только она не связана с управлением, как и профессия архитектора или DBA.

Vadim

8/3/2009 12:28:48 PM

Alexey Raga

Вадим, для этого понадобится дать определение термину "ПМ". В том виде, в котором он описан в моём постинге - это ненужная позиция ;)

Если же мы скажем, что ПМ - это человек, который управляет требованиями к продукту, определяет жизненный цикл этого продукта (грубо: что изменяется от версии 1.1 к версии 1.2), готовит спецификации и, возможно, сториборды (кстати, тоже интересно, как к ним народ относится?) - то да! Это очень нужный и важный в компании человек.
И, ты прав, его работа никак не связана с руководством. Тем более - с руководством программистами.

Alexey Raga Australia

8/3/2009 12:53:18 PM

Vadim

Я исходил из того, что сам термин Project Manager появился в Microsoft и обозначал (и до сих пор обозначает) именно то, что ты и описал Smile Все другие модные применения этого термина скорее соответствуют Team Lead или Middle Manager с небольшой примесью именно PM.

Vadim

8/4/2009 8:57:37 AM

Michael Smirnov

Примеры, примеры....... вот пожалуйста, у меня их сколько угодно Smile

Сразу хочу предупредить, что примеры эти - в основном единичные, но 100% реальные. Т.е. я не хочу сказать, что они имеют место быть постоянно. Большинство людей любят свою работу и работают с удовольствием.

1. По поводу подработок в рабочее время - я имел в виду что человек ими занимается на в свободное время, а ВМЕСТО рабочих задач. Понимаешь, вместо! Так что не нужно передергивать. И если его не проконтролировать соответственно - он так и будет заниматься ими, сорвет сроки. А ему просто пофигу на эти сроки - он же наемник, его трудно за это упрекнуть.

2. Говоришь, бог с ним со звездением? Ни в коем случае! Уж я-то видел к чему это приводит. Вот представь, человек - хороший программмер, но вот зазвездился. Люди перестают с ним работать. Он обижается на них за это. Недопонимание растет. Что в итоге? Код становится хуже не у него, а вообще, в целом - например, людям проще будет продублировать функционал, чем с ним посоветоваться. Им просто неприятно к человеку подходить. Ну а дальше - больше проблем. Понимаешь?

3. Что создает ПМ? Он создает ПРОЕКТ! В рамках которого есть несколько продуктов. Что создают программеры - код. Его можно сравнить с руководителем лаборатории где опыты проводят лаборанты, но в все рамках его научных исследований. Ну или с главным конструктором в КБ, если угодно.

4. Еще примеры - тестирование. Я встречал такую ситуацию, когда программисты не хотят чтобы их код тестировали! (хотя это было довольно давно). Относятся к этому примерно так - Пошли они со своим тестированием, у меня в коде все отлично. А после тестирования выясняется что ой-ой-ой как не все отлично. А программисту не хочется уже все свои ошибки исправлять - он уже видит перед собой новую интересую задачу. И забивает на них. И кто-то должен его наставить на путь истинный, чтобы удовлетворить заказчика.

5. Программисту ставится задача, скажем на неделю (с заказчиком срок оговорен, с программеров тоже). Но ему вдруг становиться интересно решить ее не просто так, а с применением всего нового, что он недавно прочитал, но еще не попробовал. В результате задача решается через месяц-полтора. Что в итоге? Заказчик недоволен по срокам, контора в пролете по деньгам. Зато программер "самоорганизовался".

6. Программисту не нравиться что есть архитектор. Не архитектура не нравиться, а вообще в принципе, что он не сам придумывает что и как делать. И он начинает саботировать архитектуру. Считает что ему интереснее самом придумать, хотя и не в рамках общей канвы. Код ревью конечно все выявит, но во-первых, по прошествии времени, а во-вторых, вызовет обиду программера (Типа "Что вы лезете в мой код"). Думаешь я такого не встречал? Еще как встречал.

В общем я могу много такого припомнить - надоело уже просто.

Основная мысль такова - корабль, не имеющий маршрута, никуда не придет.
Команда, предоставленная сама себе, не сможет выдать качественный продукт (это конечно не касается мелких команд на 1-3 человека и проектов на неделю, хотя и здесь все может быть).

Как думаешь, почему на корабле есть капитан? Почему его команда не может самоорганизоваться?
Потому что каждый отвечает за свою часть. Кто-то сидит в машинном отделении, а кто-то на мостике.

Точно также и здесь. Кто отвечает за проект? Если команда, то тогда никто не отвечает. Всегда можно сказать - это не я, это вон другой накосячил. Ну а у того найдется причина, почему он накосячил, и я уверяю она будет на 100% веской. А если есть ПМ - он отвечает за проект, для этого у него есть рычаги влияние, он принимает решения и он несет за них ответственность. Т.е. программер несет ответственность за свой участок, тестер за свой, аналитик за свой, саппорт за свой, архитектор за свой, дизайнер за свой и т.п. А ПМ несет ответственность за всех них и за проект в целом.

Теперь по поводу методик. Их применение архиважно и архинужно. Я в течении нескольких лет наблюдал постепенный переход от стихийной разработки к внедрению методик. И что в итоге? Качество выдаваемых на выходе версий вырасло весьма и весьма значительно. Просто небо и земля. И самим программерам стало легче работать по методикам. И тот человек, которому не понравилось, что появился архитектор, через год сказал мне - знаешь, мне с архитекотором стало проще, легче работать чем раньше. Все стало более упорядочено.
Банально, но как известно "качество продукта определяется качестов процесса".
А для того, чтобы внедрять процесс, нужна политическая воля. Люди не хотят менять привычный уклад работы.
И кто-то должен это делать.

Ну и последнее (и так уж много написал, не собирался столько).
Ваша первая команда не смогла дать хороший код, как ты говоришь. Почему? Потому что она не смогла "самоорганизоваться", так я понимаю? Если так, значит не все команды являются самоорганизующимися. Логично? Т.е. свое регидное утверждение о том, что команда является самоорганизующейся ты сам опроверг своим же примером.

А спросить-то особо не с кого Smile Зато контора ваша потеряла время в следствии такой вот "самоорганизации".

Кстати, еще неизвестно, что ваша теперешняя команда выдаст на выходе, и что об этом скажет следующая команда Smile

В общем резюме - за исключением небольшого числа мелких команд и проектов, самоорганизация = бардак.

Michael Smirnov Russia

8/4/2009 10:13:45 AM

Alexey Raga

Ну, по пунктам.
>>ВМЕСТО рабочих задач. Понимаешь, вместо!
Понимаю, я не передёргивал, извиняюсь, прочитал неправильно в прошлый раз Smile
Итак, если команда расписала задачи и видит, что одна из задач "западает" по срокам (а это видно _сразу_, _в тот же день_, в том же SCRUM, да и при любом другом командно-ориентированном процессе), то команда же и заблеймит чувака за такое дело. Если же задачи не "западают" - да пусть хоть на ушах стоит, может ему на ушах лучше думается. Я, например, чтобы отвлечься, новости читаю и тебе, вот ответ пишу. Мои задачи нормально укладываются в сроки - могу себе позволить.
ПиЭмство тут ни при чём.

>>Говоришь, бог с ним со звездением? Ни в коем случае!
Опять же, а при чём тут ПиЭмство?

>>Что создает ПМ?
Пусть он создаёт что угодно. ПиЭм в понимании моём и, вот, Вадима в этой ветке. И в понимании Майкрософт, видимо. При чём тут руководство?

>>Еще примеры - тестирование. Я встречал такую ситуацию, когда программисты не хотят чтобы их код тестировали!
А кто его спрашивает? Он сделал check in фичи - больше от него ничего не зависит. После чекина всё _автоматически_ попадает в лапы тестеров. Хочет он или нет, хотят тестеры или нет. Это просто работа такая. Я с трудом представляю, как это программист может избежать тестирования его кода Smile
Пример, пожалуйста ;)

>>Зато программер "самоорганизовался"
Самоорганизовываться будет не программист, а команда, ещё раз повторю. И снова задам вопрос: при чём тут ПиЭм? Чтобы спрашивать "ну, как продвигается"? Так повесьте плакат большой с этим вопросом Smile Если программер не может решить задачу - ему что, ПиЭм помогать станет? Smile А вот команда - могла бы. Видя, что задача начала "западать", а видно это, повторюсь, сразу и в тот же день.

>>Программисту не нравиться что есть архитектор.
Опять же, совершенно единофигственно, что ему не нравится. Собственно, все эти "не нравится что есть тестер, не нравится, что есть архитектор" - это пережитки того, что нет _команды_. Что программист не работает в _команде_, а работает как-бы сам. В командной работе такого нет.
Да, это выявится на код ревью. А что, ПиЭм это поможет выявить раньше? Smile Как? Smile Он просматривает все чекины в персональные ветки и шелфы разработчиков? Smile
В командной работе такого невозможно, ибо люди постоянно работают с разными частями кода. Естественно, нормальные 20% времени на рефакторинг никто не отменял.

Основная мысль: ПиЭм - не есть "маршрут". Маршрут - это требования, это общая архитектура, которая, кстати, оставляет много свободы и для творчества. Маршрут - это приоритеты задач. При чём тут руководство командой?

Про ответственность - ты сначала сказал неправильно, что её нет. А потом сказал правильно - каждый несёт ответственность за свой труд.
И если программер накосячил - это найдёт тестер и программер будет переделывать.

Про стихийную разработку никто и не говорил. Говорили про "тяжелые" методологии, которые даже их отцы-основатели считают теперь ошибкой Smile

Ответ: наша первая команда не дала результата потому, что не было команды. Одного наняли делать UI, второго и третьего - что-то ещё.
Когда поняли, что надо работать командой - сразу пошло. Моя мысль: надо работать командно - и всё получится Smile
Кстати, у них был менеджер в то время. При переходе на командную работу он стал программить и я с ним работал уже как с программистом. А сейчас он ушёл совсем. Так что, можно сказать, что с руководителем не получилось, а без - запросто Smile)) Хотя я понимаю, что это не может быть примером, ибо очень частный случай.
Так что спросить было с кого. А толку? И сейчас есть с кого спросить - 18 человек работают. Легко устроить митинг да спросить.

Наша команда уже выдала релиз. Месяц назад. Стоимости проектов, на которые заключён контракт, 230 и 350 миллионов долларов. Наши менеджеры говорят, что начали с мелких проектов. Работаем Smile
И не надо, пожалуйста, хаять нашу работу не то, что не видя результата, но и вообще не зная о ней ничего Smile

Я всё еще жду _нормальных_ примеров ;)

Alexey Raga Australia

8/4/2009 12:24:33 PM

Vadim

Я придумал пример, но ты опять скажешь, что это не команда. Оговорюсь, речь идет не о ПМ, а просто о главном человеке в команде, будь-то ПМ, Senior Developer или просто менеджер. Когда есть куча людей, работающих part-time, всегда будет нужен человек, координирующий их действия и раздающий задания. Если есть конфликты не технического плана, нужен грамотный человек сверху, который может их разрулить и сплотить команду обратно. В общем есть много ситуаций, когда команда не совсем "команда" в твоей интерпретации, и тогда ей нужен специальный человек для ее руления.

А Михаила ты все равно не переспоришь, когда человеку говоришь, что то, чем он занимается, никому нафиг не нужно, он обычно обижается и аргументов не слушает Smile

Vadim

8/4/2009 3:26:07 PM

Alexey Raga

Вадим, про парттаймеров и прочих приходяще-уходящих фрилансеров - да, я с тобой соглашусь. Вероятно они просто не могут работать нормально командой. Там, вероятно, может понадобиться человек, который бы координировал эти приходяще-уходящие умы Smile
Не знаю, с такой ситуацией никогда не сталкивался. В моём опыте всегда были постоянные люди, а тех, кого привлекали (всего два таких случая вспомнил), то привлекали именно из-за их узкой специализации на предмет сделать какую-то чётко описанную задачу. В проект они не вникали.
Так мы привлекали специалиста из Майкрософт, например. Он пришёл, получил задачу, делал её несколько дней вместе с нами, сделал - и ушёл.
Правда, у нас всё же была команда, поэтому "руководитель" тут не потребовался совершенно.
Выглядело это так: наш big boss пригласил этого человека, он пришел к нам в офис, спросил, чем может помочь. Среди нас тут же состоялся короткий 30-секундный конверсейшн, кто объяснит человеку в чём дело и поработает с ним. Вызвались двое. Через 10 минут я подключился. Тогда один сказал: "ну, я вам не нужен". Так мы и работали. Проблему решили - он ушёл.
"Руководитель" нам в этой ситуации вряд ли помог бы Smile
Но если прям-таки все такие вот временные.. Или большинство... Я даже не знаю... И не знаю, почему имеющейся постоянной команде просто не распределять эти временные ресурсы, если она есть...
Словом, тут надо пробовать Smile

Alexey Raga Australia

8/4/2009 4:38:42 PM

Michael Smirnov

Ну, по пунктам.
>> Итак, если команда расписала задачи и видит, что одна из задач "западает" по срокам (а это видно _сразу_, _в тот же день_, в том же SCRUM, да и при любом другом командно-ориентированном процессе), то команда же и заблеймит чувака за такое дело. ПиЭмство тут ни при чём.
Да команде не до того - у всех и так дел хватает, чтобы еще за кем-то следить.

>>Говоришь, бог с ним со звездением? Ни в коем случае!
А при том, что человека надо поставить на место. Сделать это должен руководитель.

>>Что создает ПМ?
>> Пусть он создаёт что угодно. ПиЭм в понимании моём и, вот, Вадима в этой ветке. И в понимании Майкрософт, видимо. При чём тут руководство?
Повторюсь - ПМ создает проект.


>>Еще примеры - тестирование. Я встречал такую ситуацию, когда программисты не хотят чтобы их код тестировали!
>> А кто его спрашивает? Он сделал check in фичи - больше от него ничего не зависит. После чекина всё _автоматически_ попадает в лапы тестеров. Хочет он или нет, хотят тестеры или нет. Это просто работа такая. Я с трудом представляю, как это программист может избежать тестирования его кода  
Пример, пожалуйста ;)

Я уже написал - зачекинил, получил список багов, но исправлять их не интересно - лучше новой задачей займусь, все равно никто не проверяет.

>>Зато программер "самоорганизовался"
>>Самоорганизовываться будет не программист, а команда, ещё раз повторю. И снова задам вопрос: при чём тут ПиЭм? Чтобы спрашивать "ну, как продвигается"? Так повесьте плакат большой с этим вопросом  Если программер не может решить задачу - ему что, ПиЭм помогать станет?  А вот команда - могла бы. Видя, что задача начала "западать", а видно это, повторюсь, сразу и в тот же день.

Святая простота.

>>Программисту не нравиться что есть архитектор.
>>Опять же, совершенно единофигственно, что ему не нравится. Собственно, все эти "не нравится что есть тестер, не нравится, что есть архитектор" - это пережитки того, что нет _команды_. Что программист не работает в _команде_, а работает как-бы сам. В командной работе такого нет.

Команда есть, просто кто-то считает что он и без архитектра лучше знает, как сделать. А переубедить человека бывает сложно.

>>Да, это выявится на код ревью. А что, ПиЭм это поможет выявить раньше?  Как?  Он просматривает все чекины в персональные ветки и шелфы разработчиков?  
А кто сказал, что в команде есть код ревью? Команда может про него и не слышала? Набрали студентов - они и про архитектуру и про тестирование не слышали. Любопытно, как они самоорганизуются?


>>Основная мысль: ПиЭм - не есть "маршрут". Маршрут - это требования, это общая архитектура, которая, кстати, оставляет много свободы и для творчества. Маршрут - это приоритеты задач. При чём тут руководство командой?

ПМ - это как раз маршрут. А все что ты перечислил - это этапы пути.

>>Про ответственность - ты сначала сказал неправильно, что её нет. А потом сказал правильно - каждый несёт ответственность за свой труд.

Да нет, я правильно сказал. Если ответственны за проект все, то не ответственнен никто.

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

Может будет а может и нет. Смотря как самоорганизуется.

>>Про стихийную разработку никто и не говорил. Говорили про "тяжелые" методологии, которые даже их отцы-основатели считают теперь ошибкой.
Кто внедрит хоть мало-мальски упорядоченный процессе в команду студентов? Сами? Гы-гы... Я помню, у меня ушло 1.5 года, чтобы убедить, что в комадне нужен тестер. Команда хотела так самоорганизоваться, чтобы тестеров не было, а то пришлось бы лучше работать Smile
RUP рулит - бери со стола то, что хочешь съесть, а не все, что на нем стоит.

>>Ответ: наша первая команда не дала результата потому, что не было команды. Одного наняли делать UI, второго и третьего - что-то ещё.

Потому что ее никто не организовал!

Когда поняли, что надо работать командой - сразу пошло. Моя мысль: надо работать командно - и всё получится  
>>Кстати, у них был менеджер в то время. При переходе на командную работу он стал программить и я с ним работал уже как с программистом. А сейчас он ушёл совсем. Так что, можно сказать, что с руководителем не получилось, а без - запросто )) Хотя я понимаю, что это не может быть примером, ибо очень частный случай.

Не смог стать руководителем. Бывает - "не все хотят быть руководителями".

>>Так что спросить было с кого. А толку? И сейчас есть с кого спросить - 18 человек работают. Легко устроить митинг да спросить.

Вот-вот. На митинге спрос со всех вместе, т.е. как бы ни с кого в отдельности.

>>Наша команда уже выдала релиз. Месяц назад. Стоимости проектов, на которые заключён контракт, 230 и 350 миллионов долларов.

А это ничего не доказывает и не опровергает.

>>Наши менеджеры говорят, что начали с мелких проектов.

Значит менеджеры все-таки есть?


>>И не надо, пожалуйста, хаять нашу работу не то, что не видя результата, но и вообще не зная о ней ничего.

Давай еще теперь на личности перейдем? Smile

>>Я всё еще жду _нормальных_ примеров ;)

Куда уж нормальней.

Все-таки, зачем кораблю капитан?

Michael Smirnov Russia

8/4/2009 5:37:48 PM

Alexey Raga

>>Да команде не до того - у всех и так дел хватает, чтобы еще за кем-то следить.
Это часть процесса и часть работы команды. И часть её задачи.

>>А при том, что человека надо поставить на место. Сделать это должен руководитель.
Почему именно руководитель? Это может сделать кто угодно. Если нужно вмешательство свыше - можно пойти к этому "свыше" и объяснить ситуацию. В любой фирме есть директор, технический директор и т.д.
Ни разу не видел, чтобы это потребовалось.

>>Святая простота.
Это, конечно, самый содержательный ответ Smile

>> Команда есть, просто кто-то считает что он и без архитектра лучше знает, как сделать. А переубедить человека бывает сложно.
Я не вижу ответа: как в этом вопросе может помочь ПиЭм? Он что, сидит и смотрит, как программист пишет? Куда его "повело" сегодня в 3 часа, когда он начал плодить свою архитектуру?
К тому же я сложно представляю себе программиста, вот так, на лету меняющего архитектуру. У меня на это уходит от двух недель до месяца. Плюс потом тестеры всё перетестируют на всякий случай. Вряд ли кто-то примет такое решение. Вот костыль поставить под текущую "типа архитектуру", чтобы как можно меньше менять - это запросто может. И никакой ПиЭм потом не найдёт. Смысл архитектуры в том и есть, чтобы не слишком-то многое зависело от конкретной реализации. Инкапсуляция потенциальных изменений называется. Один из основных столпов ООП, между прочим ;) До тех пор, пока архитектура позволяет безболезненно вносить изменения - пусть программисты делают свой код, это здорово!
А вот когда всё расписано "до последнего инта" - это уже где-то что-то не так значит.

>>ПМ - это как раз маршрут. А все что ты перечислил - это этапы пути.
Вот те раз! Маршрут - это то, что делает специалист по требованиям. По английски так и называется - Roadmap. Всё остальное, и даже архитектура - это средства.

>>Я уже написал - зачекинил, получил список багов, но исправлять их не интересно - лучше новой задачей займусь, все равно никто не проверяет.
Что значит "проверяет"? Проверяет, конечно. Тестер. Работа у него такая. От него ты и получил список багов. Задачи же просто берутся в порядке приоритета.

>>А кто сказал, что в команде есть код ревью? Команда может про него и не слышала? Набрали студентов - они и про архитектуру и про тестирование не слышали. Любопытно, как они самоорганизуются?
Код ревью надо внедрять - факт. У нас нет, думаем пока. Про тестирование слушать и не надо - тестер сам о себе даст знать ;) А про самоорганизуются - а откуда среди этих студентов возьмётся волшебный ПиЭм? Smile А архитектор? А, я понял! Значит умные люди в проекте есть! Тогда делаем так: архитектурой занимаются те, кто поопытнее, ею 100% времени заниматься не надо, тем более, когда проект уже идёт. Следовательно, архитектор может вести разработку наравне со всеми. Отлично. Если ПиЭм - дивелопер, то пусть занимается полезной работой лучше, как я писал: +1.5 к скиллу программирования. Два умных человека мы уже набрали. Думаю, в любой команде найдётся еще пара senior developers. О! Уже получается хороший такой костяк для команды! Всё там хорошо организуется! Smile

>>Кто внедрит хоть мало-мальски упорядоченный процессе в команду студентов? Сами? Гы-гы...
Ну, во-первых мы уже выяснили, что там не только студенты ;) А во-вторых, берём не полумёртвый и тяжёлый RUP, а что-то более легковесное. Описание того же SCRUM помещается на листочке A4 ещё и с картинками. Для сравнения: RUP - книга, и не одна ;) Канбан, Олег писал про него - всего три правила. Способен усвоить даже студент ;)


>>Потому что ее никто не организовал!
Ага! Как ты правильно заметил: _организация_ первична. А как показывает практика, _руководитель_ для этого команде не нужен.


>>Вот-вот. На митинге спрос со всех вместе, т.е. как бы ни с кого в отдельности.
На минуту представим, что есть с кого в отдельности. Что это даст на этом митинге? Можно уволить, можно не увольнять. Всё Smile То есть, ты предлагаешь на каждом митинге поднимать вопрос "увольнять ли ПиЭма?" Smile Ну, раз он ответственен за всё типа Smile

>>Значит менеджеры все-таки есть?
Конечно есть менеджеры. Куда ж без них. Есть у нас technical manager, у которого в подчинении официально находятся все разработчики, все тестеры, все специалисты по требованиям, все администраторы, весь саппорт в компании. По всем продуктам. Непосредственно у него а не у загадочного "руководителя команды разработчиков".
При этом он не совмещает в себе функций специалиста по требованиям+тимлида+тестера+хрен_знает_кого. У него своя работа: он на очень высоком уровне определяет то, каким будет продукт, как он будет взаимодействовать с другими продуктами, какие именно ещё продукты надо выпустить. Это то, что идёт гораздо выше архитектуры. Когда я делаю архитектуру и мне надо знать дальние перспективы, планы на развитие, виды - я иду к нему. Потому что у специалистов по требованиям этих данных ещё нет. Это от него они получают львиную долю своих данных. Вот он - мой непосредственный начальник. Он понятия не имеет, как я пишу на C# Smile Хотя иногда присутствует на митингах. С пользой.

>>Все-таки, зачем кораблю капитан?
Мы не корабль обсуждаем, да? Smile А команду программистов. Дурацкая аналогия. А если уж хочется найти капитана - то смотри НАД ПиЭмом. Ибо капитан не ходит к качегарам с вопросом "как продвигается кидание угля?", "сколько лопат кинули за последние 2 часа?", "Василь Василич не чешет ли пятку в рабочее время?" Smile В то же время он не стоит на капмусе, проверяя, сколько морковок положил в суп кок Smile
Поверь мне, кочегары - они нормально самоорганизуются. Они выберут себе подходящие лопаты по весу, не надо их распределять. Они сумеют самостоятельно кидать уголь в топку, они видят, сколько лопат и когда надо подкинуть. Ни один капитан не командовал с мостика "пять совковых лопат и одна сапёрная в топку следующие две минуты!" Smile И не спрашивал потом "Котиков, у тебя осталась минута, успеваешь еще две лопаты?", "Котиков, 30 секунд, сапёрную сам сделаешь, или я посмотрю у себя в таблицах кто свободен и может тебе помочь"? Smile Это было бы смешнооооо Smile

Alexey Raga Australia

8/5/2009 8:11:06 AM

Michael Smirnov

Вот-вот, мы с капитаном и добрались до самой сути.
Как раз ПМ тоже не спрашивает у программеров, сколько они кода написали.
Он спрашивает о прогрессе задач (кстати, для этого есть тех.средства), и часто не программистов, а ведущих программистов, под управлением которых находится группа программистов.
И принимает решения.

Мысль: Почему в MSF 4.0 Microsoft ввела должность ПМ? Впали в ересь? Smile

Вопрос: у вас, без ПМ, кто и как управляет рисками?

Michael Smirnov Russia

8/5/2009 11:41:19 AM

Alexey Raga

О, добрались до сути, да. Правда, оказалось, что у программистов есть и ещё начальники! Офигеть! Пусть маленьким, но начальником все хотят быть! Smile

Добрались до сути, супер! Руководящая работа ПиЭма заключается в том, чтобы, цитирую, "спрашивать ведущих программистов о процессе задач"! Алилуйя, с чего начали - к тому и пришли. К вопросу "ну как продвигается?" Smile
В то время, когда при нормальном процессе вся ситуация в проекте невооружённым глазом видна _любому_ члену команды в _любой_ момент, в разрезе _любой_ задачи, да хоть и всего проекта целиком Smile Для этого не нужно _никакого_ подчинения, _никакой_ иерархии. Жизнь гораздо проще ;)

А мысль.. Мысль здравая. Учитывая то, что в MS программисты не состоят в подчинении у ПиЭмов. MSF-то как раз и предполагает три независимые ветки (программисты, тестеры, ПиЭмы), которые _могут_ иметь _собственные_ иерархии в очень больших компаниях. Например, когда над проектом трудится десяток ПиЭмов.
И учитывая то, что MS фактически похоронил MSF (как, в общем-то, и все остальные, я писал), активно продвигая Agile-методологии. Ты может удивишься, но в следующем TFS в качестве темплейта будет SCRUM...
Послушай хотя бы евангелистов от того же MS Smile Не-Agile методологии дохнут...

У нас есть ПиЭм. Я просто не хочу использовать этот термин, потому, что неправильно ж поймут. Ибо у нас _правильный_ ПиЭм. Это девушка, она одна. Ей не подчиняется никто и она формально подчиняется тому же человеку, что и я, и все остальные программисты. Она - не программист. Она понимает объектно-ориентированную модель, может залезть в БД на предмет посмотреть сырые данные или даже что-то подправить в этих данных. Она офигенно шарит в Excel и отлично - в остальном Office. Она не пишет никакой код, никогда не писала.
Её задача - работа со стакхолдерами (которые у нас и внутренние есть, холдинг всё же). Она прорабатывает общую концепцию проекта с тем человеком, о котором я писал - с моим начальником (этот рулит концепцией на более высоком уровне, общаясь с клиентами по всему миру, анализируя рынки, конкурентов, потребности, текущие задачи имеющихся клиентов и т.д). Её часть работы не заходит настолько далеко в будущее, как его.
Она отлично знает продукт, она является его активным пользователем. Всё это помогает её рассматривать задачу с точки зрения бизнеса: формировать требования, расставлять приоритеты, очень часто - объяснять задачу программистам, как оно должно работать с точки зрения пользователя и системы в целом.
Ей помогают в этом деле тестеры. Подчеркну, она _не_ руководит и тестерами. Но решения о том, как именно должна вести себя система в деталях принимаются при согласовании с тестерами. Поэтому любой программист в случае любого вопроса может обратиться к ней, либо к одному из тестеров (если она в отпуске, как сейчас, или занята на митинге, или просто хочется пообщаться именно с парнями) ;)

При планировнии следующего цикла она всегда присутствует. Кто-то из тестеров - крааайне редко. Фактически только если зовём сами, когда возникают вопросы, которые надо обсудить. С её подачи определяется перечень задач, которые нужно сделать и целей, которых _нам всем_ нужно достичь. Понятно, это функциональность, которую нужно сделать. Плюс программисты могут добавлять свои задачи и обозначивать риски. Например, нужно две недели на рефакторинг такого-то узла, это позволит потом то-то и откроет дорогу туда-то Smile
На таком митинге обозначаются задачи, дальше команда программистов разбивает их на таски, проводит estimation, после чего решается, сколько времени займёт итерация для того, чтобы достичь цели. Либо, если есть ограниченный лимит времени (как у нас было: "до выступления на MS ReMix 2009") - то какой объем функциональности в этот отрезок времени может быть сделан.
В случае, если возникает дискуссия по приоритетам (такое бывает), можно позвать тестеров, можно позвать менеджеров, можно стакхолдеров потормошить Smile

После этого процесс идёт Smile И идёт хорошо.

Alexey Raga Australia

8/5/2009 12:10:04 PM

Alexey Raga

Кстати, о МС Ремиксе.
Вот видео (смотреть с 35-й минуты), там наш шеф (Майкл) и наш ПиЭм (Царина), показывают линейку продуктов, которую мы и релизнули Smile
www.microsoft.com/.../video.aspx
Там небольшая секция на keynotes у нас была.

А вот наша собственная секция, большая. Там в основном говорилось как раз о том, как этот проект вёлся в плане менеджмента и немного - технически:
www.microsoft.com/.../video.aspx
Эта секция большая.

Alexey Raga Australia

Comments are closed

Powered by BlogEngine.NET 1.6.0.0

About the author

Alexey Raga Alexey Raga
.NET software developer.

E-mail me Send mail

Twitter


Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Sign in