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

fborshev@pm.me / borshev.com

Реклама не продаётся
Download Telegram
Вопрос: как оценивать задачи с непонятной сложностью или новой технологией?

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

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

Если не получается даже определить MVP, попробуйте подумать от обратного. Задайте себе вопрос: сколько максимально недель вы как бизнес готовы потратить на этот проект? Скажем три недели — ок, а пять — кажется уже многовато. Дальше прикидывайте, сколько вы сделаете за этот период — это и будет вашей оценкой.

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

Другие вопросы — #вопрос. Задать свой — fedor@borshev.com
Не только быть, но и казаться

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

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

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

Следите за репутацией — иногда не дела формируют репутацию, а репутация формирует дела.
Почему я не веду базу знаний

Я не питаю иллюзий по поводу базы знаний: трудозатраты, вложенные в накопление информации, ко мне не возвращаются.

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

После этого я отправил весь свой архив знаний в корзину, и ни разу с тех пор не пожалел.

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

Вот, кстати, Всеволод Устинов тоже отказывается от базы знаний.
Вопрос: где найти боевой опыт для начинающего программиста?

Сделайте его себе сами. Просто скопируйте какой-нибудь готовый продукт, к примеру классический hackernews или ленту.ру. Подробнее — посмотрите пост Толи Бурова об этом.

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

Почитайте другие ответы по тегу #вопрос.
Перечитывал канал и задался вопросом — а почему я всё время рассказываю только про хорошее? Если вебинар — то про 100 слайдов, а не про больное горло, 60 недобеганных километров и 3 кг лишнего веса, в которые обошлась подготовка. Если продукт — то про гипотезы-успехи-смузи, а не про фейлы и убыточные направления.

К примеру недавно в ГдеМатериале мы взяли крутого специалиста по контекстной рекламе на направление, которое сами не протестировали. В итоге человек вышел, проработал две недели и нам пришлось с ним расстаться.

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

Ну и чтобы два раза не вставать — расскажите, как относитесь к теме фейлов на канале?

🙏 — давай больше
💩 — нет, хочу как в инстаграме у Ким Кардашьян
Спасибо всем, кто в субботу пришёл на вебинар! На этот раз получилось намного больше интерактива, чем в прошлый. В основном — благодаря вашим глубоким вопросам :-)

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

Ну а если вы не были — покупайте запись. Это столько же пользы, сколько на живом вебинаре, только с возможностью ставить на паузу. Смотрите тизер:
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.