1/08/2007

Не мешайте программистам!

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

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

Другая проблема заключается в том, что очень легко выпасть из "потока". Шум, телефонные звонки, обеды и особенно реагирование на сослуживцев - всё это выбивает вас из колеи. К примеру, ваш коллега задал вам вопрос. Вы отвлеклись всего на минуту, но этого уже достаточно, чтобы выбить вас из режима работы, и вам уже потребуется по меньшей мере полчаса, чтобы вновь втянуться. Ваша общая производительность
может от этого сильно пострадать. Если вы работаете в шумном "загоне", где ребята из отдела маркетинга висят на телефонах, и тут же рядом работают программисты, ваша производительность резко снижается, так как люди умственного труда то и дело отвлекаются и не могут сконцентрироваться.

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

Вот вам простая арифметика. Факты свидетельствуют, что если мы отвлекаем программиста даже на 1 минуту, мы отнимаем у него 15 минут продуктивной работы. К примеру, у нас есть два программиста: Джеф и Мат, сидящие за соседними столами на обычной Дилбертской ферме по откорму телят. Мат забыл название Unicode версии функции strcpy. Он может найти его самостоятельно, для чего надо 30 секунд, или спросить Джефа, на что уйдёт 15 секунд. Так как он сидит рядом с Джефом, почему бы не спросить Джефа. Джеф отрывается от работы и теряет 15 минут продуктивной работы (чтобы сэкономить 15 секунд Мата).

Давайте теперь переместим их в отдельные офисы со стенами и дверями. Теперь, когда Мат забыл название функции, он может найти его самостоятельно, что по-прежнему займёт 30 секунд, или спросить Джефа, на что уйдёт 45 секунд, и при этом ещё придётся вставать и куда-то идти (нелёгкая процедура для большинства программистов, если принять во внимание их физическую форму!) Таким образом, он разбирается сам. Мат тратит 30 секунд, но при этом сохраняет 15 минут продуктивной работы Джефа. ...

2 Comments:

Анонимный said...

http://russian.joelonsoftware.com/Articles/TheJoelTest.html
???
Копипастим?...

Mindberg said...

Да, адрес правильный и он указан в конце текста, под многоточием ;)

Кстати, для тех кто не в курсе: блог, а изначально web log - это архив интересных материалов, найденных в сети, плюс свои мысли и комментарии.