FEDOR BORSHEV
25.1K subscribers
37 photos
1 video
4 files
677 links
Рассказываю, как руководить программистами

fborshev@pm.me / borshev.com

Реклама не продаётся
Download Telegram
FEDOR BORSHEV pinned «​Спасибо всем, кто в субботу пришёл на вебинар! На этот раз получилось намного больше интерактива, чем в прошлый. В основном — благодаря вашим глубоким вопросам :-) Судя по 40 отзывам, которые вы оставили — вам тоже было полезно. Надеюсь, интерактивный формат…»
Журналы не работают, если их не мониторить

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

Всё потому, что вы сделали журнал, но не настроили мониторинг — не будет же программист после каждого деплоя ходить в датадог и смотреть на графики, правда?

Если хотите, чтобы за метрикой следили — её недостаточно просто снимать. Нужно настроить алёрты, причём такие, которые точно кто-нибудь прочитает.

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

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

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

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

hub — это расширение для командного интерфейса git от гитхаба, позволяет удобно работать с сущностями гитхаба прямо из командной строки.

К примеру, чтобы скачать к себе код из ветки коллеги, больше не нужно выискивать ее название в пулл-реквесте — достаточно просто набрать git checkout <путь к пулл-реквесту>. Запилить новый пулл-реквест можно при помощи git pull-request. Полный список фич доступен в man hub.

Если вы пользуетесь консольным клиентом git, но еще не пользуетесь hub — обязательно поставьте себе.
Зачем нужна удобная инфраструктура

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

Хорошие вещи притягивают. Приятно достать смартфон, открыть сделанный с не меньшей любовью IA Writer и написать интересную заметку в блог.

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

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

Стрим будет тут — http://amp.gs/iFty

Напоминаю, что сегодня пилим фичу в бекенде, который я использую для курсов на pmdaily.ru. Будет много тестов, ООП и рефакторинга — я покажу обходиться без ContentTypes Framework, а так же как выглядят абстрактные классы и фабрики реальной жизни.
А вот и запиленная фича.

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

Вообще это называется «наборы», и мой сайт этого не умел ещё в 14:00. Сейчас 16:30 — и уже умеет. Хотите с такой же скоростью пилить фичи у себя на работе — покупайте мои курсы: деньги вернутся очень быстро.
Вопрос: как развиваться в кровавом энтерпрайзе с легаси

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

Читайте книги по интересным технологиям. Ходите на митапы/конференции. Пробуйте всё, что услышите.

Заведите пет- (или не-пет-) проект. Если есть друзья, не склонные к прокрастинации — возьмите и их.

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

Этот вопрос мне задали на вебинаре о правилах роста, но я его почему-то пропустил, поэтому отвечаю здесь. Задайте свой на fedor@borshev.com
Заработай карму

Когда пришёл в новую команду — не спеши критиковать. Увидел кусок неэффективного кода или кривой деплой — не торопись их чинить.

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

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

Сначала заработай карму, а потом критикуй.
Голосовые сообщения в @selfmailbot

Есть несколько людей, общаться с которыми в силу разных причин получается только в телеграмме. Чтобы быстро превращать сообщения от них в привычные мне письма, я форвардю сообщения в @selfmailbot — опенсорсного бота для GTD-шников, которого я написал пару лет назад.

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

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

Исходники бота

Кстати, если хотите поучаствовать в моих проектах в обмен на жёсткий код-ревью — присылайте ссылку на гитхаб на fedor@borshev.com. У меня всегда есть интересные задачи, которые помогают прокачаться питонистам и фронтендерам.
Рассказал в блоге о своём сетапе разработчика — ноутбуке, IDE (вернее её отсутствии) и немного о работе стоя.

Канал уходит в отпуск до 6 января. Хотите новенького — загляните в мой инстаграм https://www.instagram.com/fedor_borshev/, я там как раз сейчас рассказываю о поездке в Лондон.
Вопрос: я по специальности инженер-программист, делаю прототип нового сервиса, но навыков не хватает. Слышал про PHP+MySQL, но на рынке вроде ценятся специалисты в JS и Python. Посоветуйте, на чём делать?

Не учите технологии — учитесь решать задачи (https://t.me/pmdaily/261)

А если уж речь зашла о выборе первого языка программирования — учите то, где проще всего найти практику. Если все ваши друзья пишут на PHP — учите PHP. Если вас обещали взять стажёром на JS+Python — учите JS+Python.

Задайте свой вопрос на fedor@borshev.com
Как подружить Django и Тильду

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

C Django всё наоборот. На ней клёво делать бекенд, но верстать фронтенд на django-шаблонах в 2020 году — занятие не очень благодарное и крайне медленное.

На стриме в это воскресенье в 14:00 я подробно разберу, как django и тильда работают у меня на pmdaily.ru, и, как обычно, прямо в онлайне запилю пару фич.

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

Кстати, до 9 января можно неплохо сэкономить на покупке записи, если купить одновременно ещё и мастер-класс по TDD.
Меняйте рабочее место хотя бы раз в день

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

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

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

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

Этого не будет. Если такие ребята где-то и существуют, то странно, что вы нанимаете их, а не они — вас.

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

Ваша цель в первый месяц — проверить эти ожидания, больше ничего. Не доверяйте важных проектов, не отдавайте много ресурсов, не отпускайте далеко: просто проверяйте состоятельность.
Начинаем стрим в 14:00!

В прямом эфире расскажу, как Django интегрирована с Tilda у меня на pmdaily.ru, и как повторить это у себя. Потом, как обычно, попишем код. Будет даже немного jQuery, кто не знает — это такой дедовский способ манипулировать DOM, его юзали когда реакт ещё не изобрели.

https://youtu.be/zxO4gxkp7LI
Почему лучше разделить фронтенд и бэкенд

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

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

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

Возможно вам поможет принцип «show, not tell»: вместо того, чтобы объяснять свою ценность на словах — докажите её. Начните закрывать свои таски быстрее. Если не получается на работе — потратьте свободное время на свой проект (там же заодно и хард-скиллы прокачаете), а потом покажите руководителю.

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

Задайте свой вопрос на fedor@borshev.com
Правильная обратная связь

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

— Федя, я тут разобрал проект, который ты сделал. Мне очень понравилось, как быстро вы его запустили: подключили стороннюю команду, не тянули с согласованиями — буквально за три дня. Немного смущает, что мобильная версия не работает на старых айфонах, но вы это наверное поправите. А иллюстрации — вообще огонь!

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

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

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

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

Если работаете в распределённой команде — пользуйтесь видео, это прикольно и полезно.