четверг, 12 мая 2011 г.

[prog.work] Одно из важнейших условий успешной работы программиста

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

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

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

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

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

    Производительность падает только в начале, далее при должной организации работы и опыте на переключение и полное погружение уходит не более 15 минут.

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

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

    Безусловно возможность длительно работать на одной задачей не отвлекаясь это плюс. Но плюс сравнимый с наличием душа/сауны в офисе к примеру.

    Т.е. некий плюс к комфорту. Но как и все подобные плюсы - он уже вычтен из дохода программиста :)

    ОтветитьУдалить
  2. @YoungSkiper:

    > по 2 часа в день над каждым проектом.

    Сделайте в течении этих 2 часов хотя бы два прерывания в работе программиста и посмотрите, что получится. Боюсь, что и одного прерывания будет достаточно.

    ОтветитьУдалить
  3. Я уже несколько лет работаю дома, так что не нужно рассказывать что значит иметь по несколько прерываний в течении часа :) А уж с ребенком маленьким что будет :))

    Безусловно некая "атомарность" задач должна быть. Причем предсказуемая. И 2, или даже 3 часа это скорее минимум. А целый рабочий день вообще не страшно.

    ОтветитьУдалить
  4. В жизни не всегда так получается к сожалению.
    Есть техники, которые позволяют хоть как-то стабилизировать фокус. Например ты просто 25 минут подряд просто ни на что не отвлекаешься. Полностью погружен в задачу. Потом обрабатываешь все внешние запросы и опять на какое-то время замыкаешься.

    ОтветитьУдалить
  5. @Yuri Zhidum:

    Да, к сожалению не всегда.

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

    ОтветитьУдалить
  6. Вот наткнулся на интересный пост относительно необходимых знаний программиста:
    http://sharpc.livejournal.com/67583.html
    Евгений, хотелось бы услышать Ваше мнение: что из этого вышеприведенного списка Вы считает действительно нужным?

    ОтветитьУдалить
  7. @Quaker:

    На тему этого набора я уже высказывался: http://eao197.blogspot.com/2011/03/progidiotichumour.html

    Очень хорошо сделанная шутка-стеб. Так что действительно нужным я бы счет чувство юмора :)))

    ОтветитьУдалить
  8. А что Вы считает более важным: знания или концентрация внимания?

    ОтветитьУдалить
  9. @Quaker:

    Ну и вопросик. Для отдельного большого поста.

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

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

    ОтветитьУдалить