вторник, 21 декабря 2010 г.

Правильный багрепорт 2: точность описания и исследование проблем

Разработчики любят понятные багрепорты, четко описывающие, в чем заключается проблема. С понятным и простым сценарием воспроизведения. С логами, относящимися к описываемой проблеме. С дополнительными данными, доказывающими, что дело не в кривой настройке окружения. Идеальный багрепорт - тот, прочитав который разработчик сразу знает, что нужно починить (по крайне мере на уровне бизнес логики). Идеал редко достижим, но можно к нему стремиться. Если разработчики редко жалуются на недостаток (или, наоборот, избыток) информации в багрепортах, то мы на верном пути.

В прошлом посте про качество багрепортов я писал, как не забыть упомянуть в описании проблемы важную информацию, которая в момент описания бага кажется очевидной (для тестировщика, находящегося в контексте собственных действий). Я тогда предлагал простое техническое решение, которое напоминало, что помимо самой проблемы нужно еще упомянуть ряд параметров окружения и ожидания тестировщика от поведения приложения. Однако подобным образом можно перечислить только небольшой набор самых общих параметров, упоминание которых необходимо, но зачастую недостаточно для исследования/понимания сути проблемы. Набор данных, которые стоит упомянуть в описании проблемы, разнится от проблемы к проблеме - где-то достаточно сделать скриншот, где-то нужно добавить логи, нередко и в базу данных заглянуть полезно. Как же понять, что писать, а что нет? Ведь избыток информации тоже может запутать разработчика.

четверг, 16 декабря 2010 г.

Авралы как производная от качества планирования

Долгое время я считал авралы/переработки делом обычным - как в IT без этого? Но со временем я стал задумываться и понял, что все не так просто. В целом, понятно, что аврал - производная от планирования. Если мы что-то хотим сделать, но не успеваем, то приходится работать дополнительно по вечерам и/или в выходные. Нюанс в том, почему сложилась такая ситуация. Я выделил для себя три причины авралов со следующими условными названиями: ошибка планирования, тенденция планирования и отсутствие планирования.

Подробнее о каждом из типов.

вторник, 14 декабря 2010 г.

Аттестация в жизни технического человека.

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

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

среда, 1 декабря 2010 г.

[HDI] Увеличение своп-файла Linux без изменения разделов диска

Если вдруг потребовалось увеличить swap раздел на Linux'овой машинке, а править текущее разбиение диска на разделы не хочется, то можно поступить так:

# dd if=/dev/zero of=/var/swap bs=1M count=1048
# chmod 0 /var/swap
# mkswap /var/swap
# echo "/var/swap none swap defaults 0 0" >> /etc/fstab
# swapon -a


Собственно, тут создается файл, который в дальнейшем используется как swap-раздел.
Ключевой момент тут count=1048 - этот параметр определяет, какого размера файл будет создан.

P.S. честно своровано отсюда

Статистика дефектов. Спросите "Почему?"

Во многих наученых горьким опытом командах разработки ПО принята практика "постмортемов" (postmortem) - анализ удач и провалов по завершении проекта или очередного этапа проекта. Существуют разные подходы к такому анализу. Где-то опрашивают всех участников процесса разработки, где-то только ключевых людей. Где-то больше склонны обсуждать успехи, а где-то провалы. Где-то спрашивают личное мнение, где-то основываются прежде всего на статистике.

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

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