Saturday Night Hack – Telegram
Saturday Night Hack
1.83K subscribers
60 links
Субъективно про продуктивность и IT

Автор: @alexsubbotin, Software Engineer в Raycast, ex. CTO Appbooster.
Download Telegram
Лайфхак про планирование

Прочитал про него в «Джедайских техниках». Если задача постоянно переходит на следующий день/спринт/квартал – поменяй её формулировку. Из-за эффекта семантического насыщения ты со временем уделяешь ей меньше внимания (а иногда и хуже понимаешь, что же там нужно сделать)

Получается итеративная работа над формулировкой задачи, а чем понятнее формулировка – тем больше шанс выполнения.
Слова-паразиты, часть 3

А давайте сделаем...!

Сколько раз в неделю вы слышите эту фразу в своей команде? А как часто говорите её? А какая конверсия из произнесения фразы в конечный результат? Подозреваю, что не очень высокая.

Эта фраза вызывает искажение: мы обсудили и произнесли вслух какое-то решение или идею, теперь она точно будет сделана! Но кто именно будет этим заниматься? И когда? А она важнее сотни других вещей или нет?

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

Как повысить конверсию?

– Придумайте простой первый шаг. По каким бы критериям вы не приоритезировали задачи и идеи в команде, всё равно первыми будут сделаны понятные
– Решите, кто именно это сделает. Или проявите инициативу и явно выдвините свою кандидатуру. Это ещё и может послужить примером в будущем.
– Зафиксируйте идею/задачу в мессенджер/таск-менеджер. Даже если задача не будет сделана сразу – она не потеряется
– Иначе – не ожидайте результата. Ведь завышенные ожидания ведут к разочарованиям и выгораниям.
Процесс разработки – это продукт

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

– Двигайтесь итерациями. Не старайтесь сразу написать идеальный код и внедрить идеальные процессы, решить все проблемы
– Продумайте jobs to be done. Какие JTBD у вашей команды? Быстро выкатывать изменения на продакшен? Легко и просто тестировать изменения? Мониторить изменения на продакшене? А помогает ли это делать ваш продукт?
– UX должен решать проблемы. Для UX в коде/тулинге даже есть отдельный термин – Developer Experience / DX. Насколько легко и удобно пользоваться вашим процессом? Всё ли легко найти? А кодом? Проста ли навигация? Нет ли запутанных формулировок?
– Что по онбордингу? Intercom говорит, что онбординг должен вести пользователя до тех пор, пока он не получит value вашего продукта. Легко ли новичку запустить ваш проект и зарелизить своё первое изменение на прод в первый рабочий день?
– Следите за ключевыми метриками. Чтобы понять, улучшается или ухудшается ваш продукт нужно выделить ключевые метрики. Какие они для вас? Количество релизов в день? Строчки кода? Размер бандла на фронтенде? Скорость прогона тестов в CI?

Если взглянуть шире, то не только код или процесс, всё – продукт. Про это я немного поразмышлял на нашей внутренней конференции
Проще = лучше

Наверняка, у каждого в школе или универе были преподаватели-антиподы. Первый был аспирант, объяснял «ковыряние в носу» с помощью сложных терминов, потом самоутверждался на экзаменах, унижая студентов, требуя заученных формулировок, вместо понимания. А в соседней аудитории кто-то весело и легко рассказывал про квантовую неопределённость, приводя в пример свою бабулю, которая смотрит Санта-Барбару. Или не смотрит. Какой предмет лучше усваивался? Уверен, что тот, который подавался простым и понятным языком.

В разработке есть принцип KISS – Keep it simple, stupid. Код нужно писать максимально просто и не усложнять без надобности. Чем проще код – тем проще его поддерживать, понимать, дописывать, изменять, переносить. А значит разработчики тратят меньше сил и нервов, а бизнес решает задачи быстрее и дешевле.

