Чинить баги по TDD

Один из кейсов, которые я рассмотрю на своём мастер-классе 26 октября (https://tdd.timepad.ru/event/1074439/?utm_source=telegram&utm_medium=messenger&utm_campaign=mypost-bugs) — это исправление багов по TDD.

Вот прилетает к нам задача, скажем «Жму на кнопку — не работает». Обычно мы чиним такие баги весьма тупо — поднимаем фронт и бек, придумываем гипотезу, и начинаем дебажить: вносим исправление и жмём на кнопку. Если заработало — отлично, если нет — просто перебираем дальше гипотезу за гипотезой. Иногда мы перебираем гипотезы настолько беспорядочно, что даже не убираем следы предыдущих попыток.

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

Правильный процесс выглядит так: открываем контроллер в API, куда ходит кнопка, а дальше ставим под сомнение каждый нижележащий метод, проговаривая про себя гипотезы, к примеру: «я сомневаюсь, что метод get_users() не возвращает неактивных пользователей». Если сразу не находим теста, который доказывает обратное — пишем свой. Если тест падает — отлично, у вас уже есть тест, и остаётся только написать код. Если написанный тест не падает — git checkout --, и ставим под сомнение следующий метод.

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

Илья Александров написал о дизайне предсерийного прототипа «Симкомата Х».

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

«Размещение сканера сверху (человеку не нужно поворачивать телефон экраном вниз) кажется более логичным, и за него были разработчики. Но в нём был огромный недостаток с точки зрения взаимодействия — сканер не виден человеку.

Мы провели быстрый „коридорный“ тест этого варианта со случайными людьми на картонном прототипе. Даже тем, кто понимал, что сканер „должен где-то быть“, требовалось визуальное подтверждение, и некоторые пытались заглянуть снизу.

В то же время решения со сканером, направленным вверх, встречаются в природе, например, для сканирования билетов на турникетах. И похоже, они привычны для людей».

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

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

https://vc.ru/design/80772

Где искать работу за границей

Где искать работу за границей

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

1. Google Jobs (https://www.google.com/search?q=product+manager+jobs&oq=google+jobs&aqs=chrome..69i57j69i64l2j69i60l2.1840j0j1&sourceid=chrome&ie=UTF-8&ibp=htl;jobs&sa=X&ved=2ahUKEwjq49L78-7mAhUvQRUIHYZDDnAQiYsCKAB6BAgIEAM#fpstate=tldetail&htivrt=jobs&htidocid=QwzuMc_i3T_PcbV7AAAAAA%3D%3D) - в англоязычном поиске должен быть доступен поиск позиций прямо из поиска Google. Забейте ‘product manager jobs’ и вам должен выпасть список позиций недалеко от вашей локации.

2. LinkedIn (https://www.linkedin.com/jobs/) - неплохой поисковик для начала исследования рынка. В бете сразу показывают примерную зарплату и ожидаемые perks.

3. Glassdoor (https://www.glassdoor.co.uk/Job/london-product-manager-jobs-SRCH_IL.0,6_IC2671300_KO7,22.htm?srs=MY_JOBS) - похожий функционал, можно сразу посмотреть информацию о компании, отзывы о них и т.д.

4. Сайты компаний - заходим на сайты интересующих компаний и смотрим там в разделе careers. Сайты FAANG компаний:

Facebook (https://www.facebook.com/careers/)
Apple (https://www.apple.com/jobs/us/)
Amazon (https://www.amazon.jobs/en)
Netflix (https://jobs.netflix.com/)
Google (https://careers.google.com/)

5. Агрегаторы:

Indeed.com (https://www.indeed.co.uk/)
Monster (https://www.indeed.co.uk/)

Startups - Angel.co (можно почитать о каждом отдельном стартапе на Crunchbase)

Stackoverflow (https://stackoverflow.com/jobs) - можно сделать фильтр по visa sponsored jobs (https://stackoverflow.com/jobs/visa-sponsorship-developer-jobs).

Удаленная работа - We Work Remotely (https://weworkremotely.com/).

6. Русскоязычные каналы в Telegram:

https://t.me/hireproproduct
https://t.me/jabroad

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

Чему научился

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

- Именно в британке узнал о существовании длинного тире и стал активно его использовать — потому что это правильно;

- Сделал первый и последний (почти) шот на дриббл;

- Количество пинов на пинтересте увеличилось в 20 раз;

- Стал читать/смотреть Варламова (спасибо блоку исследования);

- Читаю описание всех обновлений у приложений;

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

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

Часть вторая. Розыгрыш брифов!

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

В этот раз брифы были зашифрованы текстами песен. То есть по 1-2 строчки ты должен был догадаться о чем идет речь.

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

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

Второй слайд — «I really need you really love you, И как бы далеко бы я ни был от тебя…»
Что то про близкие отношения, думаю я, либо сервис знакомств, либо поиск кого то. Точно нет. В аудитории тоже происходит заминка. Серей Гальцев решает дать подсказку сомневающимся и говорит, что тема очень душевная. В итоге появляется нужное количество рук.

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

Четвертый слайд — «Я раньше и не думал, что у нас на двоих с тобой одно лишь дыхание…».
Так, звучит подозрительно, дыхание, опять близость? нет не буду рисковать. В итоге команда формируется без меня.

Пятый слайд — «А у нас алкоголь дешевле, чем учебник — Так что, если ты ноешь, ты обсос, как Чендлер.»
Так, тут явно замешано образование, образовательными проектами я в той или иной мере занимался в университете, так что тоже пропускаю.

Шестой слайд — «Город-сказка, город-мечта».
Я смело поднимаю руку. Не особо следил за порядком, поэтому даже не заметил, что это последний слайд, просто понял, что мне это интересно. Урбанистика, город, в этом направление сейчас много чего происходит, должно интересно. Таким образом моя и ещё 3 руки сформировали последнюю команду.
Далее, нам показали те же самые слайды, но с брифом от заказчиков. Это было небольшое видеообращение с описанием проблемы.

1. «Все на свете из пластмассы и вокруг пластмассовая жизнь»
Фонд WWF заказал сервис, который поможет людям более осознанно подойти к проблеме загрязнения пластиком.

2. «I really need you really love you, И как бы далеко бы я ни был от тебя»
Фонд Добрая планета, попросил помочь им с организацией помощи волонтерам по работе с детьми-сиротами.

3. «Перемен, требуют наши сердца»
Фонд Борьбы с Коррупцией — это было довольно неожиданно, бриф читал начальник штаба — Леонид Волков. Он рассуждал о предстоящих выборах и о сложности наблюдений за их честностью. Его просьба была в том, чтобы придумать сервис, который облегчил бы жизнь наблюдателей. Все были немного в шоке, и я в том числе.

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

5. «А у нас алкоголь дешевле, чем учебник», Фонд поддержки образования и науки «Рекурсия» попросил помочь в проекте по менторству студентов.

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

Монокультура

Что думал в начале 2019:
- Все мы — люди. Мы живём в разных странах и говорим на разных языках, но во многом мы очень похожи.
- Дизайн во всём мире делается людьми для людей.
- Ещё Стив Джобс рассказывал после своей поездки в Турцию: «Весь день я смотрел на молодых людей в Стамбуле. Они все пили то же самое, что и все остальные дети в мире, и на них была одежда, которая выглядела так, как будто её купили в Gap, и все они пользовались мобильными телефонами. Они были как дети где угодно. Меня поразило, что для молодых людей весь мир теперь один и тот же. Когда мы делаем продукты, нет такой вещи, как турецкий телефон или плеер, который хотела бы молодёжь в Турции, и который отличался бы от того, что хотела бы молодёжь в других местах. Мы теперь просто один мир.»

Что думаю в начале 2020:
- Действительно, границы культур стираются всё сильнее.
- Например, хипстерские кофейни выглядят абсолютно неотличимо во всех городах мира: что в Нью-Йорке, что в Гонконге, что в Нижнем Новгороде. Поищите в Пинтересте "coffee shop interior" — всё одинаковое, нельзя даже предположить, где сделаны фотки.
- То же самое происходит с Airbnb (https://www.theverge.com/2016/8/3/12325104/airbnb-aesthetic-global-minimalism-startup-gentrification). Владельцы квартир всё чаще стремятся сделать стандартный «стильный» интерьер, который придётся по душе усреднённому современному путешественнику. Но это начисто уничтожает уникальные культурные особенности стран и городов.
- Впрочем, чему тут удивляться. Миссия Airbnb: Create a world where anyone can belong anywhere (в моём вольном переводе: «создать мир, в котором каждый может чувствовать себя как дома где угодно»). Но что если я хочу чувствовать себя как дома у себя дома, а в путешествии хочу чувствовать себя как в путешествии?
- Эта равномерная одинаковость вызывает у меня всё меньше оптимизма.
- Что уж говорить про дизайн массовых цифровых продуктов, у которых за редкими исключениями никогда и не было признаков культурной идентичности. Большинство в лучшем случае стремятся соответствовать трендам.
- Думаю, что маятник всё же качнётся в другую сторону. Нам бы только перестать бояться быть собой (http://t.me/desprod/463).
- Если бы сегодня снова записывал ролик для «33 слова о дизайне (https://bangbangeducation.ru/movie/33)», он получился бы уже немного другим.