Позднее Ctrl + ↑

Как срывать сроки

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

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

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

Если вы сорвали настоящий дедлайн, надо сначала сказать: «Мы договаривались, что сегодня я покажу то-то и то-то в таком-то объёме, в том числе... (перечислить всё, что вы обещали). К сожалению, я сделал не всё: не успел сделать то-то и то-то». Все извинения, уточнения и, главное, предложения должны звучать уже после этого. Доверие начинается с того, что клиент хотя бы видит, что вы понимаете, что создали проблему.

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

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

Каким бы ни было ваше предложение, нужно убедиться, что клиенту оно подходит. «К завтрашнему дню уже точно будет» — это предложение, но оно звучит, как будто вы сами назначили себе новый дедлайн, не спросив мнение клиента. Мало кому такое понравится. Более нормальный вариант: «Чтобы доделать оставшееся, я бы хотел договориться взять ещё два дня». Тут клиент может либо согласиться, либо возразить, и тогда вы сможете думать дальше.

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

Доллар в регвыражениях не всегда означает конец строки

Долго боролся сейчас с одним багом, поэтому пишу себе, чтобы не забыть.

Есть регулярное выражение (для примера):

/(some|any)thing$/i

Доллар, уверен я, означает «конец строки». Выражение должно проверять, что строка заканчивается на слово something или anything в любом регистре. Но вот оно иногда срабатывает, даже если строка не заканчивается на него! Я в отчаянии уже проверяю впрямую, что строка заканчивается на g или G, и точно вижу, что она не заканчивается. А выражение срабатывает!

Замечаю, что это происходит, если в конце выражения стоит возврат каретки. Думаю: какого хрена? У меня же написан доллар сразу после g, никаких возвратов каретки там! Модификатора /m, который разделяет текст на отдельные строки, нет. Может, он как-то там по умолчанию включился, и надо его, наоборот, отключить?

От безысходности иду читать документацию. Никакого антонима модификатору /m не нахожу. Читаю про сам /m:

m (PCRE_MULTILINE)
By default, PCRE treats the subject string as consisting of a single «line» of characters (even if it actually contains several newlines). The «start of line» metacharacter (^) matches only at the start of the string, while the «end of line» metacharacter ($) matches only at the end of the string, or before a terminating newline (unless D modifier is set).

Что? Что ещё за нахрен /D?

D (PCRE_DOLLAR_ENDONLY)
If this modifier is set, a dollar metacharacter in the pattern matches only at the end of the subject string. Without this modifier, a dollar also matches immediately before the final character if it is a newline (but not before any other newlines).

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

/(some|any)thing$/iD

А также запоминаю, что надо теперь вообще всегда использовать модификатор /D, потому что если блин мне надо возврат каретки мэтчить, я это в состоянии впрямую сформулировать внутри регвыражения, а не полагаться на это хитрожопое исключение.

Лайкли 3.2

Лайкли — клёвые социокнопки. В версии 3.2 добавилась поддержка соцсети «Икс» — это так переименовался твиттер (<div class="xcom">).

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

Подробности:

Лайкли ведёт Николай Рысь (Линкед-Ин).

Думаем дальше № 3 — «Ощущается как ненастоящие ёлочные игрушки» с Никитой Прокоповым

Выпуск с Никитой Прокоповым про то, что в Эпле теряются даже те знания о дизайне, которые они же сами и принесли в мир:

0:00 Приветствия, разогрев и поздравления с Новым годом
0:05 Фолоу-ап: красная батареечка, когда компьютер трудится
7:53 Фолоу-ап: развыбор всех радиокнопок
12:37 Как сократить вопросы про безопасность у Эпла
31:25 Слова preferences и settings не синонимы
35:02 Знания не передаются
40:17 В Доке сломали закон Фиттса
45:37 Нативные элементы интерфейса: поведение и внешний вид
58:55 Никита рассказывает про свою библиотеку интерфейсных элементов Хамбл-юай
1:11:26 Сложный элемент: текстовое поле

Все выпуски · РСС для подкастного приложения

На интерфейсном курсе: дискуссия о задачах инфографики

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

Это фрагмент № 132 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 8 сентября 2023 года.

До 2 февраля идёт запись на курс, который пройдёт с 3 февраля по 3 марта.

Почитать о курсе

Программа, отзывы, запись

Сайт «Альфа-Медикал»

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

Обратимость элемента интерфейса

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

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