Но разработчику сложно написать простой код, если до него эффективный менеджер вместе с бизнес-аналитиком придумали гениальную гипотезу, усложняющую вообще всё, дизайнер наконец попробовал все самые модные тренды с дриббла, а тим-лид предложил заодно переписать всё на rust и наконец задеплоить в k8s.

Делать просто должен не разработчик, это командная работа. Старайтесь держать в уме этот принцип каждый раз, когда что-то создаёте – пишете код, документацию, задачу, пост, проектируете систему или рисуете дизайн. Чем проще – тем лучше. Не усложняйте. Не пытайтесь сразу сделать идеально. Сначала сделайте, а потом сделайте лучше. А когда сделаете несколько итераций – задумайтесь, а не усложнили ли вы всё? Парадоксально, но делать просто – сложно.

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

И помните, если у вас получается что-то очень сложное – вы делаете что-то не так.

Почитать по теме:

– Лонгрид про Overthinking от автора канал @uxlive. ⚠️ подача зайдёт не всем ⚠️
– Принцип Keep it simple, stupid
– Принцип Бритва Оккама
Чем хуже, тем лучше
Колхозная доктрина - KISS для разработчиков простым языком

P.S. Будет круто, если вы мне посоветуете книги/посты/видео по теме – пишите в комментарии

P.P.S. Давно не было цитат из пабликов в вк, исправляюсь: «Делай просто, насколько возможно, но не проще этого» А. Эйнштейн
Слова-паразиты, часть 4

Наверное, я скажу очевидную вещь...

Как давно вы хотели кому-то что-то сказать, но передумали, потому что это очевидно? Сколько фраз, сообщений, твитов, постов, докладов, анонсов в командах или компании вы не сделали из-за их очевидности?

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

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

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

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

– Линус Торвальдс начал работу над git 3 апреля 2005 и уже 4 дня спустя он использовал git для работы над git чтобы коммитить в git, пока он создаёт git. А 20 апреля вышел первый релиз linux на git
– Кен Томпсон написал первую версию unix за 3 недели
– От решения полететь на луну до полёта Аполлон 8 прошло чуть больше 4 месяцев
– Брендан Эйх сделал первую версию JavaScript за N̶a̶N̶ 10 дней

Сохраняйте себе ссылку и скидывайте вашей команде разработки в следующий раз, когда они оценят очередную фичу в месяц
​​Слова-паразиты, часть 5

Есть 5 минут?..

Знакомо? Сколько раз вы реально уложились? Смысл этой фразы всегда отличается от содержания – все понимают, что это не 5 минут, но продолжают использовать именно такую формулировку. Ведь так в голове есть оправдание – мы выдернули человека всего на чуть-чуть (даже если по факту разговаривали час)! Многие не умеют планировать время, даже своё.

– Цените чужое время. Тема на полчаса? Так и говорите, но планируйте заранее
– Не знаете, сколько нужно запланировать? Поставьте дедлайн. Не успеваете? Разбейте общение – у вас будет больше информации для планирования следующей встречи
– Цените своё время. Кто-то планирует с вами разговор на 5 минут? Поставьте таймер – это поможет держать фокус на главном. Не успели? Возможно, в следующий раз кто-то будет лучше ценить ваше время
– Говорите нет. Делаете что-то в потоке и вас хотят выдернуть? Пусть подождут. Минут 5.
– Не доверяйте людям, у которых всегда есть 5 минут.
Первый шаг автоматизации – сделать это руками

Я фанат автоматизации всего и вся, но каждый раз, когда кто-то предлагает что-то запрограммировать, я спрашиваю – а сколько времени это занимает у человека? Часто оказывается, что проблема не во времени/сложности/частоте, а в том, что большинство людей хочет развивать продукты, повышать метрики и выполнять KPI, а рутинные задачи – не их уровень. Единственным решением они видят делегирование этих задач бездушной машине, которая не хочет карьерного роста и не будет говорить, что это не её обязанности.

