kamyshev.code
2.18K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
Несколько месяцев назад я пришел в Самокат делать внутренние продукты. У таких приложений есть несколько специфичных требований. Первое и самое серьезное — они должны быть блейзинг фаст. Поэтому, при планировании нового приложения я сразу заложил время на работу с перфомансом. Самое очевидное решение — уменьшить время загрузки приложения. Так я заменил React на Preact (фреймворк с совместимым API, но меньшего размера). Не все прошло гладко, но результат отличный.

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

- подходить продукту;
- быть простой в освоении или популярной;
- быть поддерживаемой.

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

#softskills #общие_знания
В хорошей команде должно быть много коммуникации. Смотрите:

— Когда нужно закончить?
— Хм... 25 ноября.
— Ок, делаем.

Или:
— Когда нужно закончить?
— Хм... 25 ноября.
— Стой, 25 мы должны закончить разработку или выпустить релиз?
— Да, конечно релиз.

Недавно я оказался чуваком из первого диалога. Услышав дату окончания проекта принял ее за дату завершения разработки. Мне повезло — через неделю в разговоре с QA ошибка вскрылась.

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

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

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

Часто слышу вопрос: «Где лучше работать: в аутсорсе или в продукте?». У меня нет однозначного ответа, но теперь я понимаю — это работа для разных специалистов.

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

#softskills
На скорость работы программиста сильно влияет переключение контекста. То есть примерно так. Если выполнить две задачи последовательно — это займёт 2 дня. А если попытаться делать их параллельно — 3.

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

#процесс #softskills
​​Как правильно ездить в отпуск

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

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

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

#softskills
​​Осознанная меркантильность

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

Тематическая статья — Осознанная меркантильность.

#softskills
Какие софт-скилы нужны

Сейчас популярно мнение, что софт-скилы для разработчика супер-важны. Иногда, они даже важнее технический экспертизы. Есть две проблемы:
1. непонятно, какие скилы нужны;
2. непонятно, как их развивать;

Андрей Смирнов нашел интересный рецепт выбора самых важных навыков и сделал доклад The state of soft skills. Он классный, посмотрите.

#softskills
Джедайские техники

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

#softskills #сделывание
Как пасти котов

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

Ханк Рейнвотер рассказывает о разных типах программистов (очень легко узнать себя 🤓), построении отношений с начальством, мотивации, деньгах. Обо всем, с чем мы сталкиваемся на работе каждый день.

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

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

Было смутное ощущение, что пользоваться этим будет сложно, но кто поймёт этих корпоратов. Задачку на окошко с ошибками взял мой коллега, но вместо окошка он предложил писать ошибки прямо в документ. Это стоило примерно ничего (файл мы все равно перезаписывали для других нужд), но сильно упрощало жизнь пользователям. Им больше не нужно было сравнивать ошибки из интерфейса с данными из документа.

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

#кейс #softskills
Последний месяц читаю много резюме и вот несколько штук, которые заставляют меня сразу скипнуть кандидата или усомниться в адекватности.

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

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

3. Грузчик-продавец-повар среди опыта работы. Не стремно иметь опыт не относящийся к разработке, но я не понимаю, зачем мне читать это, когда я хочу просто фронтендера.

#softskills #как_начать
👆выше я написал, как делать не надо. Сейчас раскрою почему.

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

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

3. Не-релеватный опыт мне кажется излишним указывать в резюме просто потому что это информация ради информации. То есть этот текст не дает мне никакого нового знания. «Ну окей, чувак, ты работал продавцом в Евросети, и что?». Не стоит добавлять что-то в резюме только ради объема.

#softskills #как_начать
Нот май бизнес

Некоторые разработчики панически бояться трогать соседние области. Например, я не раз встречал фронтендеров, которые категорически отказывались писать Node.js скрипты.

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

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

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

#softskills
Недавно читал на Хабре статью чувака, который пришел на работу в какую-то контору, а там все оказались болванами. Такие чуваки у меня всегда вызывают вопросы.

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

Вообще, в нашей довольно сложной области любые абсолютные истины вызывают вопросики. Для меня слишком стронг опинион — признак инженера со слабыми софт-скиллами. Ну, может, я просто пусси ¯\_(ツ)_/¯

#softskills
Люди работают с людьми

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

Посмотрите их, они классные — https://www.youtube.com/c/EvgenyRodionov/videos

#softskills #рост
Сейчас учусь на курсе «Стать тимлидом» и в процессе изучаю много классных материалов по теме.

В среду дочитал книжку «Сначала скажите “нет”» Джима Кэмпа. Я вообще с опаской отношусь к «бизнес»-книгам, но эта прямо зашла. Основная идея — на переговорах нужно не быть мудаком: не давить, быть открытым и честным, давать противнику возможность сказать «нет», думать о проблемах оппонента.

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

#softskills