Условие это – возможность непрерывной работы над одной конкретной задачей от начала до конца. Если же это условие не выполняется и разработчику приходится отвлекаться на какие-либо другие задачки или заниматься координацией чьей-то работы, то… Все плохо становится. Производительность падает не просто в разы. Возможно, на порядок.
К сожалению, убедился в этом на собственном опыте в течении последних нескольких недель. Поэтому, если есть возможность, то не повторяйте моих ошибок – если взялись за что-нибудь, то делайте только это ни на что не отвлекаясь (вплоть до открытого посылания всех остальных задач в сад).
А если посмотреть с другой стороны "баррикад", то один из критериев стоимости программиста это как раз умение быстро и с минимальными потерями переключатся между разноплановыми задачами.
ОтветитьУдалитьПричем это вполне тренируемый скилл. Т.е. сугубо вопрос опыта.
Могу судить как и по себе, так и по наблюдениям за другими. Даже в таких случаях когда мы имеем три разноплановых проекта (даже с разными платформами и языками программирования) и есть необходимость работать в режиме 2/2/2 - т.е. по 2 часа в день над каждым проектом.
Производительность падает только в начале, далее при должной организации работы и опыте на переключение и полное погружение уходит не более 15 минут.
Т.е. это скилл, как другие дополнительные скиллы. И когда я выступаю работодателем я считаю этот скилл очень и очень ценным. И согласен за него дополнительно доплачивать.
Причем в теории это достаточно логично - атомарная задача, которую нужно обдумать, реализовать, протестировать и внедрить не должна по хорошему занимать больше нескольких часов, в противном случае ее бы хорошо бы разбить на подзадачи.
Безусловно возможность длительно работать на одной задачей не отвлекаясь это плюс. Но плюс сравнимый с наличием душа/сауны в офисе к примеру.
Т.е. некий плюс к комфорту. Но как и все подобные плюсы - он уже вычтен из дохода программиста :)
@YoungSkiper:
ОтветитьУдалить> по 2 часа в день над каждым проектом.
Сделайте в течении этих 2 часов хотя бы два прерывания в работе программиста и посмотрите, что получится. Боюсь, что и одного прерывания будет достаточно.
Я уже несколько лет работаю дома, так что не нужно рассказывать что значит иметь по несколько прерываний в течении часа :) А уж с ребенком маленьким что будет :))
ОтветитьУдалитьБезусловно некая "атомарность" задач должна быть. Причем предсказуемая. И 2, или даже 3 часа это скорее минимум. А целый рабочий день вообще не страшно.
В жизни не всегда так получается к сожалению.
ОтветитьУдалитьЕсть техники, которые позволяют хоть как-то стабилизировать фокус. Например ты просто 25 минут подряд просто ни на что не отвлекаешься. Полностью погружен в задачу. Потом обрабатываешь все внешние запросы и опять на какое-то время замыкаешься.
@Yuri Zhidum:
ОтветитьУдалитьДа, к сожалению не всегда.
У меня был период, когда я работал дома. Так тогда сфокусироваться на одной задаче на какое-то время было проще -- гораздо меньше отвлекающих факторов, чем при работе в офисе.
Вот наткнулся на интересный пост относительно необходимых знаний программиста:
ОтветитьУдалитьhttp://sharpc.livejournal.com/67583.html
Евгений, хотелось бы услышать Ваше мнение: что из этого вышеприведенного списка Вы считает действительно нужным?
@Quaker:
ОтветитьУдалитьНа тему этого набора я уже высказывался: http://eao197.blogspot.com/2011/03/progidiotichumour.html
Очень хорошо сделанная шутка-стеб. Так что действительно нужным я бы счет чувство юмора :)))
А что Вы считает более важным: знания или концентрация внимания?
ОтветитьУдалить@Quaker:
ОтветитьУдалитьНу и вопросик. Для отдельного большого поста.
В попытке ответить коротко: более важен "нюх" (интуиция, профессиональное чутье, опыт -- не знаю, какой термин лучше подходит). Чтобы вовремя почувствовать, на чем лучше сосредоточиться. Копать ли вширь или вглубь :)
Но, работа программиста (именно программиста, который плодит баги, а потом тратит силы на их поиск и исправление) требует моментов высокой концентрации. То самое состояние потока. Чем чаще оно нарушается, чем труднее в него войти из-за внешних факторов, тем хуже.