пятница, декабря 22, 2006

Бери шинель, пошли домой.

Сейчас становится модно программировать дома, в тапочках. Тенденция однако. У нее много проявлений. Вот к примеру фриланс наступает, обретая все новые формы. С другой стороны идеи виртуального офиса овладевают массами. Elena Makurochkina рассуждает на эту тему. А есть еще такая штука, именуемая емким словом "удаленка". Это когда компания нанимает разработчиков удаленно. Это не фриланс, потому что человек работает не на себя. Мобильным офисом тут тоже не пахнет. Большинство удаленщиков никогда не видели ни офисов своих компаний, ни даже своих коллег и начальников. Удаленщикам не нужны никакие инновации из области мобильного офиса. Им нужно подключение к интернет и банковская карточка, на которую переводят зарплату. Многие компании, такие как ComponentOne используют труд удаленщиков или полностью построены на такой модели найма сотрудников.
В последнее время мне приходилось проводить много телефонных технических интервью с кандидатами из регионов России, Украины и Беларусии. Вы знаете, я был очень удивлен тем, насколько это явление широко распространилось среди наших разработчиков. До трети от всех кандидатов из регионов работают удаленно.
Многие считают что за этой моделью будущее, многие хотели бы так работать, некоторые думают что в области разработки ПО большие офисы скоро уйдут в прошлое и все разработчики будут сидеть по домам писать код и общаться по скайпу. Я же считаю, что удаленка - это зло. В первую очередь для самого разработчика.
Одна тенденция порождает другую. Беседуя с удаленщиками, я заметил неожиданную особенность, в среднем уровень их профессиональных знаний ниже, чем у людей работавших обычным образом, при условии одинакового по времени опыта работы. Поразмыслив, я понял, что ничего удивительного в этом нет. Человек - существо социальное. Потому, что группа всегда имеет преимущество перед одиночкой. Группа быстрее аккумулирует знание и опыт, группа быстрее и качественнее решает проблемы. Много раз приходилось наблюдать, как молодой, неопытный сотрудник (студент) приходит в крепкую команду разработчиков и буквально через пару месяцев он подтягивается к общекомандному уровню опыта и знаний.
Мне могут возразить, что используя современные технологии, можно находиться дома (где угодно) и продолжать работать в команде. Ничего подобного. Даже с использованием самых последних средств групповой работы, включая аудио и видео телеконы, эффективность удаленных коммуникаций на порядок ниже по сравнению с коммуникациями прямыми. Не забывайте о неформальном общении. Люди общаются в кофейне, в курилке, по дороге на обед. Разработчики очень любят обсуждать проффесиональные темы. И даже в том случае когда двое обсуждают то, какой Вася идиот, и до чего кривой интерфейс он реализовал для ХХХ, и тогда идет обмен полезной информацией и накопление опыта.
Есть и еще один фактор, который стимулирует развитие - это внутренняя конкуренция между сотрудниками. В офисе она существует всегда. Образуется неформальная иерархия, которая опирается на авторитет сотрудников в глазах друг друга, и это становится стимулом профессионального развития.
Удаленщик всего этого лишен. Конкурировать с другими разработчиками он может только заочно. Коммуницировать он может только удаленно. К тому же он в халате и тапочках, т.е. пребывает в расслабленном состоянии. Время удаленщика течет медленнее. Время в офисе спрессовано и сжато - сутки за 8 часов. Результат: удаленщик проигрывает это заочное соревнование. Его уровень хоть и растет, но несравненно медленнее.
Я уже говорил, что при поиске сотрудников среди резюме из регионов до 30% удаленщиков. Знаете о чем это говорит? Нет, не о том, что в Калуге или Волгограде каждый третий программист сидит на удаленке. Просто большинство из них, посидев на удаленке год - два, начинают искать работу в офисе (об этом написано в их резюме).
Так что, не забудьте - в понедельник на работу. А понедельник, как известно, начинается в субботу. :)

6 комментариев:

Elena Makurochkina комментирует...

Зло – это слишком кардинальная оценка.

Любая форма работы имеет как свои плюсы, так и свои минусы.

1. Человек, безусловно, существо социальное и разработчикам, в большинстве своем, приятнее работать в живой команде. Но есть те, кому комфортнее работать дома. Т.ч. тут, скорее, выбор самого сотрудника, что ему больше нравится.

2. "Много раз приходилось наблюдать, как молодой, неопытный сотрудник (студент) приходит в крепкую команду разработчиков и буквально через пару месяцев он подтягивается к общекомандному уровню опыта и знаний."

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

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

