Rose debug info
---------------

Блог Михаила Озорнина

Не погружать собеседника в лишние подробности

Пишу еще про один заскок.

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

— Пойдем в бар?
— Мне доктор запретил пить алкоголь, пока я принимаю лекарства.

— Можем завтра созвониться в 12?
— Не могу, мне кота везти на операцию.

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

Зачем? Что мне с этим делать? Думать про доктора и потенциальный диагноз? Переживать за кота? Вспоминать как помочь (и нужно ли) при панической атаке?

Мне кажется, все перечисленные ниже причины нормальные, и вежливо не уговаривать, не уточнять подробности и тем более не брать на слабо.

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

У меня есть варианты причин почему люди говорят так, но я же не психотерапевт, поэтому помолчу.

Подписаться на блог…

Ссылка на новой строке

Заметил, что ставлю ссылку отдельно от текста.

Не так:
Посмотри, норм ли так http://mikeozornin.ru/blog/all/how-to-download-screens-from-zeplin-and-figma/ ?

А так:
Посмотри, норм ли так?
http://mikeozornin.ru/blog/all/how-to-download-screens-from-zeplin-and-figma/

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

Подписаться на блог…

Шаблон верстки эл. письма

Выкладываю несколько шаблонов верстки эл. писем, которые помогут сверстать аккуратное, красивое, адаптивное эл. письмо без знаний html и css

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

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

Слева — человеческая, справа что будет для почтовых программ:

Фреймворков по сути два:

Мне как-то надо было сверстать пару писем. Я глянул MJML и разобрался буквально за пару минут. MJML простой, понятный, мой шаблон доделывали люди, совсем не знакомые с HTML и справлялись. Foundation скорее всего тоже норм, но я не пробовал.

Выкладываю скопившиеся у меня шаблоны писем, вдруг кому пригодится:

https://github.com/mikeozornin/email-skeleton

Шаблон 1: простое аккуратное письмо

github.com/mikeozornin/email-skeleton/blob/master/src/1 simple.mjml

Превью на десктопе:

Превью на мобильном:

Шаблон 2: более сложная верстка

github.com/mikeozornin/email-skeleton/blob/master/src/2 release notes.mjml

Превью на десктопе:

Превью на мобильном:

Шаблон 2: более сложная верстка

github.com/mikeozornin/email-skeleton/blob/master/src/3 tasks.mjml
Это письмо сверстал один из наших техрайтеров, разобрался и сделал. С меня были лишь небольшие улучшения.

Превью на десктопе:

Превью на мобильном:

Как пользоваться

Ещё раз где скачать: https://github.com/mikeozornin/email-skeleton

Сначала отредактируйте шаблон письма, используя онлайн-редактор (mjml.io/try-it-live) или программу на десктопе (рекомендую этот способ). Если вам удобнее VS Code или Sublime Text, то есть плагины и для них.

Сконвертируйте в html с помощью инструментов MJML. Это можно сделать и на сайте, и в клиенте MJML. Если нужно встроиться в CI, то у MJML есть рантайм на ноде.

Готовый html разметьте своими данными и прикрутите к скрипту.

Поддержки шаблонов нет, но если совсем никак, пишите: mike.ozornin@gmail.com

Подписаться на блог…

Истории в Тинькофф-банке

Переношу твиттер-тред в блог, чтобы не пропало и гуглилось. Отсюда: https://twitter.com/mikeozornin/status/1423199411065208834

Привет, Леша! Раз попросили, выскажусь. Написать все это внутри приложения я не могу, там 140 символом ограничения.

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

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

Если добавить к историям рекламные баннеры-врезки, то весь экран будет забит чем-то бесполезным.

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

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

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

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

У меня вообще никогда нет цели что-то почитать в приложении Тинькофф. Для почитать у меня есть Books, Reeder, Pocket и Tweetbot. Почитать в приложении банка это как чайник, читающий вслух ленту фейсбука. А что, удобно: и кофе пьешь, и новости слушаешь.

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

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

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

