Книга Agile: Оценка и планирование проектов, страница 77. Автор книги Майк Кон

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Agile: Оценка и планирование проектов»

Cтраница 77

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

— Ну так давайте оценим ее, — сказал Аллан.

— Погодите, — вставил слово Прасад, — как мы будем тестировать это? Похоже, тестирование окажется сложным делом.

— Хороший вопрос, — сказал Карлос. — Какие будут соображения? — Он обвел взглядом присутствующих.

— Один из способов — идентифицировать группу позиций, посмотреть, что предлагает движок, и спросить у какого-нибудь хорошего игрока, насколько хороши эти ходы, — сказала Роуз.

— Звучит хорошо. А можно ли это автоматизировать? — спросила Делани. — Нам нужно автоматизировать тестирование так, чтобы, если движок начнет генерировать странные ходы, как наша Deep Black & White в апреле, мы сразу узнали об этом.

— Абсолютно согласен, — заметил Прасад. — Мы можем создать файл, который описывает позиции на доске и потом говорит, как компьютер должен реагировать.

— Приемлемых ходов может быть несколько, — сказал Аллан. — Этот файл должен допускать определение нескольких хороших ответов.

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

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

— Аллан, ты ведь должен был поднять одну карту, а не все сразу. Тебе трудно принять решение?

— Нет, просто у меня не нашлось карты с достаточно большим числом, поэтому я и поднял их все. Все эти карты, — программист показал карты с цифрами 1, 2, 3, 5 и 8, — в сумме дают 19. Это, на мой взгляд, и есть правильная оценка.

— У меня есть карты и с большими числами — 13, 20, 40 и 100, — сказал Карлос и раздал всем дополнительные карты. — Я надеялся, что они не понадобятся нам, однако их тоже можно использовать.

— А почему ты надеялся, что они не понадобятся?

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

— Итак, Аллан, ты даешь этой истории 19. Уверен? — спросила Саша, глядя на восьмерку в своей руке.

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

— Ну, тебе виднее. Но 19 — слишком много, — сказала Саша.

— Прасад, почему ты считаешь, что должно быть три? — спросил Карлос, фокусируя внимание на оценщиках с предельными значениями.

— Тестирование не кажется мне сложным. Не думаю, что с ним придется много возиться. Я создам текстовые файлы для тестирования, и все.

— Конечно, но ведь мы оцениваем историю в целом, а не твою часть работы с нею. Тестирование, может быть, и тянет только на тройку, однако нужно учитывать и время, которое потребуется Аллану, — пояснил Карлос.

— Вот незадача! Тогда Аллан прав, — сказал Прасад. — Это большая история.

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

На всех картах в этот раз было 20.

— Похоже, ты всех убедил, Аллан, — сказал Карлос. — Двадцать, однако, великовато для одной истории. Аллан, нельзя ли как-то разбить эту историю? Может быть, для начала достаточно слабого движка? С последующей доработкой перед поставкой?

— Не представляю, как это сделать, — сказал Аллан, задумался на мгновение и продолжил. — Можно, конечно, сделать так, чтобы движок каждый раз выбирал наступательный ход в стремлении построить свою фигуру независимо от ходов игрока. Но, на мой взгляд, это не очень хорошая идея.

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

— Без проблем. Это может сработать. Поэтому давайте разобьем нашу историю на три части по числу фигур.

Все согласились и оценили эти три истории, как показано в табл. 23.4.


Agile: Оценка и планирование проектов

— Когда это была одна история, мы ее оценивали в 20 пунктов. Теперь оценка составляет 21. Нужно ли снять один пункт с какой-нибудь истории, чтобы оценка осталась на уровне 20? — спросил Фрэнк.

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

— Аллан, а как мы поступим с движками среднего и высокого уровня? На твой взгляд, в каждом случае должна быть одна история или их тоже нужно разбить на кольца, мосты и вилки?

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

— Так как бы ты сформулировал это в виде историй? — спросил Фрэнк.

— Я думаю, так: «Как игрок я могу играть против движка среднего уровня», — сказала Делани.

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

Вход
Поиск по сайту
Ищем:
Календарь
Навигация