image

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

От чего возникает прокрастинация? Почему в других профессиях эта проблема обычно стоит менее остро? Чем программисты такие особенные?

Всё дело в специфике программирования (системного решения сложных задач). Программировать нельзя «вполсилы» — такая работа в итоге приравнивается к нулю. Код с одной маленькой ошибкой не отработает как надо, даже если остальные 99.99% там верные. Более того, даже если код работает, но при этом жутко кривой, чаще всего, в итоге его придётся переписывать с нуля — это будет проще, чем пытаться выправлять его костылями. Т.е. по сути, написание недостаточно качественного кода это абсолютно пустая трата времени и сил — переделка «на чистовую» от этого не ускорится.

А написание хорошего кода требует особого состояния. Независимо от уровня подготовки человека, писать хороший (с его точки зрения) код он способен лишь несколько часов в день (и то не гарантированно). Если вы считаете, что можете писать хороший код весь день каждый день, вероятно, вы просто уже переросли свою текущую работу и пришла пора взяться за более серьёзные задачи (например, научиться её автоматизировать).

В большинстве других работ такого нет — «рисовать формочки», разговаривать по телефону, писать письма и документы — всё это можно делать «вполсилы» весь день. Результат, конечно, будет хуже, чем хотелось бы, но не «в ноль». А недочёты потом несложно поправить.

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

Это часть прокрастинации, которая присутствует у всех программистов — в офисе и на удалёнке. Но есть также две части, которые свойственны только удалённой работе — свободный график и отсутствие прямого общения.

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

А вот недостаток общения влияет намного больше, чем кажется. Главным тут является эффект присутствия. Почему ученики и студенты лучше усваивают материал и усерднее делают лабораторные в присутствии живого преподавателя? Почему преподаватели раз за разом зачитывают одни и те же лекции голосом, когда уже десятки лет существуют технологии аудиозаписи и трансляции? Ответ — человеческая психология. Намного проще сфокусироваться на информации, когда все вокруг тоже направили на неё внимание, и когда она исходит от человека (настоящего, физического), наделённого авторитетом.

О заочниках
Да, конечно, есть заочные факультеты, видеолекции и дистанционные курсы, и вы уже хотите написать про них в комментах. Дело не в том, что они не работают совсем, а в том, что они намного менее эффективны, по крайней мере для большинства людей. Тех же заочников в ВУЗах, по моему опыту, вообще приравнивают к «отсталым», выставляя тройки/зачёты за умение ответить на вопрос после поиска информации в методичке.

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

Подводя итог: на деле программисту на удалёнке для работы нужно сначала приложить усилия и фантазию, чтобы убедить свой мозг в существовании «виртуальной проблемы», затем опять же приложить усилия, чтобы ограничить себя в развлечениях, а затем оставшихся усилий должно хватить на написание безошибочного и качественного кода. А если их не совсем хватает, то лучше и не начинать писать, всё равно впустую. Уже не кажется такой простой проблемой лени, не так ли?

Собственно вот, «кто виноват» разобрались, теперь к вопросу «что делать».

1.

Если вы обнаружили, что затянули с прокрастинацией и даже сейчас продолжаете упускать время — задайте себе вопрос «какая у меня следующая задача и когда я смогу её выполнить». Не оставляйте его, пока не сможете сами для себя четко, словами, сформулировать ответ. При этом «когда» — это не время, а состояние. В каком то смысле «условие». И в зависимости от ответа оцените то, что делаете — насколько оно приближает вас к цели.

У меня этот внутренний диалог обычно проходит так:

«Нужно запилить фичу X. Когда сможешь?»

«Когда высплюсь/когда буду себя нормально чувствовать» — так займись тем, что приближает это состояние. Поешь. Поспи. Болеешь? Полечись. Прямо сейчас. Не «когда досмотрю серию», не «когда доиграю партию», не «когда допью кофе» — все эти действия не приближают тебя к рабочему состоянию.

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

«Когда разберусь, что именно нужно делать» — значит, твоя следующая задача не «сделать», а «разобраться». Разбирайся. Спроси заказчика/менеджера (переспроси, если уже спрашивал и не получил ответа), либо попробуй сам покопаться в проблеме. Если ты не пытаешься разобраться в этом прямо сейчас, ты просто тратишь время зря.

«Когда закончу с другими делами» — значит, твоя текущая задача среди этих «других дел». Да, теперь это рабочая задача. Со стороны может показаться, что другие дела не имеют отношения к работе, но по этому ответу ведь видно, что имеют, и прямое.

«Ну, я и сейчас смог бы, наверное» — делай.

И т.д. Основной принцип — «раз уж ты, очевидно, не работаешь прямо сейчас, тогда хотя бы убедись, что занимаешься чем-то, что гарантированно приближает это состояние».

2.

Всё, что влияет на эффективность вашей работы — по сути, тоже становится частью работы и тоже должно восприниматься серьёзно. Это исключительно дело восприятия. Если для продуктивной работы нужен сон — значит «выспаться», это отныне требование заказчика (хоть и неявное). Если для работы нужно хорошее настроение — значит даже «поиграть во что-нибудь» для повышения настроения — уже становится частью требований.

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

3.

Мало кто может поднять груз, весом в тонну и перенести его в другую комнату, даже если на это даётся месяц. А перенести сотню 10-киллограмовых грузов — уже выполнимо. Также следует поступать и с работой — разделяйте её на мелкие части и выполняйте по мере возможностей.

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