Когда-то я подсмотрел у Леши идею создания специального отдела, в который кто угодно может делегировать простые задачи. Идея проста: вы нанимаете людей, которые занимаются только простыми/однообразными задачами, но делают это постоянно, тем самым разгружая остальные отделы. В итоге задачи делаются быстрее, стоят – дешевле. И часто экономят не только время менеджеров, но и разработчиков, т.к. отпадает нужда в автоматизации.

Какие задачи мы передаём в отдел?

– Сбор информации – ходить по сайтам, «парсить» тексты, копипасить в гугл-табличку или сохранять картинки на гугл-драйв
– Модерация (текстов, фотографий)
– Обработка данных, отчёты
– Простейшая работа с графикой
– Бонус 1: вы можете поставить задачу, которую сложно формализовать. Например «найди классные фотки», «выбери 20 самых интересных текстов»
– Бонус 2: этот человек обойдёт любую капчу!

В итоге не возникает вопросов «Кто бы мог заняться этой задачей?...» т.к. всегда есть выделенные люди. Задачи быстро берутся в работу, а их выполнение стоит дешевле, чем если бы ими занимались руководители.

В общем, всем рекомендую.
Парадокс покоя

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

– Никто не спорит и все согласны со всеми принимаемыми решениями
– Все уверены, что выстроены идеальные процессы и коммуникация
– Никто не сомневается в компетентности других членов команды, в качестве их работы
– Команда годами использует одни и те же инструменты и практики

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

– Программист скажет «так сделать нельзя», инженер возьмёт паузу и придёт либо с решением, либо с альтернативой
– Программист скажет «я там спросил, а мне не ответили...», «пул-реквест на код-ревью/QA-завис...», «у меня доступов не было...», а инженер доведёт всё до продакшена
– Программист скажет «у меня кончились задачки, чем заняться?», инженер – «задачки кончились, но у меня есть пара сотен предложений. Займусь ими?»
– Программист делает как попросили, инженер – лучше
– Программист начнёт делать, когда поймёт, что от него хотят. Инженер - когда поймёт, зачем

Нанимайте инженеров!
Как прокачать руководителя?

Фидбек между руководителем и подчинённым работает в обе стороны. Почему-то об этом часто забывают сами подчинённые и воспринимают общение с руководителем, только как получение фидбека. Но (сюрприз!) руководители – просто люди. У них может не хватать опыта, могут быть проблемы с тайм-менеджментом, они могут не знать, о чём вы хотите поговорить, у них у самих может быть не лучший руководитель. А ещё они сами могут всего этого не замечать. Так что если вы не получаете от руководителя того, что ожидаете – возьмите инициативу в свои руки, прежде чем искать новую работу. В английском для этого есть отличное выражение – manage your manager.

Примеры распространённых ситуаций:

– Получаете только негативный фидбек? Соберите факты и обсудите. Вроде «мне кажется, что за последние 3 месяца я хорошо сделал X и Y, но слышал только критику за Z. Почему?»
– Руководитель становится бутылочным горлышком и это замедляет вас? Намекните, что вы могли бы быстрее и лучше делать свою работу, если бы он делегировал полномочия
– Руководитель назначает встречи в стиле «окей, давай вернёмся к этому вопросу через месяц» и забывает о них? Добавляйте в календарь и приглашайте его. Либо просто напоминайте – «Привет! Месяц прошел – обсудим?»
– Не знаете, как зарабатывать больше? Спросите руководителя. Подумайте вместе, что вы можете делать и обсудите дату подведения промежуточных итогов
– Вам обычно не хочется с ним разговаривать? Скорее всего вам не повезло и вы работаете с руководителем, который не заряжает вас энергией, а забирает её. Попробуйте решать вопросы письменно – может так будет проще.

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

Ну я же говорил!

У всех хотя бы иногда проскакивает эта фраза, хоть и не все озвучивают её вслух. И именно когда она попадает в мозг – нужно себя поймать и разобраться, в чём же первопричина? В 80% случаев произошло что-то, что не идёт на пользу команде. Например:

