Про удалённую работу

Обычно такой вопрос не предполагает, что ответ может быть правильным или неправильным. Но 16 марта 2020 года всё не совсем обычно. Сейчас первый вариант ответа — «дома» — мне кажется наиболее разумным и адекватным. Вне зависимости от того, в какой стране вы находитесь. Вне зависимости от того, считаете ли вы себя в группе риска или нет.

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

Наверняка все уже читали ту самую статью (https://medium.com/@tomaspueyo/coronavirus-act-today-or-people-will-die-f4d3d9cd99ca) (или её перевод на русский (https://habr.com/ru/post/491974/)) о том, почему мер, которые мы принимаем сегодня для сдерживания коронавируса, всё ещё недостаточно.

Когда в начале февраля писал пост про удалённую работу (http://t.me/desprod/524), совершенно не ожидал, что мне так быстро представится случай это всё попробовать.

Вот мои (очень наивные) открытия после первых полутора недель дома:
- Чтобы организовать рабочий день, теперь нужно больше дисциплины. Приходится явно блокировать в календаре время не только на встречи, но и на сфокусированную работу. Оказалось, что работа дома очень незаметно стремится заполнять собой всё свободное время. И хотя мне никогда не была близка идея разделять работу и жизнь, всё же жить одной только работой тоже не клёво.
- Звонить человеку напрямую в Слаке (Телеграме) — быстрее и проще, чем создавать встречу, делиться ссылкой на встречу, потом эту ссылку открывать отдельно и т. д. И почему мы так раньше не делали? Ну и не надо расшаривать экран — лучше делиться ссылкой на то, что обсуждаем (дизайн в Фигме, документ, доску в Миро и т. д.).
- Созваниваться с коллегами по видеосвязи, чтобы вместе пообедать или попить кофе оказалось очень прикольно. Хотя и звучит как безумие и постмодернизм. Здорово недооценивал, как много мы в офисе болтаем не про работу и как много этого теряется при переходе на удалёнку.
- Надо стараться выходить из дома каждый день! (Если вы не на полном карантине, конечно.) Социальная изоляция не означает, что нужно обязательно сидеть в четырёх стенах. Можно и нужно прогуляться в парке или выйти на пробежку.

Всё, что сейчас происходит — сложно, тревожно, печально и захватывающе одновременно. Супер-интересный глобальный эксперимент по переходу на удалённую работу и обучению. Возможность попробовать что-то новое и научиться чему-то новому. Возможность хотя бы на время немного снизить выбросы парниковых газов (в Китае чистый воздух впервые с Олимпиады 2008-го). Возможность объединиться — мы все через это проходим вместе. Здоровья нам всем.

Про изучение пользователей

230 млн лет назад (230! млн. лет назад) по Земле ходили Герреразавры — картинка внизу поста.
Это были относительно легкие двуногие хищные динозавры. У них был длинный хвост и довольно маленькая голова. Длина тела примерно 6 метров, а весили порядка 650 кг.

Строение их тела говорит о том, что они довольно быстро бегали. Стопа герреразавров имела пять пальцев, однако полностью развиты были только три средних (II, III и IV). Два остальных (I и V) не несли на себе нагрузку от тела — они были сбоку и имели только коготь. Хвост был укреплен отростками позвонков и играл роль балансира при ходьбе и беге. На первых трёх пальцах передних лап были крупные загнутые когти ими герреразавры хватали и удерживали добычу. Догнал, схватил и съел.

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

В 2015 году, работая в заказной разработке, я был в составе большой группы, которая делала продукт регионального уровня: муниципальные услуги, сервисы для жителей, мониторинг инвестиционных проектов.
И вот мы пошли на приём к мэру одного из региональных городов — приветливый и умный дядька.
Начали обсуждать сервисы для жителей. Один из сервисов был про активных горожан — отметил место на карте, приложил фотку и отписал, что не так. Все видят, голосуют за самые острые дела, а власть расторопно всё исправляет. У жителей, вероятно спрос был бы, если бы власть реагировала на запросы. Но на деле схема оказалась неработоспособной для небогатых городов (а это почти все). Приветливый и умный дядька нам сказал: "Мы уже знаем о таком количестве проблем, на которые не хватает городского бюджета. Зачем же мы будем давать людям ложную надежду и собирать их ещё больше — мы можем реагировать только на самые острые проблемы". Сервис не зашёл.

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

PHP Intl. Правильная транслитерация кириллицы

PHP Intl. Правильная транслитерация кириллицы

Современные фреймворки предоставляют готовый функционал в составе библиотек или хелперов для работы с библиотекой ICU (http://site.icu-project.org/home) через API Intl.

Такой функционал необходим для поддержки интернационализации разрабатываемого веб-сервиса. На основе указанной локали могут устанавливаться форматы отображения валют, времени и даты, а также подбираться настройки для инициализации транслитераторов (https://www.php.net/class.transliterator).

В разделе «Телеграм-каналы (https://chulakov.ru/notes)» сайта Студии во время автоматического импорта постов из наших каналов производится транслитерация названий заметок для формирования ЧПУ (https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_URL).

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

Например, уникальная часть URL заметки (https://chulakov.ru/notes/development/php-8-pocti-novogodnij-podarok) про релиз PHP 8 после транслитерации имела вид php-8-pocti-novogodnij-podarok. Замена некоторых букв произошла некорректно.

Для того чтобы транслитерация кириллицы производилась по традиционным правилам, необходимо произвести конфигурацию объекта-транслитератора (https://www.php.net/manual/ru/transliterator.create.php), передав следующее значение параметра $id:

Russian-Latin/BGN; Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;

После такой конфигурации результат преобразования наименования заметки изменится на php-8-pochti-novogodniy-podarok.

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

Вопрос: как менеджеру-гуманитарию начать разбираться в технических вопросах?

Для начала стоит принять, что как бы сильно вы ни старались — вряд ли вы станете говорить с командой на одном языке: они варятся в проекте по 6-8 часов в день, у вас столько времени попросту нет.

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

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

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

Вадим Митякин написал о проектировщике в рамках продюсерского подхода к созданию цифровых продуктов

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

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

Нет универсального навыка проектировать любые системы на любых технологиях для любых отраслей. За проектировщиком стоят:
— Реальный опыт создания систем, когда у него была возможность проверить разные гипотезы и узнать, как может вести себя система в реальной рабочей среде;
— Системный подход — поиск и своеобразные вычисления, за которыми стоят и прототипирование и способность смотреть на задачу с разных точек зрения.

Проектировщик — человек, имеющий привычку принимать решения. И имеющий достаточно смелости для этого.

Как состояться в профессии:
1. Насмотренность — знакомство с разными областями знаний;
2. Исследования — освоение выбранной области знаний;
3. Мастерство — использование своих знаний и создание новых областей знаний.

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

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

Всё, что нужно знать менеджеру продукта про пользовательский опыт

Всё, что нужно знать менеджеру продукта про пользовательский опыт

Отличная подборка полезных ресурсов и запись вебинара с Михаилом Грековым про UX.

Процитирую несколько крутых мыслей:

✔️Пользовательского опыта не существует, пока у продукта нет аудитории. Это главная причина начать получать обратную связь в процессе разработки как можно раньше (тестирование прототипов, коридорные тесты, запуск через MVP)

✔️Пользовательский опыт неоднороден. У разных частей продукта может быть совсем разный UX (попробуйте найти в Zoom настройки видео). И для разных аудиторий UX может быть разным (1С очень удобен в глазах опытного бухгалтера)

✔️Хороший UX это баланс между удобством (помогаем пользователю дойти до цели кратчайшим путём) и интересами бизнеса (на примере Яндекс Go, продвигаем другие сервисы за счёт простой задачи вызова такси)

✔️Пирамида пользовательских ценностей (см картинку👇🏻). Нет смысла заниматься проблемами на верхних уровнях, если в продукте не решены критичные проблемы на нижних.

Также в презентации есть разбор требований работодателей к менеджерам продукта, связанным с UX, и хороший список рекомендаций как прокачивать эти навыки. Однозначно в избранное!