Федор Борщев

Кручу гайки. Пишу матом о книгах, саморазвитии и об управлении проектами. Настраиваю ин-хаус разработку в стартапах.

Проверь через два дня

Многим программистам (и менеджерам) не хватает простого навыка — проверить через два дня.

  • Сделал кнопку — проверь через два дня, нажимают ли ее вообще? Что видят, когда нажали?
  • Сделал интеграцию — проверь через два дня, сколько пришло данных? Пришли ли вообще?
  • Сделал новое уведомление — проверь логи. Что уходит пользователям? А много вообще ушло?

Проверка через два дня не требует никакого напряжения и предотвращает кучу долга — в проекте не копятся неработающие и невнедренные фичи.

Лучше через два дня самому узнать, что фича не работает, чем через неделю узнать то же самое от пользователей. Или не узнать вообще.

Кто должен проверять через два дня, если задачу делали впятером? Конечно ты.

Плато продуктивности

Обычно уровень работоспособности выглядит так: ∿∿∿∿. Подъёмы чередуются со спадами. На подъёме хорошо заниматься творчеством, на спаде — рутиной: закрывать долги, отвечать на письма, общаться с коллегами. Если на спаде сделать творческую работу, ее скорее всего придётся переделывать — вы проснетесь утром и поймёте, что результат никуда не годен.

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

Программист делает твою (да-да, твою) задачу

Работа с некачественным кодом сильно выматывает — вместо фокуса на цели приходится разбираться, о чем же думал «тот парень» (и тот, кто его подгонял). В таком режиме волна продуктивности превращается в болото: ∿∿—\____. Хочется уволиться и пойти работать машинистом метро.

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

Фавиконка и логотип телеграма

Как жить с тачбаром

Я не знаю ни одного человека, который был бы доволен тачбаром на новых макбуках.

Основная моя претензия к тачбару — зависимость от контекста. Тачбар отвлекает всегда — в бразуере, в редакторе кода, в почте. Особенно злит, когда работаешь с текстом, думаешь о смысле, а у тебя перед глазами мельтешат варианты замены слов или кнопки с ненужными действиями. Я гораздо быстрее нажму хоткей или наберу слово до конца, чем перенесу руки с клавиатуры на тачбар. Хоткеи и набор — действия автоматические. А к тачбару привыкнуть невозможно — он всегда разный.

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

В общем, тачбар — зло. Без которого, однако, не купить новый макбук, только если урезанную версию. Так что, если вы обладатель макбука с тачбаром, почитайте мой рецепт борьбы с ним.

Сделать сразу: отключить зависимость от контекста

Заходим в настройки клавиатуры: Apple → System Preferences → Keyboard, и выбираем в селекторе «Expanded Control Strip»:

Apple → System Preferences → Keyboard

В таком случае вы получаете обычный набор сенсорных клавиш, который всегда перед глазами. И больше ничего не прыгает!

Тачбар, похожий на клавиатуру старых маков

Посерьезнее: избавиться от случайных нажатий

После двух месяцев в попытках привыкнуть не нажимать на верхнюю панель, я начал копать дальше. В первую очередь, я попробовал освободить зоны, в которых ложные нажатия происходили чаще всего. Это делается через ту же панель настроек клавиатуры: Apple → System Preferences → KeyBoard

У меня получилось так:

Слева и справа пустые места — сюда я чаще всего нажимал случайно.

Слева и справа пустые места — сюда я чаще всего нажимал случайно.

Совсем для гиков: извлечь пользу

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

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

Тачбар без сенсорных зон

При нажатии Option появляются элементы управления яркостью и громкостью:

Элементы упрваления громкостью и яркостью (BetterTouchTool)

Клево, что тачбар в роли дополнительного дисплея позволил сэкономить место в трее, там теперь так:

Пустой трей в OS X

BetterTouchTool — типичная гиковская программа с огромными возможностями, но с корявым интерфейсом, так что придется с ней поразбираться. Чтобы отключить тачбар, нужно перейти на вкладу TouchBar и нажать на кнопку слева:

Better Touch Tool — 1

и снять вот эту галочку:

Better Touch Tool — 2

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