Впрочем, я пошутил, включать ИИ не надо, у нас уже есть Яндекс-дзен, от которого непросто избавиться. Второй не нужен.

Истории с самого начала выглядят как попытка не проблемы, существующие у меня, а повысить свои метрики: дочитываемость Т———Ж, вовлечение, время в приложении или что-то еще.

Я как
продакт-менеджер,

Хочу
получить премию по выполнению KPI,

Поэтому я
вставлю истории в банковское приложение.

Подписаться на блог…

Пиарю телеграм-каналы

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

https://t.me/meow_design
Сергей Николаев (@kefiijrw)

https://t.me/anatoly_burov_channel
Анатолий Буров (@anatoly_rr)

https://t.me/priunil
Ян Хацкевич

https://t.me/likelikelikelikelike
Женя Арутюнов

https://t.me/sergeykashin
Сергей Кашин (@sergeykashin)

https://t.me/nickmitinsays
Коля Митин

https://t.me/che_kuda
Марк Родионов

https://t.me/krz42
Александр Кароза (@Karoza42)

https://t.me/nevyvovzhuh
Надя Цветкова (@hellafuckingood)

Какие небольшие интересные блоги вы читаете? Есть что посоветовать?

Подписаться на блог…

Как писать багрепорты

Я работаю в разработке ПО и с болью смотрю, как люди обычно сообщают о проблемах с сервисами и программами. Бывает «Я нажал на кнопку и там черный экран», а бывает даже — «Ваша программа не работает». Гайд о том, как нужно сообщать о проблемах.

Посмотрите на эту картинку, представьте себя на месте синего.

Закипели немного, да?

Почему этим вообще стоит заниматься

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

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

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

Ещё бывает так, что разбирать багрепорт начали через неделю после репорта (кто-то был в отпуске или просто высокая загрузка). Начали у меня уточнять, а я сам не могу разобраться, что же я имел ввиду. Им воспроизвести не удается, а я не могу понять своё же описание. ¯\_(ツ)_/¯ В эти моменты очень стыдно.

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

Хороший багрепорт

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

1. Понятное краткое описание проблемы

Описание проблемы нужно, чтобы баг потом можно было найти. В идеале из заголовка должен быть понятен домен (часть программы, экран), область ошибки и важность. Писать все подробности в заголовок лучше не стоит, все равно не влезет.

Хорошие примеры:

  • Ошибка 404 при переходе на английскую версию статьи
  • Неправильный отступ в кнопке с иконкой button primary transparent
  • Приложение крешится при попытке отправить прогрессивный jpeg
  • Невозможно задать себе имя «Ян», т. к. оно слишком короткое

Плохие примеры (мало подробностей):

  • Ошибка 404
  • Неправильный отступ в кнопке
  • Приложение крешится
  • Не получается изменить имя

Плохие примеры (слишком много подробностей для заголовка):

  • Неправильный отступ в кнопке с иконкой button primary transparent. В жизни 6 пк 12пк 6 пк 8 пк, а надо 6 пк 8пк 6пк 6пк
  • Приложение под macOS версии 10.5.5 build 56718 крешится при попытке отправить прогрессивный jpeg в общий чат. При отправке пнг такого нет

2. Как воспроизвести

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

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

1) Открыть страницу профиля
2) Нажать на кнопку «Редактировать профиль»
3) Вписать в поле «Имя» значение «Ян»
4) Нажать на кнопку «Сохранить»

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

Ожидается: профиль сохранится

Полученный результат
А здесь описываю результат, который получил на самом деле.

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

3. Скриншоты или скринкасты

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

4. Окружение

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

Как внедрить

Первое время может быть непросто. Хочется срезать углы и описать покороче, ведь «и так понятно».

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

Мне помогает иметь шаблон багрепорта в заметках и трекерах. Скопировал, заполнил, молодец.

Шаблон багрепорта

  1. Краткое описание проблемы
  2. Пошаговое (важно!) воспроизведение проблемы
  3. Ожидаемый после этих шагов результат
  4. Полученный после этих шагов результат
  5. Скриншоты, скринкасты, версия браузера