– Вы закинули идею, возможно в формате «а давайте...», но не захотели её продвигать, чтобы умышленно избежать ответственности за возможные последствия. Возможно ожидая, что кто-то её услышит и «возьмёт в работу» вместо вас, но этого не произошло и всем от этого стало хуже.
– Недостаточно аргументов. Возможно, вы уверены что ваше предложение было очевидно остальным (несмотря на то, что их позиция для вас не очевидна) и из-за недостаточной аргументации, вашего неумения «продавать» свои идеи пострадала вся команда.
– Ваше эго для вас важнее общих успехов ¯\_(ツ)_/¯. Если из 10 принятых чужих решений лишь одно не сработает вы наверняка скажете заветную фразу, а про остальные 9 и не вспомните
– Вы просто любите покой и не хотите с кем-то спорить.
– Из нескольких альтернатив выбрали не ваше решение, хоть вы и аргументировали всё и были готовы взять ответственность. Можете даже не напоминать – в следующий раз все и так вспомнят этот случай и прислушаются к вам.

Узнали себя? Ну я же говорил!
​​Как давать фидбек?

Нет-нет, я тут не буду говорить про схемы бутерброда, ненасильственного общения или stop–start-continue. Тут о другом.

Часто замечаю 2 крайности при фидбеке о чужой работе:

1. Люди смотрят на чужую работу (код, картинки, тексты) и никак её не комментируют, если их явно об этом не спросить.

При такой схеме в команде отсутствует культура обмена знаниями и мнениями. «Ну работает и работает» и не важно, что это можно сделать проще/быстрее/лучше, часто даже не потратив больше времени.

2. Чаще всего бывает в схеме лид/подчинённый: одни комментируют всё подряд, выражая своё мнение о каждой мелочи, после чего другие исправляют всё и делают именно так, как сказали.

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

Решение – фидбек в стиле ревью на гитхабе, где ты можешь добавить любые комментарии, а в итоге необходимо явно обозначить, как воспринимать твой фидбек – это просто комментарий, апрув работы или просьба переделать?

Итого, 5 простых правил для продуктивного фидбека (и не важно, кто ты – новичок в стартапе или CEO в большой компании):

1. Задавай вопросы. Так будешь лучше понимать, что происходит, почему именно так и вообще, как мыслят другие
2. Предлагай идеи, желательно как-то аргументируя (даже если ты не считаешь себя экспертом в вопросе). Не все знают, что знаешь ты и кто-то точно чему-то научится.
3. Пиши о возможных проблемах и альтернативных путях решения
4. Хвали коллег, когда они делают хорошо!
5. И главное – явно сообщи, что ты хочешь? Как относиться к твоему фидбеку – это просто комментарий, просьба переделать или твоё мнение, что всё ок и с этим можно продолжать?

Ну и примеры:

– «̶Д̶а̶в̶а̶й̶ ̶п̶о̶ ̶н̶о̶в̶о̶й̶,̶ ̶М̶и̶ш̶а̶,̶ ̶в̶с̶е̶ ̶х̶е̶р̶н̶я̶!̶»̶ ̶«Давай поправим пункты 3-5 и будет 👍, а 6-7 на твоё усмотрение, не хочется время терять»
– «👀 Накидал комментов, на случай если интересно моё мнение»
– «🔫 Пушка, можно релизить!»
Видео про культуру в Spotify – это, наверное, лучшее куда вы можете потратить свободные 25 минут сегодня (и как это раньше прошло мимо меня?)

Основные тезисы:

- Команды должны быть loosely coupled, tighly aligned. Ставьте понятные цели для компании, чтобы команды шли в одном направлении, при этом делая команды максимально автономными
– No one will tell you what to do. Конкретные действия должны определяться внутри команд, но основываться на глобальных целях
– «If you need to know exactly who is making decisions you are in the wrong place». Избегайте систем, где решения принимаются единолично
– Чем реже релизы – тем сложнее релизить. И наоборот. Чаще делайте релизы, прячьте неготовый функционал за feature toggles, упрощайте процесс релиза.
– Каждая команда отвечает за свои системы и релизит их независимо от других команд
– Fail fast → learn fast → improve fast
– failure recovery важнее, чем failure avoidance
– «If everything is under control, you are going too slow»
- Innovation важнее predictability. 100% predictability = 0% innovation
– Big project = big risk. Делите большие проекты на мелкие шаги, выкатывайте MVP