Как вывести трек — написано здесь. Если не разберетесь — пишите, дополню статью.

Дисклеймер: лонгрид Вастрика я читал.

Без срочных задач

Во всех своих командах я избавляюсь от срочных задач. Люблю, когда даже в трекере такого флага нет.

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

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

Мы разозли Время и теперь у нас всегда полчаса до дедлайна

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

Вот вам три шага, чтобы победить срочные задачи в вашей команде:

  • Разберитесь с техническими и управленческими долгами. Чаще всего срочные задачи возникают на уровне «я выкатил, а оно упало», и «я выкатил, а через неделю поняли, что нихуя не работает». Чтобы привести долги в порядок, нужна сила воли и пара месяцев. Если вы понимаете, что за два месяца не разберетесь — значит что-то в вашем проекте серьезно не в порядке, нужно все бросать и лечить.
  • Перестаньте оценивать задачи в часах. Если в вашей команде меньше 5 человек — совсем не оценивайте. Если больше, и план на неделю не удается обсудить с каждым лично — попробуйте оценивать днями.
  • Возьмите комфортный интервал планирования, на который вы можете построить четкий план, к примеру 1 неделю. Заложите запас и не трогайте ребят в течение этого интервала.

Критика

Когда я только попал в Студию Лебедева, меня больше всего удивил не музей старья, и даже не кот Филя.

Меня шокировал объем критики. В студии принято поправлять новичков во всем — в письмах, документах, в общении с командой, в разговоре с клиентом. Чтобы понять количество критики, загляните в любой «процесс» — и это только видимая часть замечаний, которые получает дизайнер от арт-директора.

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

Только не кричите, как эти стоковые мужики

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

Критикуйте. Настраивайте жёсткий код-ревью. Делайте системы согласований. Собирайте обратную связь и ещё раз критикуйте.

5 книг про Советский союз

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

Хорошие исторические книги помогают понять, что находится в голове у людей с обеих сторон — у тех, кто делает историю и у тех, за кого она принимает решения.

Так вышло, что в последнее время в мои руки попало целых 5 книг про историю Советского союза:

Окружение Сталина

Биография Молотова, Маленкова, Кагановича, Микояна, Суслова и Ворошилова. Лирики почти нет, только биографии.

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

К суду истории

Книга того же автора, посвященная целиком Сталину.

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

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

Рой Медведев, похоже, глубоко обижен на Советский союз. Однако, судя по книге, это не мешает ему отделять факты от собственных суждений.

Безумный риск

60-е годы, Хрущев и Кеннеди. Прекрасная книга про переговоры и отношения.

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

Отдельная заметка здесь.

Советский союз — последние годы жизни

Полное описание процесса развала распада Советского союза. Самый интересный герой книги — Борис Ельцин. Чувак, который в буквальном смысле не испугался, в итоге принес пользу целой стране, и словил джек-пот лично для себя.

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

Рой Медведев все так же хорош, не добавляет в книгу почти ничего личного. Немного смущают намеки на участие жены Горбачева в политике, но на суть книги это никак не влияет.

Гибель империи

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

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

Технические долги

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

Представь что ты увидел в магазине новый охуенный iMac pro. Можно пойти и накопить 400 тысяч (долго и муторно), а можно достать кредитку и купить прямо сейчас.

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

Технический долг — он как финансовый

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

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

Расплата по долгам

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

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

Книга: Строим нейросеть

Пару лет назад я не видел разницы между нейросетями и искусственным интеллектом. Ну а что — и в голове нейроны, и в нейросетях.

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

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

Ладно, хватит сложностей. Если вы программист, вы и без меня найдете что почитать. А если менеджер — рекомендую книгу Тарика Рашида «Строим нейросеть».

Тарик Рашид — Строим нейросеть

Книга разделена на 3 части — машинное обучение, нейронные сети и Питон. Чтобы понять автора, достаточно оконченной 10 лет назад средней школы — все изложено предельно популярно. Даже Питон знать не нужно — основы расскажут прямо в книге.

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

Еще один способ подписаться на блог

Сейчас мой блог можно почитать через RSS, Фейсбук или через почтовую рассылку.

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