Собственно, вот. Дополнения в комментариях приветствуются.

Комментарии (97)


  1. dipsy
    27.08.2017 09:09
    +1

    Не забываем про соответствующую фармакологию, ведь все наши ощущения зависят от биохимии в мозгу в т.ч.
    Сильбутиамин, Л-Теанин, Л-Тирозин, ALCAR, сочетание их с фенилпирацетамом и прочими рацетамами. Подходящие вам комбинации могут дать несколько часов продуктивной сосредоточенной работы с хорошим качеством, как минимум 2-3 раза в неделю, чтоб толерантность не вырабатывать. Химические/аптечные названия конечно некоторых могут пугать, понимаю, но по сути это ничем не отличается от привычных чашки кофе (тоже химия, кофеин, как он есть) по утрам или пары бутылок пива по пятницам для снятия стресса, только эффект лучше.


    1. Ruslikk
      27.08.2017 12:27

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


      1. dipsy
        27.08.2017 21:36
        +1

        Всё перечисленное и многое другое можно, риталин, аддерал и модафинил нельзя, в РФ приравнено к наркотикам.


        1. Ruslikk
          28.08.2017 01:30

          Тогда это интересно, есть ли какая-то общепринятая комбинация этих вещей, с дозировками? Понятно, что можно гуглить, но если начинать с нуля, то это надолго… А мне лень



    1. Singaporian
      27.08.2017 12:41
      +8

      LSD забыли вписать :-D Если уж употреблять, то употреблять самоотверженно, с фанатизмом!


      1. dipsy
        27.08.2017 21:41
        +7

        Микродозинг LSD возможно когда то и в этой стране легализуют, безопасное и хорошее средство для поднятия креативности и мотивации. А вот про фанатизм не надо, понимаю, пытаетесь шутить, возможно это даже смешно, типа наркоманы, да? Вот выжрать бутылку водовки в одно лицо это не наркомания, это даже почетно, а глицин из аптеки под язык, фу, колёса, ловите наркомана!


        1. mad_god
          28.08.2017 09:52

          глицин? Может, просто покушать мяса или яичницу?


          1. BigBeaver
            28.08.2017 09:55

            Куриные крылышки же — нужно больше соединительной ткани. Если мясо, то пожирнее типа бекона.


          1. sumanai
            28.08.2017 17:39

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


            1. BigBeaver
              28.08.2017 18:59

              Он и из пищи так же попадет в мозг. А если не попадет, то и из под языка не попадет. У этого метода плохо с доказательной базой, емнип.


            1. mad_god
              29.08.2017 08:37

              из мяса в желудке также глицин всасывается в кровь и попадает в мозг, нет?


              1. bro-dev
                30.08.2017 05:25

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


                1. BigBeaver
                  30.08.2017 10:09

                  В желудке, глицин сразу же упрощается до сахара
                  А можно пруф? Дело в том, что если бы глицин не усваивался из пищи, организм бы устал его синтезировать. Вы смотрите на него как на нейромедиатор, но его основная роль — строительство соединительной ткани, которая состоит из него чуть ли не наполовину.

                  Также, не повредит пруф на прохождение ГЭБ подъязычным глицином. Дело в том, что его попадание в кровь совсем не гарантирует рост концентрации в мозге.


    1. BattleAngelAlita
      27.08.2017 15:04

      У народного, и по сути уничижительного термина как «прокрастинации» ест чёткое медицинское название — СДВ. И его нужно лечить, само по себе оно не пройдёт. Единственное доступное лекарство в россии — страттера, остальные эффективные и общепризнанные запрещен ФСКН.


      1. boblenin
        28.08.2017 04:50

        Только вот существование его признается далеко не всеми. А результаты лечения весьма сомнительны.


        1. BattleAngelAlita
          28.08.2017 11:00

          Не признаётся только слаборазвитыми странами, с высоким уровнем детского насилия. А у нас как раз очень любят дать ремня.
          А результаты лечения просто потрясающие. Люди, считавшиеся пропащими — затворники-отшельники, наркоманы, хулиганы преображаются и становятся достойными членами общества, находят работу, заводят семью.


          1. Hellsy22
            28.08.2017 11:32

            — Как вы воспитали такого умного хорошего мальчика?
            — Ложь, угрозы, шантаж.

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

            Сам я считаю использование боли — варварством. Но могу засвидетельствовать, что без контроля дети будут по 16 часов в сутки смотреть видео на ютубе или играть в игры, игнорируя уроки и домашние обязанности. И чтобы защитить такой образ жизни они готовы примерно с десятилетнего возраста лгать, игнорировать, откровенно хамить и даже угрожать.

            Так же интересно, как вы видите решение проблемы наступления уголовной ответственности — вам не кажется странным, что государство может применять неограниченное насилие к несовершеннолетним, а родители в то же время не могут применять никакого?


    1. evvlasov
      27.08.2017 15:17

      Риталин


    1. John_SC
      28.08.2017 22:29

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


  1. lostpassword
    27.08.2017 09:39
    -7

    Как-то покоробило такое резкое выделение программистов из остальной массы работников, которые "пишут документы, говорят по телефону и на письма отвечают" и "могут это делать вполсилы, ведь всё равно потом будет результат".
    На мой взгляд, в этом отношении программирование ни на йоту не отличается от многих других областей деятельности. Вот менеджеры в ходе почтовой переписки какое-то решение выработали, потом в протоколе его зафиксировали, и оно стало обязательным к исполнению. Сколько будет стоить их ошибка? Вот технический писатель готовит комплект документации и допускает ошибку. Сколько она будет стоить, учитывая тысячи возможных пользователей?
    Понятно, что в идеальном мире нужно писать идеальный код и работать в полную силу. Но в реальности такое положение дел редко встречается. Не в полную силу работают и программисты, и архитекторы, и инженеры, и слесари, и строители. И ошибки всех могут обойтись дорого — но пока жизнь устроена именно так.


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


    1. i86com Автор
      27.08.2017 11:44

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


      Примеры, которые вы приводите, тоже относятся к системному решению задач (для решения задачи создаётся и продумывается система) и, да, в них отчасти справедливы те же принципы.

      Разница тут, на мой взгляд, не в цене ошибки, а в «дискретности» результата. Т.е. например менеджеры решили, что для замены сломанного компьютера работники должны писать заявку, а соответствующий отдел должен её регистрировать и высылать ответ. Если они не оговорили точный формат заявки и ответа, то люди на месте разберутся, «что-нибудь придумают». Программа же без чёткого формата просто не отработает.

      И если менеджерам просто укажут на недоработку, то программисту ещё нужно будет доказать, что он вообще что-то делал, а не просто так сидел. И это не всегда возможно.

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


      1. lostpassword
        27.08.2017 12:11
        +1

        "Программа же без чёткого формата просто не отработает" — что это означает? Мы же вроде бы работу программистов обсуждаем, а не саму программу.)


        Тут должно быть другое сопоставление: программист отдохнул — написал хорошую программу, устал — написал плохую программу, с багами и ошибками.
        Менеджер отдохнул — написал хорошее письмо, учёл все детали. Устал — написал письмо кое-как, создал потенциально проблем фирме.
        "Он не будет часами сидеть и приходить в нужное состояние" — это с чего бы? Если мы говорим про какой-то серьёзный вопрос, то менеджеру точно так же нужно представить в уме всю ситуацию, да ещё и смоделировать то, как она повлияет на бизнес, коллег, заказчиков. И как менеджер может сделать всё спустя рукава (и потом придётся всё переделывать), так и программист может схалтурить (например, программа будет работать, но в ряде случаев будут возникать сбои и всё тоже придётся переделывать).


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


        Собственно, единственное, что я хотел сказать — это то, что не нужно к телефонным звонкам и письмам относиться с пренебрежением. Они тоже разные бывают.)


        1. HappyUser
          28.08.2017 15:43

          Как программист-внедренец (совмещение работы с клиентом и непосредственным тех процессом), не могу с вами согласиться. Телефоны/письма не столь критичны — можно перенести/«налить воды»/ответить на «автопилоте», если что то было сказано не совсем корректно, можно потом поправить в т.ч. кодом (переформатировать базу данных, если пользователи уже с ней работают неправильно из-за ошибочной выданной информации в телефоном разговоре или еще где), а вот ошибка в коде чревата восстановлением бэкапов, попыток перенести новую наработанную информацию в бэкапы и, опять же, написать этот участок кода правильно. Получается потеря ресурсов даже не двукратная, а намного больше.

          Просто оставлю это здесь…

          Серийный программист
          Плохой программист Джон сделал ошибку в коде, из-за которой каждый пользователь программы был вынужден потратить в среднем 15 минут времени на поиск обхода возникшей проблемы. Пользователей было 10 миллионов. Всего впустую потрачено 150 миллионов минут = 2.5 миллиона часов. Если человек спит 8 часов в сутки, то на сознательную деятельность у него остается 16 часов. То есть Джон уничтожил 156250 человеко-дней ? 427.8 человеко-лет. Средний мужчина живет 64 года, значит Джон убил примерно 6 целых 68 сотых человека.

          Как тебе спится, Джон — серийный программист?
          habrahabr.ru/post/309388


          1. lostpassword
            28.08.2017 19:53

            Да, да. Программисты — боги. Никто, кроме программистов. Я понял.


    1. deniskreshikhin
      27.08.2017 11:45
      +6

      Разве бывает так, что менеджер пишет письмо, а оно у него не компилируется?


      1. lostpassword
        27.08.2017 12:12
        +3

        Ещё как бывает! :D


      1. tmin10
        27.08.2017 13:37

        Письма, вообще, довольно редко компилируются…


        1. ukt
          27.08.2017 19:01
          +1

          они, как правило, интерпретируются.


          1. tmin10
            27.08.2017 19:06

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


        1. mad_god
          29.08.2017 09:41

          Компиляция — сборка из различных исходников. Вполне себе компилируется. Оттуда «Добрый день %username%», оттуда «Всего хорошего и спасибо за рыбу» и ещё много чего можно накомпилировать, не вставив лично от себя ни слова.


      1. Grox
        27.08.2017 15:42
        +1

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


        1. deniskreshikhin
          27.08.2017 16:47
          +5

          Я вот не встречал менеджеров в IT которые реально бы делали оценки, решали оптимизационные задачи и принимали на этом основе решения. Хотя это не сложно и обычно такие вещи проходят на 1-2 курсах на всяких управленческих специальностях.

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


          1. Grox
            27.08.2017 21:34
            +1

            Я вот не встречал
            Это ваш опыт. Представьте, что есть проекты IT уровня Большого адронного коллайдера. Там, я уверен, будет другая ситуация.


            1. deniskreshikhin
              27.08.2017 22:42
              +2

              И много вакансий в БАК нам моём круге и хх? По мне 90% айтишных вакансий это хренак-хренак и в продакшн. Ну т.е. понятно что где-то возможно что-то строится по науке и всё-такое, но это очевидно очень редкое исключение. Т.к. я не наблюдал что бы в вакансиях для менеджера в IT требовались знания «теории игр» или «теории принятия решений», или хотя бы «математической логики». Т.е. базовые знания на которых должно строится принятие решений. Хотя для программистов, особенно мидлов и сеньоров, требования по теории алгоритмов и т.п. вполне обыденность даже в самых говняных конторах.

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


              1. lostpassword
                28.08.2017 20:08

                Чушня для программиста, а не для менеждера.)

                И на кой бы чёрт в жизни нужна математическая логика, не подскажете? Или теория игр? Системы уравнений строить и оптимальные коэффициенты подбирать?
                Жизнь в целом и люди в частности крайне плохо поддаются абстракции, особенно в малых объёмах. Для крупной корпорации за долгий период ещё можно прикинуть какие-то средние значения, а для маленькой фирмы — нереально. Где вы тут науку применять предлагаете? И — главное — как?


                1. 4eyes
                  28.08.2017 21:31
                  +2

                  В простейшем виде — для планирования расходов. Например, чтобы посчитать сколько в год «стоит» кредит на сумму Х денег с процентной ставкой Y% и ежемесячным погашением по графику. Для многих (1.10)^12 = 10% * 12. Бонус — матожидание выигрыша при игре в рулетку.

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

                  В еще более сложном случае возможно озвучить основы формальной логики, для доказательства того, следование событий друг за другом во времени не гарантирует их причинно-следственной связи, например, прививка соседского ребенка «от полиомиелита» не является причиной того, что он вырос идиотом и нагадил в лифте, хотя и статистически повысила вероятность того, что он вообще смог дойти до лифта и держать пальцем кнопку останова. А статистика поможет понять, что опрос на тему опасности прививок среди пациентов аллергологии слегка нерепрезентативен и сгущает краски.

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


                  1. lostpassword
                    28.08.2017 21:37

                    Спасибо за развернутый ответ.
                    Но в приведённых примерах я не вижу ничего, что пригодилось бы в производственной деятельности в масштабах небольшой команды. Остаётся только идея "математика нужна, чтобы логично мыслить" — идея, имеющая право на жизнь, но довольно абстрактная.
                    А в реальной жизни, ИМХО, полезнее, чтобы менеджер умел с людьми внятно общаться, чем чтобы он прекрасно тервер знал или теорию игр.


                    1. BigBeaver
                      28.08.2017 21:55

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


                      1. lostpassword
                        28.08.2017 22:03

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


                        1. BigBeaver
                          28.08.2017 22:08

                          Так это оно и есть. Как отличить манипуляции от здравого смысла? Не каждая попытка в чем-то убедить является манипулятивной. Если не владеет логикой, то это будет вопрос веры/интуиции. Не самый рациональный вариант.


                          1. lostpassword
                            28.08.2017 22:40

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


                            1. BigBeaver
                              28.08.2017 22:50

                              Зарплата программиста на проекте N единиц денег за трудодень, цена бригады грузчиков — М денег за трудодень. Выгодно ли заставлять программистов самих все носить? Да еще и снимать с работы по грузопереноске 2 команды вместо одной?

                              Почему вообще мебель не грузчики таскают? Из-за ошибки кого-то другого в руководстве? Или это правда выгодно компании?


                              1. lostpassword
                                28.08.2017 23:01
                                -1

                                То есть вы предлагаете подискутировать на тему того, выгодно ли это, в тот момент, когда уже нужно принять решение (переезд-то уже идёт полным ходом!!), при этом намекая, что в руководстве кто-то неправ.)
                                Честно говоря, у меня нет большого опыта выступления на таких совещаниях. Если у вас он есть, и в вашей компании после такого руководство бы раскаялось и вам бы выделили грузчиков — ну, добро.
                                Но лично у меня складывается впечатление, что в большинстве региональных компаний команда А замечательно пошла бы грузить столы. Просто потому, что стоимость часа и лояльность сотрудников — это где-то абстрактно и далеко, а шкафы таскать нужно сейчас и срочно.


                                1. lostpassword
                                  28.08.2017 23:05
                                  -1

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


                                  1. BigBeaver
                                    28.08.2017 23:12

                                    Это все демагогия. (1) Вы даете заведомо неполную по условию задачу. (2) Наличие примера, где не нужны обсуждаемые качества, никак не доказывает их ненужность.

                                    p.s. очевидно, что ответ на исходный вопрос будет зависеть от приоритетности задач.


                                    1. lostpassword
                                      28.08.2017 23:21

                                      Да вот на мой взгляд — как раз доказывает.
                                      Если бы можно было построить Великое Уравнение Бизнеса, в который подставил значения — и результат получил, то куча менеджеров осталась бы без работы.))
                                      А проблема как раз и состоит в том, что задачи в жизни заведомо неполны по условию, плюс условия постоянно меняются, плюс результат то один должен быть, то совершенно другой, а часть входных данных вообще для нас недоступна (доволен ли Вася работой? не перейдёт ли к конкурентам? сколько нужно платить Мише, чтобы он не ушёл? сможет ли новый сотрудник Пётр сделать задачу в срок? сколько готов заплатить заказчик за эту фичу?)


                                      1. BigBeaver
                                        29.08.2017 00:08

                                        Да вот на мой взгляд — как раз доказывает.
                                        Вот вы и стали примером ошибочного мышления.

                                        Ну и да, все перечисленное вполне формализуется при желании.


                                      1. HappyUser
                                        29.08.2017 11:50

                                        Первая ссылка по поиску формул для менеджера: www.studfiles.ru/preview/5947100/page:4/
                                        Только менеджерам уровня кассиров не нужно знать математику выше 5-ого класса. Дальше сплошные формулы и расчеты.

                                        то куча менеджеров осталась бы без работы.))

                                        Так сейчас куча менеджеров нужна только для того, чтобы осуществлять связь с клиентом и делать рутинные операции (многие заказчики не любят/не умеют использовать интерфейсы самообслуживания и предпочитают общаться с людьми), пруф — везде, особенно заметно в муниципальных организациях (часто встречается — стоит девочка/бабушка рядом с автоматом выдачи номерков электронной очереди и сами выбивают для посетителей)


                                        1. ghaur
                                          30.08.2017 02:30

                                          пруф — везде, особенно заметно в муниципальных организациях (часто встречается — стоит девочка/бабушка рядом с автоматом выдачи номерков электронной очереди и сами выбивают для посетителей)

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


                        1. deniskreshikhin
                          28.08.2017 22:19
                          +1

                          У меня есть хороший пример из практики.

                          Один менеджер мне как-то заявил, что если 10 фич можно запилить за 1 неделю, то 20 фич (связанных между собой) можно запилить за 2 недели.

                          Дальше был такой диалог:
                          Я: — За сколько бы ты отсортировал случайно перетасованную колоду карт, не выпуская колоду и карты из рук?
                          М: — Ну примерно за 2 минуты.
                          Я: — Ок, а две колоды перетасованные вместе?
                          М: — Эм… ну соответственно за 4 минуты?
                          Я: — А 3 колоды соответственно за 6 минут?
                          М: — Да.

                          И вот такие люди принимают решения.


              1. Ares_ekb
                29.08.2017 06:48
                +1

                решения по науке
                вспомнил слова своего научного руководителя: «да, ты, конечно, хороший программист» — говорил он мне, подразумевая что на научную работу я не способен, типа «давай, программируй дальше». Или руководитель одного исследовательского подразделения в MS на конференции: «ну, мы-то с вами знаем, что главные в ИТ компании — это сотрудники R&D».

                Или на работу устраивался, а руководители убеждали меня пойти в РП: ну, типа, что это программирование, ну, 10 лет ты ещё попрограммируешь, а дальше захочется принимать какие-то реальные решения по проекту.

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

                Научная работа требует сосредоточенности на задаче в течение многих лет, если не всей жизни. Чтобы банально написать одну приличную статью требуется несколько месяцев. У программистов же принято менять работу и проекты минимум раз в год-пару лет. Если программист в течение года не изучил новую технологию, то, всё, он не развивается. Иногда смотришь, человек тут год поработал, там пару лет. А что за это время он вообще мог сделать? Если задача достаточно сложная, то через год работы ты только-только начнешь в неё погружаться.

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


                1. deniskreshikhin
                  29.08.2017 10:41

                  Я бы сказал что это проблема науки, а не программирования. Т.е. такие порядки больше ущерба приносит, чем пользы. В этом отношении IT и Computer Science всех сделали по своей продуктивности.


  1. BigBeaver
    27.08.2017 09:53
    +9

    «Когда буду в настроении» — займись тем, что повышает настроение.
    Сходил в спортзал, устал.
    «Когда высплюсь/когда буду себя нормально чувствовать» — так займись тем, что приближает это состояние. Поешь. Поспи.
    Поспал.
    GOTO 1

    Так и живем.
    P.S. на самом деле, на редкость конструктивная статья для этой темы.


  1. Mitch
    27.08.2017 10:16

    Идея оставлять задачу недозавершенной в несколько строк кода — кажется мне крайне сомнительной.
    Очередная задача должна быть закончена, протестирована, и незачем хранить ее остатки в памяти, все равно потом окно внимания надо заполнить другими данными для другой задачи.
    Либо, тут изначальная ошибка декомпозиции, разбиение на слишком крупные блоки и эти несколько строк кода вовсе не завершение задачи а только ее средина.
    С остальным согласен, хорошо изложено.


    1. xMushroom
      27.08.2017 11:11
      +1

      Здравое зерно тут в том, что очень не хочется начинать работать с чего-то мозговыносящего. Гораздо легче начинать с простых задач, конечно, если они есть. А если нет — можно предварительно решить сложную, но оставить на завтра завершающие штрихи, причёсывание, которое уже не требует больших умственных усилий.


      1. San_tit
        27.08.2017 11:23

        Тогда уж лучше ты конце рабочего дня составить себе "список задач" на следующий день (не оставляя открытых). Единственное в чем трабл в такой организации — это когда поставленная задача "внезапно" занимает не 6-8 часов, а 1-2, и тогда на остаток дня состояние не очень.


    1. Akdmeh
      27.08.2017 11:55

      Вы правы. Я, например, очень не люблю оставлять нерешенных задач на ночь или на перерыв, потому что в таком случае они будут у меня крутится в голове и я всю ночь буду спать тревожно или вместо отдыха думать: «что же там не так».
      Это в первую очередь касается каких-то нерешенных и непонятных багов.


      1. i86com Автор
        27.08.2017 12:13
        +1

        В случае непонятных багов — это другая ситуация, тут не возникает такого состояния, когда «точно известно, что делать дальше». А вот, например, когда баг найден и исправлен, и следующее действие — просто скопировать то же самое исправление ещё в 3 похожих участка кода, то тут я бы как раз и остановился (если, конечно, это не критичный баг в продакшене и подождёт до завтра).


  1. Gorthauer87
    27.08.2017 11:44

    Мне кажется, если долго этим заниматься, то вполне можно по эффективности обогнать офисных работников. А для этого нужно просто уметь планировать свое время и побольше общаться с другими членами команды. И это таки приходит с опытом.


  1. Ares_ekb
    27.08.2017 12:17
    +1

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

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

    А насчет прокрастинации — может её вообще не существует? Если вам не хочется заниматься какими-то задачами, ну, значит они не достаточно важные и интересные? Значит, то чем вы занимаетесь в данный момент более важно?

    Или, например, вы никогда не воспринимали свою работу как прокрастинацию? Очень легко погрузиться в рутину и день за днем делать какие-то задачи. Время идет, а задачи всё появляются и появляются. Бывает очень сложно забить на них и заняться, например, написанием статьи на хабр или написанием научной статьи для диссертации или заняться какими-то своими интересными проектами. Гораздо проще закрывать задачки, писать «безошибочный» код, который всё равно будет ошибочным и который нафиг никому не нужен.

    image


    1. i86com Автор
      27.08.2017 12:49
      +1

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


      «Безошибочный код» в данном случае — код, который работает и, в общем, выполняет требования заказчика, а не в смысле идеальный. Если у вас функция выдаёт фигню, когда пользователь указал нулевое или отрицательное значение физической величины (вес, длина) — это не так страшно, по крайней мере для большинства проектов. Но если у вас 20 + 20 = 2020 (привет, JS), то это уже ошибка, которая перечёркивает собой всю остальную работу.

      А насчет прокрастинации — может её вообще не существует? Если вам не хочется заниматься какими-то задачами, ну, значит они не достаточно важные и интересные? Значит, то чем вы занимаетесь в данный момент более важно?


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

      А прокрастинация существует, если человек занимается чем-то явно лишним вместо работы. Если этот конкретный час он всё равно не смог бы работать, это уже не прокрастинация, даже если дело с виду бесполезное. Статья о том, что некоторые «бесполезные дела» важнее других.


      1. Ares_ekb
        27.08.2017 13:25

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

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


      1. Ares_ekb
        27.08.2017 15:22

        человек занимается чем-то явно лишним вместо работы
        Почему лишним? Почему человек вообще должен работать? Я считаю, что человек должен творчески и интеллектуально самореализовываться. Если вместо этого он на работе усердно закрывает задачки, заниматься которыми он не хочет, то это преступление против себя. То, что человека тянет на сериальчики — это просто здоровая реакция на осточертевшую работу, которая так надоела, что он готов заняться чем угодно, только не ей.

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


        1. i86com Автор
          27.08.2017 16:24

          Почему лишним? Почему человек вообще должен работать? Я считаю, что человек должен творчески и интеллектуально самореализовываться.


          Я так тоже считал, лет 12 назад, когда учился в школе, жил с родителями и играл в ММО-шки весь день. А когда начал «жить на свои» и кормить не только себя, само пришло понимание «почему человек должен работать». Тут даже не то, чтобы должен, а просто почему так происходит.

          Но вообще, «лишнее», это то, что человек сам определяет таковым.

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


          Зарплата зарплате рознь. Кому-то и 10к — зарплата, а кому-то и 50к — нет.

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


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


  1. cicatrix
    27.08.2017 12:44
    +3

    Прекрасная статья! Вот сижу читаю, вместо того, чтобы кодить. :)


  1. kelevra
    27.08.2017 13:10

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

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

    Последнее ещё и для принятия корпоративных решений очень хорошо подходит.


    1. Ares_ekb
      27.08.2017 13:33

      А ваша личная зарплата как-то зависит от прибыли организации? Я всегда в первую очередь делаю интересные задачи, а унылые откладываю на столько на сколько это возможно и делаю их вполсилы левой ногой. Большая часть этих задач в итоге вообще отменяются за ненадобностью, либо вполне достаточно сделать их тяп-ляп.


      1. kelevra
        27.08.2017 13:50

        От развития организации зависит степень и скорость роста зарплаты. Да, это не мгновенная выгода, более того, она может и не наступить. Но сам для себя я буду знать, что я сделал всё от меня зависящее, чтобы это происходило.


        1. Ares_ekb
          27.08.2017 15:00
          +2

          Зарплата зависит от средней зарплаты на рынке в этом регионе. В одной и той же компании сотрудник в московском офисе будет получать в ~2 раза больше, чем сотрудник из регионального офиса, а в калифорнийском офисе будет получать в ~2 раза больше, чем в московском. Уровень развития организации, усердность этих сотрудников, уровень их знаний и т.п., ну, могут повысить зарплату на 10-20% относительно среднерыночной, но не более того. Рвать ж… у ради развития чужой организации и в надежде на прирост зарплаты в 20% — как по мне сомнительное занятие.

          Жизнь короткая. Если не хочется чего-то делать, то может и не делать?


          1. kelevra
            27.08.2017 15:27

            Статья про удалёнку, мой первый комментарий в ветке тоже. Поэтому всё что вы написали про зарплаты в регионе к вопросу, который обсуждается в статье, вряд ли относится. Кроме того, избавление от прокрастинации и «рвать жопу», на мой взгляд, это очень разные вещи: первое совсем не подразумевает второго.


            1. Ares_ekb
              27.08.2017 15:47

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

              Ощущение прокрастинации говорит о том, что ты не хочешь работать. При этом продолжать заставлять себя работать, мотивируя это интересами компании, стремлением к идеальному коду и т.п. — я это называю «рвать ж… у» )


              1. kelevra
                27.08.2017 15:58

                Предположим, что вы правы. Тогда как определяется зарплата удалёнщика, если у организации много офисов в разных регионах и странах и удалёнщик нанят не каким-то конкретным, а работает со всеми?

                А если организация полностью состоит из удалёнщиков в разных странах и офисов нет вообще? Не нужно рассказывать, что таких не бывает, лично знаю несколько примеров.


                1. Ares_ekb
                  27.08.2017 16:28
                  +1

                  Либо у них несколько подразделений, которые занимаются наймом сотрудников в определенных регионах. И индусам, русским, американцам и т.п. они будут предлагать зарплаты исходя из среднерыночных для этих регионов. Если, скажем, в РФ средняя зарплата ИТшника 50-150 т.р., то какой смысл предлагать им 500 т.р., если достаточно желающих и на меньшие деньги. Либо предлагается некая среднерыночная зарплата по миру, скажем, 500 т.р.

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


        1. HEKOT
          28.08.2017 08:40

          А в нашей организации не зависит.


  1. abstracto
    27.08.2017 13:38
    +3

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


  1. AllexIn
    27.08.2017 13:46

    Мне категорически помог переход на почасовую оплату.
    Прокрастинация преследует, когда есть задача и её надо сделать. И можно откладывать, откладывать и откладывать…
    А в почасовой — у меня нет прямого настроя сделать задачу. Я просто сажусь и делаю. Сделал мало, сделал много — мне всё равно. Вернее всё равно моей психике, т.к. для неё не стоит задача всё разрулить. Для неё стоит задача отработать нужные часы. А разруливание проблем — побочка. Получается просто и эффективно, и прокрастинации нет.


    1. michalemiriti
      28.08.2017 18:42

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


  1. Falstaff
    27.08.2017 14:54
    +3

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

    Вашими бы устами да мёд наворачивать. :) В реальности-то всё это просто идёт в продакшн, да так и повисает никем не учтённым техническим долгом и головной болью для разработчиков. Нет, не оправдываю работу «вполсвиста», просто статья как-то утверждает, что если программист написал ворох костылей, то ему обязательно придётся переписывать. К сожалению, в большинстве случаев не придётся. (Кто это из мэтров, кстати, писал заметку про good enough software?)


  1. harvestnide
    27.08.2017 15:03

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


  1. binarydao
    27.08.2017 15:07
    +2

    написание недостаточно качественного кода это абсолютно пустая трата времени и сил

    Автор просто перфекционист. Я работал в десятке компаний, где код был написан некачественно, на 3-, но т.к. он делал что нужно — компания получала прибыль, а программист, соответственно — зарплату.
    Стремление сделать всё идеально, потому что не идеально не имеет смысла — это перфекционизм. Болезнь, мешающая жизнь. Она не имеет отношения к программированию как таковому, а скорее относится к любой деятельности, где результат может отличаться не только количественно, но и качественно.


    1. i86com Автор
      27.08.2017 15:54

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

      Иногда к коду также есть дополнительные требования — переиспользуемость, понятность, соблюдение стайл-гайдов. Чаще всего этих требований нет.

      Но дело в том, что даже «чтобы ничего не поломать» и «чтобы скомпилилось, не тормозило и в целом работало» — уже требует сосредоточенности. Представлять себе это «минное поле» проекта, вспоминать, где и что может пойти не так.

      Зависит от проекта и задачи, конечно. Ту же валидацию е-мейла можно допилить к полю ввода и не просыпаясь, а вот, например, «добавить новый тип пользователей с ограниченными правами» уже так просто не получится, даже если говнокодить.

      Нужно вспоминать, где в проекте уже есть проверки на тип пользователя; как они себя поведут, если он новый; где вообще есть список типов пользователей, или оно всё в хардкоде; а если в хардкоде, то может пора переписать по-нормальному, ведь на неделе ещё 5 типов добавлять собираются; а может и так оставить, вдруг быстрее будет. Вот с такими задачами и бывает, что человек просто не может заставить себя начать неделями.


      1. binarydao
        27.08.2017 16:17

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


      1. alan008
        28.08.2017 00:49
        +1

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


  1. M_AJ
    27.08.2017 15:21
    +1

    Но это совсем другая специфика, программирование куда чаще требует многочасовой фокусировки, а не минутного озарения.

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

    Так и автор, видимо считает, что работа творческого человека — сидеть и ждать озарения, хотя на самом деле творчество это долгий процесс поиска и выбора идей. Само «озарение» это лишь малая часть работы, часто само оно результат долгого перебора различных идей, и только начало. А дальше следует долгий процесс реализации результатов озарения с периодическим «рефакторингом», кучей набросков и черновиков. Нет, бывают конечно исключения, когда то, что становится в итоге главной работой всей жизни, создается за несколько недель (для музыки иногда даже дней или часов), но это скорее исключения, и подобное и у программистов бывает.


  1. Hellsy22
    27.08.2017 16:21
    +1

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

    Что же до «написания кода» сразу начисто, то от этого веет наивностью предварительной оптимизацией и связанными с ней ошибками. В большом проекте невозможно заранее определить все узкие места и детальность проработки различных блоков. Это не значит, что не нужно пытаться, но поскольку переделывать что-то все равно так или иначе придется, то правило 20-80 мне кажется более удачным — пишите код хорошо и без явных косяков, но не переживайте о его неидеальности. Переделывая старую поговорку: «Джуниор сперва думает, потом пишет; мид сперва пишет, потом думает; сеньер думает и пишет одновременно».


  1. salkat
    27.08.2017 18:42

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


  1. ukt
    27.08.2017 19:18

    Почему преподаватели раз за разом зачитывают одни и те же лекции голосом, когда уже десятки лет существуют технологии аудиозаписи и трансляции? Ответ — человеческая психология.

    Голос — один из способов получения информации, допустим до 20%, визуальное до 80%, что в итоге дает почти 100% донесения информации.
    Преподавателя (тьютора) всегда можно спросить, что не так пошло, книжку (аудио-текст, не важно) не спросишь.

    По остальной статье, по пунктам, как я делаю, может кому понадобится:
    1) Делаю список дел, на листочке и крайний срок выполнения. Заполняю от руки, и вычеркиваю, ставлю дату когда закончилось дело.
    2) Употребляю витамины(курсы): мульти, для глаз, радую вкусняшками.
    3) Задачу дроблю на кусочки, на интерфейсы, классы и пр, а потом каждый по отдельности реализую. И важное замечание, делаю пометки от руки прям блоки рисую, пока на бумаге пазл не сложится — до клавиатуры не дохожу.

    Прокастинирую обычно при след. условиях и/или:
    1) Задача слишком простая
    2) Задача слишком сложная, нет понятия реализации, нет знаний по этой области
    3) На задачу нет ресурсов.

    Первое условие побеждается списком (записано же, надо сделать, сам записал же...)
    Второе условие побеждается декомпозицией, листочек, карандашик, вот это всё
    Третье побеждается планированием, не всегда


    1. rina_volk
      27.08.2017 20:59

      Преподавателя (тьютора) всегда можно спросить, что не так пошло, книжку (аудио-текст, не важно) не спросишь.

      Зато интернет вполне себе спросишь. Для меня лекции всегда были жуткой каторгой, огромная аудитория, половина преподавателей с непоставленными голосами, слушать/понимать некогда — успевать бы записывать. Вот семинары прекрасная практика, особенно когда от группы остается человек 5.


  1. amarao
    27.08.2017 20:41
    +1

    Когда я прокрастинирую, я пишу или рефакторю тесты. Нужно, нудно, улучшает качество кода. Заодно лучший метод вспомнить код и начать его писать.


    1. nikolay_karelin
      27.08.2017 22:52

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


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


    1. ko11ega
      28.08.2017 15:45

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


  1. g0ss
    27.08.2017 21:45

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

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


  1. Francuz2000
    28.08.2017 01:45

    Свой метод борьбы с прокрастинацией я построил на знании своих сильных и слабых сторон.
    1. Дома прокрастинация в несколько раз силнее (в моём случае просто непобедима даже под угрозой смерти)
    2. Я пунктуальный.
    3. Мне легко покинуть дом и поехать в любое место если это было мной заранее запланировано.
    4. Вне дома я могу долго и сосредоточено работать над любой задачей.
    5. Для себя я поставил правило, что если работаю вне дома, то в это время никаких игр и развлечений.

    В итоге чтобы писать код для себя или фриланса я снимаю маленький офис в котором стоит стол и комп.


  1. Psyroom
    30.08.2017 02:29

    Всю статью можно свести к 2м положениям:

    1. Отдавай себе отчёт в том, что ты делаешь
    2. Всегда неси ответственность за все свои решения

    Важно понимать, что решение «прокрастинировать» и не делать какую-то задачу ты принимаешь сам. «Само собой» ничего не делается, и ты сам выбрал смотреть сериал или читать Хабр вместо работы. Если ты об этом помнишь, то твои решения становятся осознанным выбором (вместо неосознанного), и ты принимаешь ответственность за все последствия своего решения (ты и так эту ответственность несёшь, но иногда прячешь голову в песок, надеясь, что волшебным образом ничего не случится, если ты вместо кода посмотришь сериал).
    Таким образом, читая статью, или играя в игру — ты чётко понимаешь, что сознательно не пишешь код, а отвлекаешься. Опять же, это решение, которое принято сознательно, и вполне возможно, что это решение было правильным (проветрить мозги).


  1. evgenis21
    31.08.2017 05:12

    Хм, с разницей в 3 дня написали на одну тему geektimes.ru/post/292489 Значит, актуально. Наше решение тоже должно помочь


    1. BigBeaver
      31.08.2017 13:08
      +1

      Астрологи обьявили неделю прокрастинации.