Сделайте удобно читателю

Вообще этот прием — один из примеров более общего приёма «сделайте удобно читателю».

Подписаться на блог…

У меня не воспроизводится

Рассказываю как не выбешивать, даже ошибка если не воспроизводится.

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

Почему так происходит. Я вижу две проблемы:

  • Ответ в стиле пинг-понга: «проблема не на нашей стороне, следующий».
  • Ответ не подразумевает продолжения, «не воспроизводится» и всё тут, я даже пробовать исправить не буду.

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

Однажды я сообщал о своей проблеме с Конспектом. Со мной в личке связался Анатолий Буров и написал такое сообщение (цитирую с разрешения автора):

Спасибо за сообщение! Разбираемся.

У меня залогинивание работает. Это, конечно, не показатель, но свидетельствует о том, что речь, возможно, о какой-то локальной проблеме.

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

В связи с этим пара вопросов: а какой это блокировщик? И на айфоне тоже он настроен?

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

Я просто растаял.

Кроме заботы сделано предположение о возможной причине (кстати, верное. Так и оказалось, что это я своим блокировщиком сделал «баг») и предложения о дальнейшем траблшутинге.

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

Подписаться на блог…

Свой же продукт для релиз-нотсов

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

Отчасти это некий eat your own dog food.

Ноушен

Питч

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

Яндекс-Дзен

Наверное, это единственное хорошее в Яндекс-Дзене

Понятно, что так могут не все, но кто может — молодцы.

Подписаться на блог…

Зуум и зумм

Рассуждаю про написания «зуум» и «зумм». Это копия твитер-треда twitter.com/mikeozornin/status/1424681440843911170

Никак не пойму зачем и почему люди пишут Zoom по-русски как «зуум» и «зумм» (встречал у коллег оба написания). Мини-тред про то, почему меня это смущает.

Во-первых, никто так не говорит «зуум».
Никто в речи не тянет „у“ долго, все говорят не [zuːm], а [zum]. Особенно заметно при склонении («в зуме»), мне даже выговорить «зууме» [zuːmɪ] сложно.

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

Во-вторых, никто не говорит и «зумм».
Удваивать согласные на конце в речи у нас тоже не принято: «Бонн» в речи звучит как [bon], а не [bon(ː)]. Удвоение могло бы встретиться в середине слова, как в «оловянный» [ɐɫɐˈvʲanːɨɪ̯], но и так слово «зум» не звучит.

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

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

В-четвертых, нет никакой надобности дублировать оригинальное удвоенное написание. При обрусении слов многие удвоенные согласные теряются: «business» → «бизнес», «blogger» → «блогер». И ничего.

В-пятых, откуда берется написание «зуум» я ещё могу понять (две гласные превратились в две гласные), откуда берется «зумм» я даже представить не могу.

Хотя могу предположить, откуда взялся «зумм» — из известного романса «Вечерний зумм»:
Вечерний зумм, вечерний зумм!
Как много дум наводит он
О юных днях в краю родном,
Где я любил, где отчий дом,
И как я, с ним навек простясь,
Там слушал зумм в последний раз!

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

Подписаться на блог…

Disagree and commit

Рассказываю о важном в работе принципе

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

Фуф, вроде обсудили и договорились, — ставим. Сделали анонс договоренности, записали её в командный ноушен.

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

Начали разбираться, что не так, решили же, вот записано в ноушене. И тут он говорит:

.
.
.
— Вообще-то я был против точек.

 

Такое поведение — саботаж и нарушение принципа Disagree and commit.

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

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

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

Наш бро

До принятия решения разбирается, защищает свою точку зрения, приводит аргументы

После принятия придерживается принятого решения, как будто топил за него сам

Не наш бро и всех бесит

После принятия не придерживается принятого решения, и каждый раз напоминает, что он то вообще-то был против.

Подписаться на блог…
Ранее Ctrl + ↓