3. Сейчас время web2.0 (не люблю я этот термин – но тут к месту). Для того чтобы быть в курсе отраслевых новостей не обязательно общаться в живую. Очень много IT блогов по любому из направлений – начиная с тонкостей работы C#, заканчивая построением команд разработчиков. Михаил Елашкин, например, развивает интересный ресурс для IT професссионалов – ITBlogs.

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

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

Sergey Rozovik комментирует...

"Новый формат взаимоотношений работодателя и сотрудника" - конечно приносит массу новых возможностей, особенно работодателю, да и работнику тоже. Но я настаиваю - для программиста, удаленка - это зло. Точно так же, как гамбургер - это зло для желудка. Вкусно, быстро, питательно, но - вредно. Никакие коммуникации не могут обеспечить передачу team spirit - ощущения наэлектризованной атмосферы симпатий и антипатий, конкуренции и взаимопомощи возникающей в командной работе. Я сейчас работаю с двумя проектными командами - в общей сложности около двадцати разработчиков. Каждый день нам приходится разбирать пару тройку технических или организационных проблем, и я в курсе того, как они решаются. Это означает то, что ежедневно я получаю примерно в двадцать раз больше опыта, чем если бы я работал в составе этой команды, но удаленно, дома. Просто каждый бы решал большую часть проблем самостоятельно (ну или через форумы, блоги и т.д.)
Не стоит переоценивать в этом плане возможности web (2.0 или обыкновенного :). Я читаю ITBlogs и многие другие блоги. Активно участвую в форумах RSDN и GotDotNet. Это действительно помогает быть в курсе. Не более того.
Я помню, как в декабре 2004 года мы с коллегой возвращались с конференции "Платформа 2005". Оба мы тогда работали в составе большой команды над платформой Ranet на основе технологии .Net. Пол ночи в поезде мы делились впечатлениями и обсуждали перспективы нашего продукта. Уже через месяц результатом этой поездки стал весьма кардинальный пересмотр архитектуры всего нашего продукта. Причем я не могу сказать, что мы услышали какие-то откровения на этой конференции, нет. Просто на конференции мы смогли почувствовать, куда направлен общий вектор развития технологий. Это был чисто эмоциональный толчок. Сидя дома этого не получишь.

Elena Makurochkina комментирует...

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

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

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

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

Сотрудник, работающий дома, тоже не обязательно лишается живого общения. Он так же может участвовать в конференциях, и простое внерабочее общение тоже никуда не девается.

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

Sergey Rozovik комментирует...

Не все так плохо, Елена, на крупных проектах. Сегодня человек делает web формы, завтра - отчеты, а на следующей неделе ему дают делать инсталлятор. А вот у удаленщика разнообразия обычно меньше. Во свяком случае я, когда в моем проекте были удаленщики, старался выделять им менее важные задачи. А убедившись, что человек успешно с ними справляется, я старался выдавать ему задания того же типа. В этом нет ничего удивительного. Просто я стремился минимизировать свои издержки в виде времени, которое мне приходилось затрачивать на консультации удаленных сотрудников по ICQ, e-mail и телефону.
Моя мысль состоит в том, что удаленка безусловно выгодна работодателю, но для программиста такая работа, несмотря на всю привлекательность приносит вред. Для работодателя программист - средство производства. Сидя дома программист получает компенсацию за сделанную работу, и все. В команде, помимо зарплаты, у программиста масса бенефитов, основной из которых - более быстрый рост профессионализма, и как следствие рост стоимости на рынке труда.

Elena Makurochkina комментирует...

У нас просто разный опыт, соответственно разные взгляды.

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

С другой стороны мой опыт мне говорит, что работая дома (или не только дома, ведь снимается привязка к месту) можно строить график так как удобно именно тебе и именно сейчас. Работу, на которую в обычном офисном режиме тратишь 2 дня можно сделать за 5-6 часов. Если не работается, то можно поэкспериментировать с чем-то новым (что обеспечивает развитие). Можно, конечно, скатиться в состояние вялотекущей работы, но это решается планированием и четкой постановкой задач.

Sergey Rozovik комментирует...

"...человек в большом проекте может годами заниматься только отчетами, или только одним модулем..."
Не поверите, я видел десятки таких программистов (если не сотни :). Забавно то, что большинству из них очень нравится своя работа. Собственно на работу у них уходит пара часов в день, причем заметьте, довольны все и начальство и работники, потому как вы правильно заметили, "он все более надежен на этом месте". А вот остальное время они прекрасно проводят в кофейне, курилках, разговорах. Поверьте, они ни за что не согласятся делать эту работу дома. Для них офис - дом родной. А смена работы - катастрофа.
В общем, каждому свое. Кому-то нужен постоянный челендж, кому-то стабильность, а кому-то главное програмировать в тапочках :)