середу, 12 листопада 2008 р.

Отпуска программистов


Наверняка многим из Вас, как руководителям проектов, приходилось принимать решения или участвовать в принятии решения об очередном законном (оплачиваемом) отпуске программиста, или же Вы, как минимум, задумывались: а как же отпустить программиста в отпуск с наименьшими потерями для проекта?


Производство для себя

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

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

Производство для заказчика

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

Допустим, в отпуск хочет идти рядовой программист, который выполняет простые, рутинные задачи. К тому же у Вас есть свободный программист такой же (или высшей) квалификации. Решение очевидно - свободный программист может подменить программиста, который уходит в отпуск. Но тут есть важная деталь. Убедитесь, что какое-то время до начала отпуска оба программиста отработают вместе. Т.е., фактически, подменяющий программист проработает больше, чем Ваш постоянный программист будет в отпуске. Это необходимо сделать, дабы нивелировать период обучение и выход подменяющего программиста на “мощность” отпускного программиста. В результате временный программист выполнит необходимый объем работ (но за большее время) и проект будет идти по графику.
Но что делать, если нет свободного программиста на замену? Если проект или задачи отпускного программиста относительно короткие, скажем, меньше года, то Вам наверняка придется проявить все Ваши таланты и способности менеджера и уговорить программиста уйти в отпуск позже (или раньше). К чему апеллировать зависит от конкретного человека и ситуации. Кому-то достаточно будет рассказать о критичности и важности выполненной вовремя задачи для успешной сдачи проекта. Другому - пообещать более длительный отпуск после сдачи проекта. А кто-то даже согласится поработать сверхурочно, чтобы выполнить работу раньше и компенсировать переработку отпуском. Или если у Вас команда из нескольких человек, то может кто-то другой не будет против поработать сверхурочно, чтоб компенсировать отпуск коллеги. Вариантов может быть много. Это отдельная тема. Но лучше всего отпуска оговаривать в начале проекта.
Что, если на Вашем проекте есть уникальные программисты? Пытайтесь избегать подобных случаев. Иногда это очень сложно (или дорого), а иногда нереально в ограниченные сроки. Характерные примеры уникальных программистов – это математические/статистические программисты, специалисты по специфическим технологиям и языкам программирования. Не редко подобных специалистов приглашают на определенный срок по контракту. Приглашать на замену новых специалистов на 2-3 недели (срок отпуска постоянных специалистов), как правило, никто не будет, так как это может быть дорого или не реально в принципе (отдел кадров просто не сможет найти такого специалиста в ограниченные сроки). Это один из немногих случаев, когда Вам придется согласовывать отпуск программиста с заказчиком. Если специалист работает меньше года, то вероятнее всего Вам придется компенсировать заказчику время отсутствия такого программиста или программисту придется перенести свой отпуск.
Ну а если программист (любой – рядовой, узкоспециализированный, технический руководитель) запланирован на год и более, то, в большинстве случаев, Вы можете отпускать его/ее в отпуск без замены, сверхурочных работ и согласования с заказчиком. Исключения могут составлять случаи, когда на период отпуска заказчик неожиданно запланировал какие-либо мероприятия, которые требуют полную производительность команды или присутствие конкретного программиста. Такими мероприятиями могут быть выпуски продукта (Alpha, Beta, GM), конференции, важные совещания и т.д.
Почему же не надо беспокоиться о заменах, сверхурочных, согласованиях, при условии, что заказчик оплачивает Вам 168 часов/месяц/программиста в течение года? Подсчитаем:

Рабочих часов в 2004 году (252 раб. дня * 8 часов – 4 часа в “коротких” днях) 2012 часов
Оплата заказчика (168 часов * 12 месяцев) 2016 часов
Как видим, заказчик покрывает оплатой 24 календарных дня (т.е. 16 раб. дней или 128 часов) отпуска программиста. Я считаю оплату заказчиком отпуска вполне нормальным явлением, равно как вполне естественно, что программист имеет законное право на 24 календарных оплачиваемого отпуска. Заказчики тоже люди и должны это понимать. Если же заказчик не понимает, то политика по отпускам может быть приблизительно такой: “Если Вы хотите, чтоб работа не прекращалась во время отпуска программиста, нам необходимо будет привлечь других программистов. Это в свою очередь может замедлить работу, так как 1) необходимо будет вводить нового человека в курс дела, 2) разбираться в чужом коде сложнее, чем создавать с нуля или разбираться в своем коде, а это может привести к созданию множества ошибок, которые отпускному программисту придется решать по возвращению или, что хуже, переделывать кусок работы заново”.

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

Не редко компании-разработчики выставляют счет своим заказикам на 160 часов/человека/месяц.

Рабочих часов в 2004 (252 раб. Дня * 8 часов – 4 часа в коротких днях) 2012 часов
Оплата заказчика (160 часов * 12 месяцев) 1920 часов
Рабочие часы, неоплачиваемые заказчиком. Это 11 рабочих дней + 4 дня выходных = 2 недели и 1 день на отпуск 92 часа
В этом случае, заказчик покрывает около недели из законных 24 календарных дней в год. При этом остальное время отпуска приходится оплачивать компании за свой счет, и, следовательно, нет необходимости согласовывать и даже ставить в известность заказчика (конечно, если речь не идет о сдаче проекта или другом важном событии).

Почему именно идет речь об одном годе беспрерывной работы программиста на одного заказчика? Во-первых, удобно показывать как покрываются затраты на отпуск. Во-вторых, что важнее, правило именно “одного года” является более корректным с политической точки зрения, так как в противном случае может сложиться ситуация, когда один заказчик оплачивает программиста в течении полугода и покрывает 2 недели отпуска, а другой заказчик, который оплачивает второе полугодие, покрывает всего лишь неделю отпуска. Чем второй заказчик лучше первого?
Денн
28/07/2004

***

середу, 1 жовтня 2008 р.

Душегубы на Петра Запорожца

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