Как персонал QA должен точно составлять оценки? - PullRequest
3 голосов
/ 30 июня 2010

На моей последней работе я работал с компанией, которая переходила от НЕТ методологии к использованию метода Scrum / Agile. Было много проблем, в том числе тот факт, что «эксперт» по Scrum действительно не знал, как эффективно применять Scrum.

План, который они использовали, был относительно прост:
1. Начните совещания по планированию спринта, на которых оценка QA и времени разработки была одной оценкой - не одна для времени QA, а одна для времени Dev.
2. Когда оценка времени достигла общего значения для спринта, к этому спринту больше не добавлялись функции.

Основная проблема заключалась в том, что QA обычно не знает, КАК разработчик собирается писать код ... в конце концов, они не кодеры! Таким образом, команды QA действительно не имели оснований для того, чтобы сформировать достойную оценку времени. И наоборот, 99,9% разработчиков не знают разницы между проверкой работоспособности, проверкой функциональности, регрессионным тестированием и UAT-тестированием ... поэтому они не могли точно оценить, какое время QA потребуется для определенных функций.

В конечном счете я взял пулю для своей команды QA и отнес это беспокойство к руководству, где меня быстро уволили за то, что я не мог работать в среде Scrum, но это действительно ни здесь, ни там.

Но это заставляет меня задуматься, в чем здесь ошибка. Было ли это моей проблемой - быть жестким и хотеть сложного времени, или это ожидание того, что QA должно по своей сути знать, сколько времени что-то должно занять для кодирования?

Ответы [ 4 ]

4 голосов
/ 30 июня 2010

Я был в QA и Dev. Процесс на самом деле не сильно отличается в любом мире, потому что он сводится к простой вещи: все оценки являются догадками. Они основаны на опыте, догадках и оценке сложности и риска определенного набора проблем, но в лучшем случае они являются хорошими догадками.

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

Выясните, как часто вам нужно запускать эти тесты в запланированные сроки. Запустите множитель, основываясь на вероятности ошибки (1,5х, 2,0х, иногда 3,0х) на вашем суждении и относительной важности правильного определения. Если действительно важно, чтобы одна функция была хорошо протестирована, и менее важно, чтобы другая функция была хорошо протестирована, скорректируйте свои оценки соответствующим образом, но определите это предположение в своей оценке.

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

Agile не сильно меняет уравнение; это немного меняет график времени. Хорошая идея - убедиться, что есть небольшой запас для тестирования в конце цикла, несмотря на догму против него, потому что вам также нужно время для решения проблем, которые неизбежно возникнут. Но вам не нужно превращать это в «мини-водопад»; Разработчики могут продолжать работать в том маловероятном случае, когда все функции работают, потому что они всегда могут начинать выбирать задачи, которые имеют более низкий приоритет в итерации.

Интересно, а в вашем случае, команда разработчиков делала оценки времени QA от вашего имени? Обычно не очень хорошая идея позволять кому-то другому звонить по этому вопросу. Люди с наибольшим количеством скинов в игре должны иметь наиболее взвешенное мнение. Но многие разработчики могут сделать довольно хорошие оценки рисков, поэтому, безусловно, стоит их послушать. В Agile циклах разработки исключительная роль в идеале должна быть меньше, чем в командах Waterfall, но я совершенно уверен, что некоторые люди просто лучше справляются с задачами QA, и они, естественно, отбирают большую часть этой работы, даже в команде, которая пытается ходить по идеологии Agile. Если ваша проблема заключалась в том, что вы не хотели делать оценки, не зная деталей реализации, я могу сказать, что это то, что вам нужно преодолеть; даже в методологиях старой школы я редко мог позволить себе роскошь полного знания.

Я хотел бы добавить следующее: люди с талантом QA должны быть в тех же командах, что и их коллеги по разработке. Это нормально, если их профессиональное развитие управляется другим менеджером, но не хорошо, если они являются частью разных спринтерских команд. Так что, если у вас есть «спринт команды тестирования» и «спринт команды разработчиков», по моему скромному мнению, вы наносите ущерб потенциалу для сотрудничества и общения между ресурсами Dev и QA.

0 голосов
/ 30 июня 2010

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

0 голосов
/ 30 июня 2010

Что я нашел, чтобы работать хорошо, так это сместить циклы разработки / тестирования.Таким образом, вы кодируете в одной итерации, а затем QA в следующей.Это дает команде QA время для правильного определения объема работ и не основывает их оценку на оценке разработчиков.

0 голосов
/ 30 июня 2010

Полагаю, вы общаетесь друг с другом и рассчитываете время между двумя командами, которое затем отправляете в mgmt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...