За пару недель этого года мы поделились подборкой обзоров наушников, рассказали о попытках сохранить звуки старых модемов, обсудили «худшие» музыкальные треки и несколько других тем: от старого железа до «ASRM на питлейне». Сегодня продложаем говорить о примечательных полочниках и портативной акустике.
Flutter Enthusiast
Mockito и как его готовить
О статье
Перед вами очередное руководство по Mockito. В нём я, с одной стороны, попытался описать функционал этой библиотеки так, чтобы незнакомый с нею читатель сразу получил возможность полноценно ею пользоваться, а не только общее представление о ней. С другой — я хотел сделать его достаточно компактным и структурированным, чтобы можно было быстро прочесть его целиком и быстро найти в нём что-то единожды прочитанное, но подзабытое. В общем, эта такая статья, какая бы пригодилась мне самому, когда я только столкнулся с этой библиотекой и не очень понимал, как она работает.
Полагаю, она и сейчас может пригодиться мне же — иногда я забываю что-то из этого, а вспоминать материал удобнее всего не по официальной документации или чужим статьям, а по собственному, скажем так, конспекту. Вместе с тем я старался построить текст так, чтобы он был удобен прежде всего для знакомства с Mockito с нуля, и кое-где подробно разбираю вроде бы очевидные вещи — не все из которых были для меня очевидными с самого начала.
Выявление техдолга и оценка его процентов
Как оценить технический долг и получить разрешение на его починку, прежде чем он поглотит вас и вашу команду? Этот вопрос рано или поздно встает перед всеми лид-разработчиками. Но его решение требует большой экспертизы и грамотного анализа. Поэтому давайте вместе разбираться, как лучше искать, извлекать и обеспечивать техдолг, а заодно выясним причём тут слоны.
Некоторые разработчики никогда не пройдут собеседование
В нормальном состоянии префронтальная кора свободно осуществляет высокоуровневое мышление. При стрессе выделяется большое количество нейромедиаторов, которые активируют сети, связанные с миндалевидным телом (эмоции), блокируя префронтальную кору
Миша отличный программист. Для него сложная задача — как личный вызов. Он затихает, молча бродит с отсутствующим взглядом несколько дней… Пока его не прорвёт. Тут словно огонь загорается в глазах, парень светится как маньяк, и даже влюблённая девушка не вытянет его из кода поздним вечером. Реально гений.
Но есть проблема. Мишу трудно понять. Видно, что в голове куча мыслей и абстрактных концепций. Но выразить словами толком не получается. Все предложения словно кубики из разных конструкторов, которые никак не скрепляются в единое целое.
Не пишем код целый месяц и нам нормально
Праздничные дни для Додо Пиццы — настоящий хайлоад. К ним мы готовимся заранее и заводим специальные правила.
Самое жаркое время — в декабре: много корпоративов, заказы становятся больше, прибыль выше. Во многих городах плохая погода — где-то выпал снег и дороги не расчищены, где-то очень холодно. Всё вместе это создаёт нагрузку и на IT, и на бизнес. От нагрузки может сломаться что угодно: то очередь задач переполнится, то печь выйдет из строя. Чтобы быть готовыми, мы регулярно проводим нагрузочные тестирования, повышаем закупки ингредиентов, распределяем заказы по пиццериям и много чего ещё.
Для мобильных разработчиков конец года раньше тоже был особенный: с 23 по 27 декабря App Store закрывался на рождественские праздники, приложения не проверялись, опубликовать что-то было невозможно.
Расскажу, как влияют эти ограничения на разработку, какие ошибки мы совершили в прошлые годы и что меняется в расписании. Возможно, что-то из практик пригодится и вам: подсветит риски, поможет договориться о код-фризе с бизнесом.
Код ревью с учётом человеческих слабостей
Проверка кода (code review) — отличный инструмент для повышения качества кода, но он не учитывает один факт: отправляют и просматривают код люди, а они устают, теряют сосредоточенность, ленятся, да и просто испытывают эмоции в самые неожиданные моменты.
Поэтому хочу представить свое видение хороших и плохих практик код ревью с учётом человеческих особенностей.
Теперь я тимлид, но почему мне так плохо? Практические советы
То, что доклад на эту тему был признан лучшим на конференции для тимлидов и о тимлидах, показывает, насколько действительно часто встречается такая ситуация. Но надо признать, конечно, что Евгений Кот (bunopus) заработал это «признание» еще и великолепным перформансом. С удовольствием делимся с вами его записью.
Flaky tests
В итоге зрители высоко оценили доклад, и мы решили не просто опубликовать видеозапись, а ещё и сделать для Хабра текстовую версию доклада.
Когда использовать mocks в юнит-тестировании
Эта статья является переводом материала «When to Mock».
Использование моков в модульном тестировании является спорной темой. Автор оригинала заметил, что на протяжении всей своей карьеры в программировании он сначала перешел от «моков почти для каждой зависимости» к политике «без моков», а затем к «только моки для внешних зависимостей».
Ни одна из этих практик не является достаточно хорошей. В этой статье Владимир Хориков покажет, какие зависимости следует мокать, а какие использовать как есть в тестах.
О конфликтах QA vs Dev, QA vs Product: почему так получается и что с этим делать
Привет, Хабр! Меня зовут Коля и я QA. Хочу поделиться, как эволюционировал из существа, которое профессионально пьет кровушку разработчиков, доводит до нервного срыва дизайнеров и систематически портит настроение менеджменту, до человека, который помогает выводить на рынок качественные и продуманные продукты, страхует разработчиков и облегчает планирование продактам.
ТОП-5 вопросов ручных тестировщиков про автоматизацию
Всем привет! Я Оля, тестировщик мобильных приложений в hh.ru. У нашей команды есть влог на ютюбе, где мы рассказываем о том, как разрабатывается наша мобилка. Теперь мы начинаем рассказывать еще и о том, как все эти разработки тестируются. Для заинтересованных мы создали отдельный плейлист, в котором будем рассказывать о тестировании и автоматизации.
В этой статье мы отвечаем на 5 самых популярных вопросов ручных тестировщиков про автоматизацию. Видеоверсию можно посмотреть тут.
ТОП-5 вопросов менеджера про автоматизацию
Всем привет! Я Оля, тестировщик мобильных приложений в hh.ru. Ранее мы уже выпустили статью с ответами на вопросы ручного тестировщика про автотесты (а также в формате видео). Продолжаем серию ответов: в этой статье мы ответим на 5 самых популярных вопросов менеджера про автотесты. Расскажем о том, сколько времени и ресурсов будет потрачено на автоматизацию, и как скоро она начнет приносить пользу. Видеоверсию можно посмотреть тут.
Код без тестов — легаси
Если вы работаете в IT, то о легаси вы слышите часто — обычно с множеством негативных коннотаций. Понятно, что это не «хороший код», но какой? Может старый, может не поддерживаемый или не обновляемый, а может просто чужой? Есть ли «полноценное» определение «легаси», на которое можно ссылаться? А когда разберемся — что нам делать с легаси? Попробуем разобраться.
Тесты должна писать разработка (?)
Дисклеймер: меня зовут Эрик Бурыгин, я давно работаю тестировщиком, веду студентов на курсе «Инженер по тестированию», поэтому может показаться, что тестировщик просто хочет перекинуть кусок работы на разработчиков. На самом деле у описываемого подхода есть как плюсы, так и минусы, поэтому статья носит в том числе и дискуссионный характер. Буду рад увидеть в комментах мнения как разработчиков, так и тестировщиков.
Если тесты пишет разработка, можно решить сразу несколько проблем, например:
- Ощутимо ускорить релизный цикл.
- Снять нагрузку с тестирования.
В большинстве команд процесс выглядит примерно так:
- Разработчик создаёт новые фичи и допиливает существующие.
- Тестировщик всё это тестирует и пишет различные тест-кейсы.
- Автоматизатор, оправдывая название должности, автоматизирует всё по написанным тест-кейсам из п.2.
Вроде бы всё выглядит просто.
Но в этой парадигме есть слабые места.
Автотесты – барское дело
Вам не нужны разработчики автотестов
В эпоху вселенского внедрения agile-методологий и Devops уже никто не сомневается в том, что регрессия должна быть автоматизирована. Особенно, если в компании идет речь о Continuous Delivery. Все кинулись хантить разработчиков автотестов, от чего рынок становится перегретым.
В этой статье я расскажу о том, что на самом деле разработчик автотестов — не такая уж и важная роль в команде. Они не нужны, особенно если вы внедряете у себя scrum. И все эти agile-ы и devops-ы можно внедрять и без этих людей. Так что если кто-нибудь вам скажет, что у них в команде все тестируют руками — потому что у них по каким-либо причинам нет разработчика автотестов — не верьте им. Они тестируют руками, потому что по-другому им лень. Или не умеют.
Как технический долг убивает ваши проекты
Каждый проект требует жертвы. Главное, чтобы не слишком большой. Команда Mail.Ru Cloud Solutions перевела статью Алекса Стейвли про минусы технического долга и его способность уничтожить даже самый успешный проект. Предупреждение автора: в этой статье не так много практики, как хотелось бы, но она может натолкнуть на размышления.
Технический долг и места его обитания
Эта статья — вольный пересказ доклада, который я посетил на конференции GOTO Berlin 2017: A Crystal Ball to Prioritize Technical Debt.
Изображения из доклада и права на них принадлежат автору @AdamTornhill.
Каждый разработчик в принципе понимает, что такое технический долг. Что в его проекте этот долг наверняка присутствует. Если повезет, он вспомнит несколько кусков кода, которые давно просятся быть переписанными.
Но как формализовать понятие технического долга, чтобы объяснить его другим? И, тем более, объяснить это менеджеру так, чтобы получить одобрение на рефакторинг? Как найти все места в проекте, которые нужно по-хорошему переписать, и как определить, какие из них должны быть переписаны в первую очередь?
Если эти вопросы неоднократно у вас возникали, прошу под кат.
KPI, или пособие по командному самоубийству
- 68338 километров на поездки.
- 72 человеко-часа на почтовую переписку.
- 423 человеко-часа на эксперименты с коллективом в 30 человек.
- 88 часов на подготовку докладов и выступления на конференциях.
- 17 чашек кофе на беседу с мудрыми людьми на афтепати.
- Порядка 25 часов на набор этого текста и правку багов в нем :).
- До смерти замученный копирайтер, который был вынужден разбирать мои черновики, аудиозаписи и вообще ему спасибо.
Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.
Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).
Смысл такого подхода: платить по справедливости. На сколько наработал — столько и получил. Это честно, это логично, это — прекрасно!
Ну, логично же, что:
- Продажникам нужно назначать процент с оборота. Волки должны быть голодными. (Да, есть альтернативное мнение, что применить такой подход — значит «обложить себя дополнительным налогом». Но как по мне — тут все справедливо :-)).
- Офисному планктону — ставить оклад. Стабильность для них — ооочень важное условие существования.
А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.
Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:
Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
Эти безумные KPI
Любите ли вы KPI? Полагаю, скорее всего, нет. Трудно найти человека, который не пострадал от KPI в том или ином виде: кто-то не дотягивал до целевых показателей, кто-то столкнулся с субъективной оценкой, а кто-то поработал, уволился, но так и не смог узнать, из чего состояли те самые KPI, которые в компании даже упомянуть боялись. И вроде бы хорошее дело: в показателе тебе транслируют цель компании, ты делаешь всё для её достижения, в конце месяца получаешь премию или другой бонус. Прозрачная игра, честные ставки. Но нет, KPI превратились в страшного и неудобного монстра, который то и дело норовит подстегнуть нерадивых, но при этом ничего не даёт исполнительным сотрудникам. Что-то с этими показателями не так!
Спешу сообщить: если вы не любите KPI, в вашей компании их просто не умеют готовить. Ну или вы разработчик.