Выполнил план - посылай всех в пизду, или личная эффективность - что это и зачем.

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

По опыту поколений - невозможно продуктивно работать головой более 8 часов в сутки. А чаще - более 6. Ну вот никак нельзя думать, сопоставлять, искать решение и заниматься прочим ментальным онанизмом. Набивать базу данных с накладных можно и 12 часов подряд, или там переписывать тексты. Если кто-то вам говорит про работу 20 часов нонстоп - плюньте этому ребе в литсо это скорее всего означает 4-6 часов думать и 14-16 часов тупить в монитор по разным поводам, какие бы опердени при этом не генерировались.

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

Разделяй и властвуй

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

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

Жемчужина в куче говна

Каким бы УГ не казалось то или иное задание, в этих всех играх разума всегда есть приятный момент - практически любую штуку можно сделать интересной, если посмотреть на неё чуть по-другому. Например, если стоит задача накатывания дельт - то можно попробовать посмотреть на какой-нибудь Liquibase вместо собирания шеллскрипта на коленке. Кому-то кстати может быть интереснее собрать как раз шеллскрипт вместо писания XML для ликвибейза - но суть понятна, надеюсь. Если у вас есть какой-то там говенный юнит-тест - можно прикрутить к нему например параметризацию через scalacheck - как раз можно получить интересные результаты на граничных условиях, про которые вы вообще не думали. Заинтересуйте себя этой работой, посмотрите на неё не как на просто кусок неизбеэжного зла. Think positive.

Жопа опасносте

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

По чайной ложке в час

Лучше сделать 5 мелких задач за день, чем тупить неделю над 1 большой, отложив все те мелкие задачи на потом. Эта штука - пожалуй, одна из самых основных вещей, которые вообще нужно понимать всем и всегда. Для ваших же товарищей и менеджмента важно понимать, что вообще было сделано и куда все движется, а единственным достоверным критерием работы программиста является или код, который он написал и залил в репу, или Fixed/Verified в багтрекере. Если у вас есть 20 задач в трекере и вы точно знаете, что одна из них займет 2 дня - сделайте сначала те, что занимают по 1 часу. Даже если вон та херня на 2 дня - critical/showstopper/etc - один час в данном случае ничего не меняет. А в некоторых случаях одна мелкая правка цвета буквы в логотипе может быть важнее для кастомера, чем вон вся та ракетная техника на актерах, iteratees и монадах в йезоде, что крутится где-то там в жопе проекта на бекенде. Как уже было сказано в одном из прошлых выпусков - менеджмент в расстановке приоритетов может руководствоваться вовсе не тем, что действительно нужно кастомеру - а велением левой пятки любовницы директора.

Машина с откидным верхом

Правильно выбранный wm и хороший редактор исходного кода способен реально увеличить эффективность работы ну просто в разы, что бы там не думали себе товарищи с заявлениями “IDE головного мозга”. Вы же не в конкурсе “кто сможет написать программу в ed и не ебануться” участвуете, а работаете работу - и если редактор может сделать навигацию по коду лучше, чем операционная система с текстовым редактором, расчитанным на 40 пальцев на одной руке - то надо ею и пользоваться. В конце концов, время имеет значение, пацаны вон даже охеренную штуку написали, которая реально помогает в жабодевелопменте, мамой клянус.

SMART

Это то, что позволит понять и охватить вот эту самую задачу, от которой вы только что охуели. Тут главное выдохнуть. Я не буду перечислять что это за херня и зачем, оно клево расписано в педивикии. Общий смысл таков, что намного лучше что-то делать, когда результат виден/осязаем/измерим. То есть когда SQL запрос, который был оптимизирован с помощью напильника и такой-то матери - стал работать вместо 20 секунд - 15 миллисекунд, и страница со статистикой грузится теперь моментально. Это кстати пример задачи на 1 час (докинуть индексов и убрать лишние джойны), результат которой сразу виден как вам, так и заказчику с менеджментом. Если задачу не получается классифицировать по SMART - значит это или метазадача, которую надо разобрать на запчасти, или вы вообще нихуянепоняли. Тут уже надо идти за советом к старшим товарищам или коллегам по цеху.

Делу - время, потехе - час

Если же все заебало вусмерть и не хочется ничего - то здесь тоже есть масса вариантов, как с пользой потратить время. Во-первых, отключить на время работы социальные сети - для разных браузеров тут есть разные штуки, типа Leechblock или StayFocusd, которые сделают “атата” на всякие там пейсбуки, фтентакле и прочие жж. Во-вторых, сменить контекст - например, пойти на projecteuler и попробовать осилить что-то эдакое. Активировать другие нейроны мозга, типа. Или сходить на stackoverflow, помочь страждущим ответом, да и себе найти каких-то новых знаний-умений. В общем - развлекаться в той области, которая связана с работой.

Не ссать и хуярить

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

на этом с самомотивацией вроде все.