Привет Хабр! Меня зовут Андрей Каймаков, я работаю в продуктовой аналитике Mail.ru в VK. Сейчас практически каждая IT-компания (да и не только IT) знает про A/B-тесты и понимает важность проверки новых фичей с помощью этого метода. Когда фичей становится много, то A/B-тесты начинают занимать значительное время в работе команд. Чтобы автоматизировать эти процессы создаются платформы для проведения A/B-тестов. Мы разрабатываем свою систему с 2017 года, а недавно сильно ее обновили. Хочу вместе со своим коллегой разработчиком Андреем Чубаркиным поделиться опытом и инсайтами, которые мы обнаружили в ходе этого проекта.
Релизная политика против хаоса
Костя так переживал за результат релиза, что решил контролировать процесс его запуска прямиком с собственной свадьбы. Это было эпично, и привело к мысли, что в жизни пора что-то менять. Причём как можно скорее. Из всех возможных вариантов он выбрал самый интересный и решил поменять нашу релизную политику.
Нельзя сказать, что без этого всё работало плохо. Работало хорошо. Но достаточно долго. Новые фичи выходили не чаще раза в месяц, но в какой-то момент мы поняли, что нужно укладываться в две недели максимум. У нас появились такие важные показатели, как частота поставок и Time to Market.
А потом начала работать омниканальная платформа, на которой двенадцать команд одновременно разрабатывали одно приложение, каждая — свою часть. Тогда появился запрос на стандартизацию процесса.
Меня зовут Михаил Щеголев, мы вместе с Константином Дерешевым занимаемся релизной политикой в одном из крупных российских банков. Мы любим свою работу, а дедлайны не любим.
Особенно, если дело касается еженедельных релизов.
Механики удержания в играх
Допустим, вы сделали игру. Допустим, она неплоха или даже хороша! В нее заходят игроки, ее скачивают, но вот только не задерживаются надолго. В чем причина? Как завоевать любовь геймера и “подсадить” его на свой продукт?
В данной статье я дам несколько эффективных советов, как сделать игру привлекательнее для пользователя и, соответственно, повысить возвращаемость в нее.
Все оценки сроков разработки ПО — ложь
▍ Разработка ПО — это исследование
Требуют ли фармацевтические компании от исследователей сообщить им сроки создания лекарства от рака? Исследователи могут сообщить сроки выполнения конкретного исследования (и достаточно точные сроки, потому что планы исследований обычно имеют графики), но результаты наподобие «получения лекарства от рака» зависят от того, что выяснится в процессе экспериментов. Для прогнозирования подобных результатов нам заранее нужно знать результаты экспериментов, но если бы мы их знали, то эксперименты были бы не нужны. На самом деле мы не можем смотреть дальше, чем результаты следующего эксперимента, потому что этот эксперимент определяет дальнейший шаг.
В разработке ПО мы не тратим время на задачи, решения которых знаем. Если решения уже существуют, мы добавляем в качестве зависимости пакет или библиотеку с этим решением, или копируем старый код, или делаем что-то ещё, на что требуются секунды, а затем можем переходить к следующей задаче. Почти всё время разработки тратится на новые задачи, ответов на которые мы не знаем. Часто они новы ужасно скучным образом, например, «как нам сохранять эту модель данных с этими конкретными полями в эту конкретную базу данных?» Но именно из-за них эта ситуация отличается от всех остальных (или, по крайней мере, от тех, которые мы смогли найти) и именно это занимает всё наше время.
Вышел Go 1.20. Обзор под катом
Команда разработчиков Go представила Go 1.20. Загрузить его можно здесь.
Благодаря раннему обширному тестированию и повышенной общей стабильности кодовой базы была расширена фаза разработки — и это пошло на пользу Go 1.20. За подробностями приглашаем под кат, а за полезной теорией и практикой — на наш курс по Backend-разработке на Go.
Всё, что вы должны знать о Платформе nanoCAD 21
Современные инженерные решения должны адаптироваться под вас. Так была создана Платформа nanoCAD 21 – гибкий, технологичный и прозрачный инструмент инженера-проектировщика.
Как nanoCAD 21 позволяет сократить время проектирования? Сохранятся ли файлы, если произойдет резкий скачок напряжения? Какие новые фичи появились в этом релизе?
Смотрите запись презентации, чтобы узнать, чем nanoCAD 21 может быть полезен именно вам.
Сервер на «малинке» и бесплатный каталог приложений для облака
Привет, Хабр! Многие из вас читают тексты, опубликованные в блоге Selectel. И, раз уж вы здесь, мы бы хотели поделиться несколькими новостями продуктов компании. В этом выпуске — выделенный сервер на базе Raspberry Pi за 499 рублей в месяц, 8 топовых GPU в одной конфигурации и бесплатный каталог приложений для «Облака на базе VMware».
Обязательно напишите в комментариях, интересен ли вам такой формат, или поучаствуйте в опросе в конце текста. Будем рады узнать ваше мнение!
В Twitter скрыли адресатов реплаев пользователей
Обновление Twitter скрыло имена тех, кому отвечают пользователи. В итоги треды превращаются в подборки бессвязных цитат.
GitHub Flow: рабочий процесс Гитхаба
То понятие, для которого на английском языке достаточно одного слóва
Другое понятие, «deploy», на русский часто переводят словом «развёртывание», но в моём переводе я решил вспомнить оборот из советского делопроизводства — «внедрение инноваций
К сожалению, некоторые переводчики бывают склонны грубо убивать сочную метафору «иньекции» (или даже «впрыскивания», если угодно), содержающуюся в термине
Я стремился употреблять словосочетание «в Гитхабе» в значении «в компании GitHub Inc.»,
Проблемы git-flow
Повсюду путешествую, преподавая Git людям — и почти на каждом уроке и семинаре, недавно мною проведённом, меня спрашивали, что я думаю
Однако и у git-flow есть проблемы. Я не раз слыхал мнения людей, выражавших неприязнь к тому, что ветви фич отходят
Для меня одной из более крупных проблем
Все эти проблемы можно без труда преодолеть, следуя гораздо более простому рабочему процессу. Мы не пользуемся
Простота его имеет несколько достоинств.
Рабочий процесс Гитхаба
Большие мелочи: 7 возможностей UBANK, которые сделают вашу жизнь проще и веселей
Sherman Geronimo-Tan
В работе помогают качества, которые в личной жизни вредят. Кому, например, понравится человек, который придирается к пустякам и все время обращает внимание на мелкие неудобства, вместо того, чтобы просто наслаждаться жизнью? В деле, наоборот, мелочность бесценна.
Со временем понимаешь: чтобы создать что-то мало-мальски достойное, нужно перестать мириться даже с самыми незначительными, казалось бы, неудобствами своих клиентов. Лидера от серой массы последователей отличают зачастую лишь детали. Но они и важны.
У нас в UBANK конкурентов хватает, человечество изобрело множество способов заплатить за услуги. Но мы одни из немногих, кто ставит себе целью создать идеальный платежный сервис для смартфонов. Эта стимулирует нас придумывать все новые и новые способы облегчить жизнь пользователей. Пока другие не размениваются по мелочам, мы стараемся вгрызаться в детали.
Иногда становится обидно, что некоторые люди, один раз заплатив за телефон, думают, что это все, на что способен наш сервис.
10 полезных фич R, о которых вы могли не знать
В R полным-полно самых разных функций. Ниже я приведу десять самых интересных из них, о которых многие могли не знать. Статья появилась после того, как я обнаружил, что мои рассказы о некоторых возможностях R, которые я использую в работе, восторженно воспринимаются знакомыми программистами. Если вы и так знаете об этом всё, то прошу прощения за потраченное время. В то же время, если есть чем поделиться — посоветуйте что-то полезное в комментариях.
Занимательная археология: стилевое руководство R под лупой
Стилевой гид это не просто негласный договор разработчиков – за многими из правил стоит любопытная предыстория. Почему стрелка
<-
лучше знака равенства =
, почему старожилы R не любят нижнее подчеркивание, как рекомендуемая длина строки связана с перфокартой, и о многом другом – далее.Sibur Challenge 2020 или «как мы фичи придумывали»
Всем привет! В этом году компания Sibur Digital вновь проводила крупный (по сравнению с другими российскими) чемпионат по анализу данных. Мы с другом в нём участвовали и хотели бы поделиться с читателями Хабра своим решением и опытом, полученным от участия. Конечно вряд ли мы Америку откроем этой статьей, но какой-нибудь новичок в соревнованиях по АД точно сможет почерпнуть для себя что-то полезное.
Как понять, что новая фича принесет пользу продукту, а не навредит ему?
Когда продукт выходит на рынок и находит целевую аудиторию, работа над ним не заканчивается. Предприниматели и продакты всегда ищут идеи повышения ценности для пользователей.
Как понять, что функция понравится потребителям и будет для них полезна? Для этого используют критерий feature/product fit. Он помогает определить ценность новой фичи и ее влияние на развитие продукта в целом. Далее мы более подробно поговорим об этом показателе, а также приведем несколько интересных примеров из практики.
Жизнь до и после Scrum в разработке B2B продуктов
Оценка важности «фичей» для нелинейных моделей
Задачи, которые сегодня решает машинное обучение, зачастую являются комплексными и включают в себя большое количество признаков (фичей). Из-за сложности и многообразия исходных данных применение простых моделей машинного обучения часто не позволяет достигнуть необходимых результатов, поэтому в реальных бизнес-кейсах применяют сложные, нелинейные модели. У таких моделей есть существенный недостаток: из-за их сложности практически невозможно увидеть логику, по которой модель присвоила именно этот класс операции по счету. Особенно большое значение интерпретируемость модели играет, когда результаты ее работы необходимо представить заказчику — он скорее всего захочет узнать, на основе каких критериев принимаются решения для его бизнеса.
В стандартных пакетах для машинного обучения, таких как sklearn, xgboost, lightGBM существуют методы для оценки важности влияния на конечный результат той или иной фичи (параметра). Однако эти метрики важности не дают представление о том, как именно эти признаки влияют на предсказания модели. Например, как время проведенной операции указывает на то, была ли сделка мошеннической? Или как сильно адрес прописки владельца карты смещает предсказание модели? Для ответа на эти вопросы необходимо найти комплексное решение, которое помогло бы повысить интерпретируемость нелинейных моделей. Таким инструментом является библиотека SHAP. В библиотеке SHAP для оценки вклада фичей в итоговое предсказание моделей рассчитываются значения Шэпли. Для оценки важности фичи происходит оценка предсказаний модели, которая была обучена на основе датасета с и без данной фичи.
Рассмотрим работу данной библиотеки на примере определения мошеннических операций. Рассмотрим поля, которые есть в нашей таблице. В таблице содержится 213 столбцов, что довольно много для ручного перебора с помощью метода обучения модели без каждого признака поочередно для выявления важности каждой из фич.
Приведенный ниже код взят с kaggle и доработан для демонстрации функций рассматриваемого инструмента.
Take a bite и «Команда Тигров»: опыт применения Agile-методов для решения непонятных задач и создания больших фич
Привет, Хабр! Где-то года три назад мы начали переходить с обычного вотерфольного процесса, присущего большинству продуктов энтерпрайз-сегмента, на «гибкие подходы». Стартовали с одной команды и одного подпродукта. На данный момент у нас шесть полноценных Scrum-команд. О том, почему это было необходимо, как проходила agile-трансформация, какие подходы мы тестировали, чтобы научиться делать по-настоящему большие и малопонятные на старте фичи, читайте подробнее в посте.
Выбираем метод для поиска схожих операций
Перед нами стояла задача выявления групп клиентов, имеющих одинаковое инвестиционное поведение при совершении операций на организованных рынках ценных бумаг.
Для результативного решения задачи в первую очередь необходимо определиться с ее правильной постановкой.
Итак, в наличии у нас есть датасет по операциям клиентов на фондовом рынке. Сам датасет огромный и находить в нем информацию «вручную» или даже с помощью агрегации сложно и неэффективно. Исходя из этого определяем нашу первую цель – уменьшение датасета, выбрав из всех данных только самые схожие. Кроме того, нет смысла рассматривать схожие операции одного клиента, следовательно, это тоже надо предусмотреть. Собственно, можно начинать!
Фичи, по которым мы будем сравнивать и искать схожие операции:
Расчет факторов в антифроде. Доклад Яндекса
Руководитель антифрода Андрей Попов Nox_andry выступил с докладом о том, как мы смогли выполнить все эти противоречивые требования. Центральная тема доклада — модель вычисления сложных факторов на потоке данных и обеспечение отказоустойчивости системы. Также Андрей кратко описал следующую, еще более быструю итерацию антифрода, которую мы сейчас разрабатываем.
Команда антифрода, по сути, решает задачу бинарной классификации. Поэтому доклад может быть интересен не только специалистам по борьбе с фродом, но и тем, кто делает разнообразные системы, в которых нужны быстрые, надежные и гибкие факторы на больших объемах данных.
Что будет с C#, и при чём здесь Страуструп?
Я люблю C#. После университета моим первым настоящим проектом по программированию была игра, написанная на Unity. И я сразу же влюбился в этот язык: он казался таким свежим. И был похож на Java… если бы в Oracle по-настоящему заботились о Java, это вернуло бы короткий золотой век Java. Слышал, что с тех пор они перешли на цикл ещё быстрее, так что всё могло измениться.
Я по-прежнему люблю этот язык. Может, он и не самый модный, но всё равно способен делать что угодно. Пример — многопоточность. Думаете, это сложно? Тогда попробуйте в Dart поиграть с Isolate и поймёте, как хорошо иметь C#.
В последние несколько лет меня стала очень беспокоить судьба языка. Я поделился своими мыслями в комментарии здесь. И раз уж комментарий привлёк так много внимания — решил конкретизировать его идеи.