Alexey 的个人资料Life vs. Programming照片日志列表更多 工具 帮助

日志


4月16日

О "Начальниках Камчатки" или в продолжение разговора...

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

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

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

На самом деле ситуация становится гораздо продуктивнее, когда все три "ветви власти" работают в штатном режиме, каждый в своей зоне ответственности:

  1. ПиЭмы - это зона бизнес-требований, бизнес-процессов, взаимодействия с клиентом. Эти требования и видение должны быть изложены так хорошо, чтобы все остальные участники проекта имели представление о том, чего нужно добиться в ходе работы над продуктом, а так же были поставлены в известность о рисках проекта. Исходя из этих данных строится весь процесс разработки продукта.
  2. Разработчики - это зона архитектуры приложения, концепции, разработки прототипов, разработки и поддержки продукта.
  3. Тестировщики - именно их (а не ПиЭмов) зона ответственности состоит в том, чтобы сказать "продукт готов".
    Неправильно воспринимать тестировщика как человека, работа которого заключается в том, чтобы проверить "кнопка кликнул - бага нету". Тестировщик, в числе прочего, ответственен за проверку того, насколько тестируемый продукт или фича соответствует духу тех требований, которые (через ПиЭма) были получены от кастомера. Тестировщик - это некий "эмулятор" кастомера, он может (и должен) возражать не только против возникающих исключений, но и против нелогичного содержания форм, против неинтуитивного интерфейса, неполного покрытия нужд клиента. Даже если формально все требования выполнены и все фичи реализованы, тестировщик в праве сказать, что в реальной работе программа должна вести себя иначе.

То, насколько именно тестировщиком (и всей командой) понята концепция этой самой "реальной работы" - вот одна из задач ПиЭма.

Еще раз скажу: ПиЭм - это не "начальник камчатки". Для начальствования, ежли таковое требуется, есть тимлиды в каждом из звеньев (у программеров - свой, у тестеров - свой). Эти тимлиды и распределяют и перераспределяют, если нужно, ресурсы их тимов для того, чтобы идти по графику, не ПиЭм.

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

Единожды утвержденный на "слете представителей всех трех партий" процесс под названием "как мы будем обустраивать проект" (на самом деле таких слетов потребуется не один, а много в процессе работы) дает ответы на все методологические вопросы. На таких "сходняках" (особенно в начале проекта) на базе требований формируется регламент, который будет выдерживаться благодаря всеобщей заинтересованности в этом.

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

Словом, я хочу лишь сказать (в том числе и как человек, работающий, словами Михаила, в большой компании, ориентированной на IT), что часто встречающаяся практика восприятия ПиЭмов (в том числе и ими самими) в качестве непрозрачного прокси между клиентом и разработчиками (слушаю первого, пинаю вторых) - порочна.
То есть так:

void OnCustomerFeedback(Requirement req)
{
    int daysToComplete = AskDevelopersForTimeline(req);
    daysToComplete = daysToComplete * 2;
    SendToCustomer(String.Format("We need {0} days", daysToComplete));
    bool finished = false;
    while (!finished)
    {
        Delay(Random());
        finished = KickDevelopers("How is it going?");
    }
.....
}

делать неправильно ;) К сожалению, это очень часто встречается...

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://patrol02.spaces.live.com/blog/cns!430EDF394C126296!579.trak
引用此项的网络日志