Рубрика «управление разработкой» - 19

Предлагаем вам перевод поста «Unit Testing is Overrated» от Alex Golub, чтобы подискутировать на тему юнит-тестов. Действительно ли они переоценены, как считает автор, или же являются отличным подспорьем в работе? Опрос — в конце поста

Юнит-тесты переоценены - 1


Результаты использования юнит-тестов: отчаяние, мучения, гнев

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

В процессе развития отрасли разработки ПО совершенствовались и методики тестирования. Они постепенно сдвигались в сторону автоматизации и повлияли на саму структуру ПО, порождая такие «мантры», как «разработка через тестирование» (test-driven development), делая упор на такие паттерны, как инверсия зависимостей (dependency inversion), и популяризируя построенные на их основе высокоуровневые архитектуры.

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

Однако, несмотря на существование различных подходов, современные «best practices» в основном подталкивают разработчиков к использованию конкретно юнит-тестирования. Тесты, область контроля которых находится в пирамиде Майка Кона выше, или пишутся как часть более масштабного проекта (часто совершенно другими людьми), или полностью игнорируются.

Преимущество такого подхода часть поддерживается следующим аргументом: юнит-тесты обеспечивают в процессе разработки наибольшую полезность, потому что способны быстро отслеживать ошибки и помогают применять упрощающие модульность паттерны разработки. Читать полностью »

Наверное многие помнят скандальное заявление Грефа о том, что Сбербанку программисты не нужны: “У нас огромное количество программистов, с которыми мы боремся”. Давайте проанализируем откуда такие заявления взялись и чем все это закончилось.

Как Греф с программистами боролся - 1

Читать полностью »

Нет, не пРомолчать, просто помолчать. Недолго, максимум — несколько минут. Нет, не чтобы собраться с мыслями. И не всем. Сейчас объясню.

Надо помолчать

На работе я часто обсуждаю сложные задачи с коллегами. Например, про дизайн языка в Котлине или про стратегию продукта в Альтере. И мне приходят в голову решения. Часто очень быстро, прямо сразу. И много лет я просто сразу их и высказывал. Потому что я придумал решение, и рад, и горжусь, потому что так же быстрее найдем решение, что мое решение мне нравится, потому что хочется, чтобы все видели, как я быстро соображаю, и т.д. А теперь я стараюсь так не делать. Стараюсь помолчать пару минут, чтобы остальные успели высказать свои идеи.

Почему я так делаю? Потому что со временем я заметил, что иначе я мешаю остальнымЧитать полностью »

Майки, деньги, два торта: как мы разучились оценивать задачи - 1

Привет! Меня зовут Артём и я тимлид в Skyeng. У моей команды разработки есть заказчик, он же продуктовый менеджер, он же просто Ваня. Ваня считает, что наша схема с оценкой задач не идеальна. Например, оценка в 2 дня ничего ему не даёт. Свою задачу на проде он увидит через неделю или дней 10. Или больше. Или меньше.
Читать полностью »

Созвоны не решают никаких проблем. Они нужны только людям, которые не умеют писать код - 1

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

Я подумал — ну окей, так, наверное, бывает не всегда. С тех пор прошло лет 5, я не раз менял работу, но везде и всегда созвоны были пустой тратой времени.

Читать полностью »

В конце есть краткое содержание.

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

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

А бомжи тупо снимают и ставят колёса. И, вроде, еще умеют их в мойку засовывать.

Схема простая. Приезжает человек переобуться, без предварительной записи. Видит – уже много машин стоит, и все вроде в работе. Расстраивается – придется развернуться и уехать, искать дальше… Но не тут-то было – подбегает управляющий, говорит – рады вас видеть, то сё, ща переобуем. Гена, Коля, тащите домкрат, обслуживайте клиента!

Подбегают бомжи и снимают одно или два колеса. Ну и всё, клиент в домике.Читать полностью »

MLOps — Cook book, chapter 1 - 1

Всем привет! Я CV-разработчик в КРОК. Уже 3 года мы реализуем проекты в области CV. За это время чего мы только не делали, например: мониторили водителей, чтобы во время движения они не пили, не курили, по телефону не разговаривали, смотрели на дорогу, а не сны или в облака; фиксировали любителей ездить по выделенным полосам и занимать несколько мест на парковке; следили за тем, чтобы работники носили каски, перчатки и т.п.; идентифицировали сотрудника, который хочет пройти на объект; подсчитывали всё, что только можно.

Я все это к чему?

В процессе реализации проектов мы набили шишки, много шишек, с частью проблем вы или знакомы, или познакомитесь в будущем.

Моделируем ситуацию

Представим, что мы устроились в молодую компанию “N”, деятельность которой связана с ML. Работаем мы над ML (DL, CV) проектом, потом по каким-либо причинам переключаемся на другую работу, в общем делаем перерыв, и возвращаемся к своей или чужой нейроночке.

  1. Наступает момент истины, нужно как-то вспомнить на чем ты остановился, какие гиперпараметры пробовал и, самое главное, к каким результатам они привели. Читать полностью »

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

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

Что делать, если в вашей команде появился «эффективный» менеджер? - 1

Читать полностью »

15 июня в нашем инстаграм-аккаунте прошел прямой эфир с Ильей, руководителем фронтенд-разработки в Яндекс.Деньги. Выкладываем запись эфира и расшифровку.

Как стать тимлидом фронтендеров и как жить после этого — расшифровка эфира - 1

Меня зовут Илья, я работаю в компании Яндекс.Деньги и руковожу фронтендом. До этого был бэкенд-разработчиком, писал на C#, около 5 лет назад перешел во фронтенд. Чуть больше года руковожу. Вот такой путь развития. Еще активно участвую в Burning Lead – это сообщество для ведущих разработчиков, тимлидов, людей, которые так или иначе пересекаются с задачами управления; надеюсь, ребята из сообщества слушают стрим.Читать полностью »

Как устроена индустрия лицензирования кино? Почему Okko так лагает на PS4? - 1

9 июня в нашем инстаграм-аккаунте прошел прямой эфир с CTO Okko Алексеем Голубевым и вышла настоящая прожарка — 99% вопросов составила критика сервиса.
Из-за этого получился скорее более продуктовый рассказ, чем технический, но по сложившейся традиции, мы выкладываем все расшифровки и записи эфиров.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js