Сбор приемочных данных

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

На что это похоже

Это похоже на кооперативное модульное тестирование: вы по-прежнему пишете тесты, но кто-то другой сообщает вам правильные ответы.

Сохраняйте равновесие

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

Вы можете обнаружить (на компьютере или в руководстве пользователя) неизвестные прежде ошибки в старой системе или более серьезные проблемы, которые ранее не существовали.

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

23 Измеряйте фактическое продвижение

“Используй акты учета рабочего времени (time sheets) для отчета о состоянии работ. Они будут использованы для планирования работ по проекту. Заполняй по 40 рабочих часов в неделю, независимо от того, сколько времени ты потратил на эту работу в действительности.

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

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

Даже и без таймшитов, некоторые разработчики с трудом могут заставить себя сосредоточиться на выполнении задачи. Вам когда-нибудь приходилось слышать, как разработчик сообщает, что он на 80% выполнил свою задачу? Проходят дни, недели, а у него по-прежнему 80%. Это по меньшей мере бесполезно оценивать ход работы таким способом. Это то же самое, что говорить правду на 80% (если вы не политик, то правда (true) и ложь (false) являются булевыми состояниями). Вместо того чтобы пытаться оценить некую фиктивную степень “готовности”, попытайтесь определить, сколько еще вам осталось сделать до полного выполнения задачи. Если вы изначально отвели на выполнение задачи 40 часов, а спустя 35 часов работы вдруг поняли, что потребуется еще 30 часов, тогда это может служить важным показателем (честность играет здесь важную роль, нет смысла скрывать очевидное).

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

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

Удобно измерять продвижение, постоянно отслеживая задачи, которые еще осталось выполнить. Наилучший способ для этого ведение перечня задолженностей (невыполненных заказов).

Перечень задолженностей эго просто список задач, которые пока еще не выполнены полностью. Когда задача выполнена, она изымается из перечня (можно просто вычеркнуть или пометить ее как выполненную в общем списке задач). Когда появляются новые задачи, для них определяется приоритет и они добавляются в перечень. Можно вести индивидуальный список задач, список задач для текущей итерации и список для всего проекта. Используя список задач, вы всегда знаете, какая важная задача вас ждет на следующем шаге. Поскольку ваш опыт предварительной оценки со временем накапливается, с каждым следующим шагом вы все точнее оцениваете свои возможности.

Это мощная техника для отслеживания фактического прогресса в работе над проектом.

tel-icq