Даже если для перехода к следующему шагу обязательно необходимо выбрать какой-то вариант, это не отменяет требования обратимости. Это чисто механический момент, не связанный с ролью элемента. Обратимость работает на уровне элемента, а не внешнего по отношению к нему интерфейса; она влияет на ощущение управляемости. Поле ввода не сопротивляется тому, чтобы из него стёрли все символы, даже если оно обязательное. Любой другой элемент, если он в принципе предполагает «пустое» состояние, должен давать к нему вернуться.

Другой пример необратимости — обозначение незаполненных обязательных полей красной рамкой после расфокуса. Изначально поле выглядит просто пустым; пользователь заходит в него, а потом выходит, так и не заполнив (или заполняет, но потом стирает то, что ввёл). Система обводит поле красной рамкой, подсказывая, что оставить его пустым нельзя. После этого невозможно вернуть поле в начальное «чистое» состояние. Решением могло бы быть плавное затухание красной рамки, чтобы поле вернулось в начальное состояние через секунду.

Думаем дальше № 2 — «Самоутвердился за счёт целого Вольфа Олинса» с Сергеем Стеблиной

Записали ещё один выпуск экспериментального подкаста, теперь вот с Сергеем Стеблиной.

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

0:00 Кринжовое интро про радиокнопки
4:20 Когда пару радиокнопок можно заменить чекбоксом и как вообще обойтись без подобных элементов
8:50 Илья читает неожиданную лекцию про радиокнопки
13:41 Дебильные комбинации элементов в интерфейсах Гугля
16:17 Элементы формы мгновенного и немгновенного действия
19:08 Илья и Серёжа о будущем своих учеников
23:27 Серёжа начал делать схему амстердамского метро, а оно не нужно
28:00 Нужно ли объездить все трамваи, чтобы нарисовать их схему?
31:22 Дизайнеров бесят другие дизайнеры и их работы
39:06 Сломанные кривые в логотипе Вольфа Олинса и плохой дизайн как вызов
44:28  Илья не воспринимает бленду всерьёз
46:29 Адоби покупал-покупал Фигму, да так и не купил
57:43 Проекты, за которые мы бы не взялись по личным соображениям

Фрагменты интерфейсного курса (1—50)

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

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

Сборная солянка:

Почти самостоятельные лекции:

Метод:

Формы:

См. также тег: веб-формы

Таблицы, графики и диаграммы:

См. также тег: таблицы

Редактура в дизайне:

Эстетика:

Ход:

Инструмент:

Бизнесовое и продуктовое:

Разное интересное:

Потом разберу ещё. А вы пока приходите на следующий курс, который пройдёт 3 февраля — 3 марта.

Почитать о курсе

Программа, отзывы, запись

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

В недавнем выпуске Under the Radar ребята говорят то, что я говорю всем дизайнерам сто лет: используйте блин стандартные элементы, и ваш дизайн будет почти гарантированно красивее, чем если вы будете рисовать отсебятину! Нужный кусочек — после отметки 19 минут.

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

Everything just feels so weirdly needlessly custom and nothing works right, nothing feels right, and nothing looks right.

So first of all, I think, this gives indies like us a huge opportunity. We can look better than 90% of what’s out there by actually doing less work. It’s actually easier to use the system default stylings of things, especially with SwiftUI, it makes it even easier. Because in many cases SwiftUI is doing a lot of standard styling stuff for you behind the scenes even more than UIKit did. If we just do less custom styling work and follow Apple’s either default behaviours or standard styles much more often, our apps will look better, and they will work better, and they will have better accessibility support, and they will respond better to different preferences. Way better than most of what’s up there in the App Store which is all these weird web view garbage apps.

А Дэвид отвечает, что раньше делал всё «своё», потому что не хотел, чтобы программа выглядела «скучной», пытался так придать программе характер. Но, говорит, понял, что над системными элементами много лет работали крутейшие дизайнеры, отлаживали там тончайшие детали типографики и прочего, и что когда он делает «своё», он просто выкидывает в мусор всю эту работу. Фокус в том, говорит, чтобы поменять в стандартном лишь пару поверхностных нюансов, и уже появится своё настроение, но зато останутся стандартные размеры и поведение. Если посмотреть на очень яркие эпловские приложения типа того же Фитнесса, то будет видно, что там тоже всё стандартное — форма кнопок, отступы — просто покрашенное другими цветами. А если, говорит, я хочу более амбициозный дизайн запилить, то надо и дизайнерские скиллы прокачать куда сильнее!

Ранее Ctrl + ↓