Оно же текстом: часть 1, часть 2.
​​Про поведение

Нашел простую модель, объясняющую человеческое поведение. Fogg Behavior Model говорит, что поведение зависит от мотивации, сложности этого действия и побуждений:

Behavior = motivation × ability × prompt

Как это применять в командах? Так же как и в продуктах/дизайне: если хотите, чтобы люди что-то делали, то

Упрощайте. Чем проще и понятнее взаимодействие, инструменты, процессы – тем проще их использовать. Плохо: деплой в особую фазу меркурия специально выбранным человеком с помощью сложных ритуалов. Хорошо: деплой одним нажатием на кнопку 🆗.
Мотивируйте. Мало рассказать, как надо делать, важно показать пользу для конкретного человека. Плохо: «Ну показывай, что сделал». Хорошо: «Чем раньше ты поделишься наработками – тем быстрее получишь фидбек и в случае ошибок или неверного решения не обидно будет срезать часть работы 🔪»
Подталкивайте. Даже если люди замотивированы что-то сделать и у них есть все возможности – им нужен call to action. Плохо: «Стыдно этого не знать...», хорошо: «Почитай <название книги> – там классно рассказывается про базовые принципы, тебе в будущем это поможет быстрее принимать решения 💪»

Почитать:

https://suebehaviouraldesign.com/bj-fogg-model/
https://behaviormodel.org
​​Про хлам

Исторически сложилось, что движение вперёд – это всегда накопление. Ты копишь опыт, деньги, вещи, людей. Аналогично и в разработке: команда растёт, продукт обрастает новыми фичами, процессов и договорённостей всё больше, менеджерить всё это становится всё сложнее. И чаще всего эти проблемы решаются двумя путями: делать и держать в голове больше, либо нанимать людей, которые будут помогать дальше создавать новое. Есть третий, непопулярный, но иногда наиболее эффективный путь: избавляться от чего-то старого и ненужного.

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

От чего, например, можно избавиться и упростить жизнь себе и окружающим?

От фич. Зачем добавили новую фичу в продукт? Принесла ли она пользу? Если нет – то может она и не нужна? Или, возможно, с её помощью вы решили те же проблемы, что пытались решить другими фичами и теперь можно удалить именно их и оставить только новую? Это можно сделать ритуалом, например выделять несколько часов каждую пятницу на поиск чего-то ненужного.
От процессов. Ведь наверняка у вас есть какое-то соглашение принятое несколько лет назад, которое все делают по привычке, не задаваясь вопросом «зачем мы это делаем?». Докапайтесь до первопричин, например используя 5 whys и избавьтесь от неактуальных процессов.
От кода. В проекте остался код, который уже не используется? Удаляйте. Будет нужен – вернёте с помощью гита (подсказка: минимум 80% удалённого кода окажутся ненужными). У вас же не используют количество строк кода, как метрику продуктивности?
От чатов. Можно бороться с fomo и выходить из чатов, где не нужно постоянное присутствие.
От сервисов/систем/софта. Иногда, чтобы система работала стабильнее её нужно упростить, а не добавлять новые элементы.

Хорошая практика (которой сложно придерживаться) – при создании чего-то нового избавляться от чего-то старого. Заводите новый регулярный митинг? Отмените один из старых. Добавляете новый код? Удалите немного старого.

В общем, как говорит каждый второй мотиватор – «выкидывайте хлам, чтобы освободить место для чего-то нового».
Про слак, часть 1: личка

