вторник, 30 августа 2011 г.

Управление проектами - если у вас все работают по домам

Я как менеджер немного недолюбливаю когда програмисты работают дома. А то как -)
Сталинская шарашка - голубая мечта розового ПМа. Все всегда на месте, в одном помещении и дополнительный стакан сметаны для мотивации... Но, слава богу, сейчас другие времена.

Итак. По опыту работы с надомниками, я пришел к выводу что все программисты группы должны работать в одинаковом режиме!


То есть или все в офисе, или все дома. Смешанный вариант очень накладно, потому что вам придется в проекте поддерживать не один производственный процесс, а 3-и:

  1. работа с надомниками
  2. работа с офисниками
  3. интеграция результатов первых со вторыми -)

Почему возникают проблемы интеграции? Потому что в разных группах разные каналы коммуникации. Следовательно:

  • если вы работаете в офисе, то у вас появляется возможность - быстро уточнить тех вопросы у соседа. И значит - вы можете сэкономить на документировании и формализации процессов производства;
  • если вы работаете по домам - быстро уточнить хрен получится. Значит надо делать формальные спецификации и формализовывать процессы 

Если же у вас все смешано работают, то т е что в офисе начнуть ныть и саботировать документирование и процессы, а те что дома не дополучать своей доли информации и начнут сползать по срокам и качеству.

Теперь к делу. Моя точка зрения на организацию надомной работы и свободного графика.


1. Жесткая специализация по компонентам/модулям. Один программист - один модуль. Он за него отвечает и другие за него его работу другие не доделывают
2.  Четкая спецификация интерфейсов. А лучше - микропроектирование, это когда архитектор заранее проектирует состав модулей, межмодульные интерфейсы, тесты,и оформляет все это как задание на разработку.
3. Модули - это "черные ящики", с четко заданным внешним поведением. Внутри черного ящика программист делает "что хочет"
4. Программисты сами проводят тестирование на уровне модулей.
5. Программисты не реализуют "истории пользователей", так как для этого нужна кооперация на уровне многих модулей. С историями пользователей работает архитектор (микропроектирование)
6. Ежедневная сборка не используется - вечно кого-то нет на месте. Сборка раз в неделю или в две недели. Лучше всего - во вторник
7. После сборки (успешной или не успешной) проводят функциональное и нагрузочное тестирование. В этот день вся команда собирается в офисе или офисах. Если все совсем уж атомизировано - все висят в скайпе.
8. Без спецификации (см п.2) задание не принимается
9. За сборку отвечает один человек.
10. Обязательный контроль сроков и результатов. Максимальный горизонт сроков - неделя

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

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