Качество кода и счастье

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

Вот, к примеру, качество кодовой базы. По-идее, можно очень долго жить с горами говнокода в продакшене — просто нанимаешь в 2–3 раза больше программистов, игнорируешь высокий churn, пытаясь загасить проблему корпоративами/тимбилдингами/мотивацией, и привычно умножаешь все сроки на 3.

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

Ключевой элемент счастливой команды — качество кодовой базы: архитектура, стандарты кодирования, тесты и автоматизация рутины.

Вчера на сайте бюро вышел первый совет в серии о качестве кода (http://bit.ly/bureau-code-quality), с детальным рассказом о том, зачем это нужно бизнесу. Особенно совет полезен тем, у кого нет времени (или кому не дают времени) на рефакторинг.

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

Несколько цитат:

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

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

Хотя мы понимаем, что такая тактика — проектирование ради метрик — реально не всегда полезна, мы называем свои методы позитивно: взлом роста (growth hacking), геймификация и петли вовлечения. Мы стараемся не думать о возможных пагубных последствиях.

«Пока мы не начнём измерять то, что ценим, мы будем переоценивать то, что измеряем», — Ким Гудвин.

Представьте: девушка присоединяется к ЛГБТК-хору в колледже. Руководитель хора добавляет её в группу в Facebook, и Facebook автоматически делится этим действием в новостной ленте студента. Однако девушка ещё не рассказала семье о своей сексуальной ориентации. Могут ли продукты случайно нанести вред?

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

Мы знаем, что призывать к изменениям легче, чем их осуществить. Реальность корпоративного мира суровая и оставляет очень мало места для всего, что не приводит к краткосрочным бизнес-результатам. Дизайнеры имеют уникальную возможность запустить изменения, влияя на продуктовые решения, высшее руководство и самих пользователей. Чтобы в мире произошли изменения, которых мы хотим, нужно с чего-то начать самим.

https://awdee.ru/world-needs-a-tech-diet/

Интересная статья о ментальных моделях (ММ) для дизайнеров.

Я сперва подумал, что она как раз про мои любимые ММ, которые являют собой сторифреймы в персонах, но нет.

В статье речь ведётся скорее о методах мышления, то есть как следует думать и работать. Вот самые интересные из них:

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

2) Инверсия. Мы часто концентрируемся на поиске идеального решения, однако порой это слишком тяжело даётся. Чтобы облегчить себе «роды» решения, можно воспользоваться инверсией: представить не самое хорошее решение, а наоборот, плохое. А после просто спросить, как нам этого избежать? Очень напоминает метод решения задач «от обратного», не правда-ли? Например, все таже проблема становления вас как прекрасного специалиста может впасть в ступор на вопросе «А кто такой этот прекрасный специалист?». Однако стоит вам задать вопрос, как «Кем он не является?», как сразу повалят признаки: звёздная болезнь, отсутствие опыта, теоретический дизайн, затворничество и т.д. Останется только придумать, как этого избежать и вуаля.

3) Лестница абстракции. Этот метод позволяет выйти из тупиковой ситуации, если задача кажется неразрешимой. В таком случае, нам стоит переместиться на уровень выше (построить надсистему по ТРИЗ) и рассмотреть проблему в ней. А делается это при помощи мозгов и качественных вопросов (почему, зачем, как, чем... и т.д.) Например, перед нами стоит задача создать ручку, которая будет писать в условиях невесомости. И это довольно сложная задача. Но если мы выйдем в надсистему «фиксирование информации в условиях невесомости», то на столе появляются и другие опции, типа «цифровой дисплей» или «простой карандаш». Конечно, каждый из них будет иметь свои недостатки, но и положительные моменты можно будет перенять.

Также в статье есть модели для принятия решений и коммуникации, но они примитивны, так что не попали в топ.

Кароч, ответственность переоценена

Многие говорят, что лидер – это тот, кто готов брать на себя ответственность. Серьезная, уважаемая роль. Но немногие знают, что ответственность брать так же легко, как пирожок с полки.

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

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

И вместо Чтобы: слабая связь

И вместо Чтобы: слабая связь

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

Напишите email, чтобы получить подарок.

Тут всё строго. Не написал email — не получил подарок. Не получил подарок — значит, не написал email. Мозг воспринимает такое предложение за следствие (не очень корректно).

Иногда причинную связь не хочется подчеркивать. Тогда поможет союз «и».

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

Последовательность есть, но она неявная. Коша не обязательно будет благодарна. Кошка вообще никому ничем не обязана.

С заходом солнца принесите жертву, и солнце снова взойдет.

А что если солнце восходит само по себе? Но мы и не говорили, что эти события связаны. Где там «если» или «чтобы»? Ручки-то вот они.

Ок, ближе к реальности. Сравните:

Купите диван-кровать и наслаждайтесь уютом-комфортом.

и

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

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

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

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

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

Лучше, если респондент использует своё устройство, поскольку каждый подстраивает скринридер под себя: скорость произношения, произносить или нет знаки препинания и так далее.

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

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

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

https://medium.com/Valeria.kurmak/73845933b550