В офисе вы довольно редко начинаете обсуждение с фразы «пойдём в переговорку?», проще на месте всё обсудить. Ещё есть бонус – кто-то третий, сидящий рядом может услышать разговор и вклиниться, т.к. он обладает доп. информацией, которой нет у вас двоих. Но почему-то в чатах многие всё ещё предпочитают общение именно в личке. Одни сначала решают «ой, ну зачем я буду людей отвлекать?», а другие потом не понимают, как принимаются те или иные решения.

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

Когда я начинал в разработке, я был уверен, что топовых специалистов отличает то, что они делают всё максимально качественно, со знанием дела, в поставленные им сроки и без ошибок. И именно такие работают в далёких яндексах, фейсбуках или стартапах из кремниевой долины. Но время шло, я работал в классных компаниях с высокооплачиваемыми разработчиками, менеджерами и дизайнерами. Работал в аутсорсе на США, стартапах на инвестициях, европейских энтерпрайзах и нигде не встречал их, которых когда-то рисовал у себя в голове. И тогда мне пришло 2 инсайта:

1. Все косячат
2. Это нормально

Иногда важнее не то, что и как вы делаете, а что от вас ожидают люди вокруг. Управление этими ожиданиями – это ваша задача. Это тот самый скилл, который отличает одного командного игрока, работой которого все всегда довольны от другого, у которого «всё не так». Поэтому

– Нормально совершать ошибки, не нормально не говорить о них. К компаниям, которые открыто говорят о своих сбоях обычно больше доверия, чем к тем, которые молча падают и потом просто говорят клиентам, что «у нас был сбой и мы всё пофиксили!». Можно даже написать увлекательный рассказ про вашу поломку, как гитлаб, например. Так же и в команде: если что-то «сломалось» в вашей работе – расскажите, что именно произошло, как вы всё «починили» и что сделали, чтобы это не повторялось – команда будет вам больше доверять.
– Нормально не успеть что-то в срок, не нормально не предупреждать об этом. Ведь заказчик (даже если он внутренний) ожидает результат и возможно строит дальнейшие планы исходя из этих сроков. И, кстати, сделать больше/лучше оговорённого – это приятный бонус, но не причина промолчать.
– Нормально делать что-то неидеально. Сделали версию приложения с ограничениями? Расскажите о них тому, кто будет его тестировать. Не стали писать тесты к коду, потому что нужно срочно выкатить фикс? Пусть другие разработчики знают об этом и не думают, что вы забыли. Половина успешных проектов начинались с наколеночной версии
– Нормально чего-то не знать или не уметь. И нормально идти и разбираться, пробовать что-то новое и внедрять это, а не ждать, пока найдётся «эксперт».
– Но ненормально нарушать сроки регулярно, повторять ошибки и не учиться тому, что нужно людям вокруг.

Одна из проблем с управлением ожиданиями – повсеместный синдром самозванца в IT. Ведь стыдно признаваться людям вокруг в своих ошибках и рассказывать, что ты чего-то не знаешь, когда для тебя самого это дискомфорт. Хорошее упражнение – просто начать публично говорить о том, чего вы не знаете. Смотрите, например, как делает Никита
+5% к качеству

Вам когда нибудь приходило пуш-уведомление от больших серьезных приложений с текстом «hey» или «test»? Мне за последние несколько лет раз 5 точно.

А всё потому, что кто-то при тестировании поленился подумать, а что же на самом деле будут слать пользователям? Чтобы не попадать в такие ситуации, есть простое правило – всегда использовать реальные данные. Оно работает для всех: продакты, дизайнеры, разработчики, QA... И дальше – продажники, маркетологи, контент-менеджеры и даже HR.

– Рассылаете тестовую email-рассылку или пуш? Даже если отправляете его только себе – шлите текст, приближенный к реальности. «Хехей, у нас распродажа!». Даже если не будет распродажи, а пуш случайно уйдёт на всю базу – большая часть ничего и не заметит.
– Рисуете экран с информацией пользователя? Не придумывайте классные, идеальные данные – попросите настоящие из базы и изобразите их. Так и у разработчика будет меньше вопросов про «некрасивые» кейсы – они уже будут проиллюстрированы.
– Покрываете код юнит-тестами? Даже тут есть смысл использовать настоящие данные: если это имя – то должно быть имя, а не «A B» – это ещё один рубеж для отлова багов.
– Не хватает текста для какого-то экрана или письма? На время ожидания «настоящего» можно придумать его самому, вместо генерации lorem ipsum – мозг переключится на необычную для него задачу, это полезно. А если вдруг «настоящий» текст так никто и не напишет – это не будет блокером для быстрого релиза.
– Пишете какую-то инструкцию в слак/ноушен для коллег? Рассказываете про задачи соискателю? Рассказываете про продукт потенциальному клиенту? Используйте не стандартные, абстрактные примеры и кейсы, а реальные и близкие именно ему – он оценит.

Да, такой подход требует больше времени (совсем не много), но повышает качество.
– Чтобы правильно сделать X нужно бесконечное количество времени. Поэтому следует делать X, в котором что-то не правильно.
– Создание X – итеративный процесс. Необходимое количество итераций всегда на одну больше, чем вы уже сделали.
– Ваши лучшие наработки в создании X окажутся бесполезными. Научитесь жить с разочарованием.
– Недостаток информации – не причина откладывать анализ решения.
– Не бывает одного правильного решения. Зато бывает много неправильных.
– Плохое решение с хорошей презентацией обречено в конечном итоге. Хорошее решение с плохой презентацией обречено сразу.
– Ты не можешь улучшить то, что ещё не работает.
– Всегда нет времени сделать хорошо, но чтобы потом переделывать – время всегда находится.

👆 Это законы Акина, а X – это космические системы. Ничего не напоминает?

P.S. их там 44, советую прочитать все.
P.P.S. Изначально я на них наткнулся у Самата – подписывайтесь на него
Как правильно думать, чтобы выгорать?

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

1. «Мне кто-то написал - нужно сразу ответить». Невозможно удерживать фокус, постоянно переключаясь в мессенджеры.
Решение: отключить уведомления и читать чаты раз в полчаса/час, вместо постоянного онлайна.
Результат: узнал, что много вопросов могут решиться без меня до того, как я успею ответить.

2. «Мне предлагают что-то обсудить. В календаре пусто, значит я не занят – тогда пойдём!». В какой-то момент для меня любая встреча, даже на 5 минут и вне зависимости от повестки стала важнее моих планов. Но ведь это не всегда так?
Решение: блокировать в календаре время под большие важные дела, а не только под встречи.
Результат: не стыдно отказать/перенести встречу на другое время, ведь ты занят и календарь это подтвержает.

3. «У меня много дел – нужно заниматься всем сразу, а то ничего не успею». В итоге всё равно ничего не успеваю, а отсуствие результатов демотивирует.
Решение: использовать принцип ohio – only hold it once и беря задачу доводить её до какой-то точки, выгружать из головы и радоваться результату.
Результат: больше задач доводятся до конца, а работается спокойнее.

4. «Меня попросили что-то сделать. Это займёт всего 10 минут – сделаю сразу». Когда я был разработчиком и меня просили оценить задачу – я называл срок и оооочень часто в него не укладывался. А теперь не укладываюсь в сроки, которые оцениваю для себя сам.
Решение: не верить себе и свою же оценку умножать на π (есть и чуть более сложные формулы – поищите свою).
Результат: если кажется, что задачу делать 10 минут, то я за нее не берусь сразу, т.к. велика вероятность, что она займёт 31.4. Другое дело задачки на 2 минуты!

5. «Вот всё доделаю – потом отдохну». 0 раз я доделал всё – всегда находится что-то ещё.
Решение: планировать и отдых тоже, а не только дела. Можно даже в календаре.
Результат: пока плохо получается 🙂

В каких мыслях заметили себя?