Текст книги "Время — деньги. Создание команды разработчиков программного обеспечения"
Автор книги: Эд Салливан
Жанры:
Программирование
,сообщить о нарушении
Текущая страница: 17 (всего у книги 19 страниц)
В том, что результаты бета-тестирования становятся определяющими при формулировании основных требований к программе. Не следует использовать программу бета-тестирования для поиска функций, которые должны быть реализованы в программе, чтобы обеспечить её успех. Так подбирать функции уже слишком поздно, их нужно было определить на этапе формулирования требований и коммерческого анализа программы (см. главу 9). Если стало ясно, что программа обречена на провал на рынке, не старайтесь впихнуть новые функции в продукт, который вот-вот будет закончен. Возьмите тайм-аут и обсудите возможные альтернативы: может, лучше начать всё с самого начала, составив новый набор требований и план?
Помните: цель программы бета-тестирования – испытание и усовершенствование продукта, поиск идей на будущее и помощь в продвижении продукта на рынке. Во время работы с бета-версией идёт сбор отзывов о реализации функций, возможных улучшениях, практичности и качестве программы. Кое-что из этого ещё можно изменить, но для добавления новых сложных функций этот период совершенно не годится.
Типы программ бета-тестированияПрограмма бета-тестирования обычно состоит из нескольких фаз. Каждая последующая фаза включает в себя все большую группу пользователей, и результатом её является все более сложный и стабильный продукт. Несмотря на отсутствие формального определения фаз программы бета-тестирования, принятого в отрасли, приведённое ниже описание поможет составить общее представление о каждой фазе.
• Фаза 1
К началу этой фазы должно быть написано 60-80% кода. Задача этой фазы – как можно скорее передать основные функции программы для испытаний лучшим бета-тестерам.
Допустим, первую фазу решено начать уже после завершения основных функции. В программе пока нет поддержки печати, реализована лишь малая часть справочной системы, нет сложных алгоритмов сортировки, фильтрации и функций пользовательского интерфейса. Однако продукт уже пригоден для работы, и отзывы окажут существенную помощь при тестировании и доводке его функций.
На этом этапе ещё есть время для внесения небольших, но важных изменений. Это вполне обычная практика, в ней нет ничего неожиданного. Необходим подходящий момент для улучшения ПО на основе отзывов клиентов и углублённого понимания продукта. Однако нужно быть уверенным, что изменения не нарушат плана и не снизят качества продукта. Если такой уверенности нет, подумайте, перевесит ли выгода от реализации новых функций затраты на расширение плана.
• Фаза 2
К началу второй фазы код продукта готов на 100%. Все функции, которые намечено реализовать в окончательном выпуске продукта, запрограммированы и работают. Хотя существенно менять какие-либо функции не планируется, некоторые изменения всё же можно внести, если они действительно важны и не влекут за собой серьёзного риска. В этом случае тоже необходима уверенность в отсутствии негативного влияния изменений на исполнение плана проекта или качество продукта.
• Фаза 3
В начале этой фазы функции продукта приобретают окончательный вид. Изменений возможностей программы или набора её функций не планируется. Согласно плану, внешний вид программы получит здесь окончательную форму, никаких важных изменений пользовательского интерфейса не ожидается. Набор функций блокируется, и группа концентрируется на повышении качества, производительности и «шлифовке», необходимой для успеха хорошей программы. На этом этапе задачей всей группы является подготовка продукта к коммерческому использованию путём тестирования, исправления ошибок и приведения документации к окончательному виду.
• Маркетинговое бета-тестирование
Это особый тип программы бета-тестирования, в рамках которой потенциальные клиенты получают ПО, чтобы оценить, насколько оно соответствует их потребностям. Маркетинговое бета-тестирование особенно важно, когда новая программа даст клиентам существенные, потенциально революционные возможности, а также в случае продукта, имеющего большое значение для роста продаж компании. В таких ситуациях имеет смысл продемонстрировать клиентам успехи при создании продукта и спектр возможностей, которые они получат после его завершения.
Поскольку важно произвести положительное впечатление на клиентов, не спровоцировав у них необоснованных ожиданий, лучше использовать для маркетингового бета-тестирования одну из поздних бета-версий продукта (вторую или третью). Таким образом, можно быть уверенным, что клиенты увидят высококачественное и технически совершенное ПО.
Из собственного опыта
Когда работа в NuMega вступала взавершающие фазы бета-тестирования, мы всегда рассылали копии тем, кто «делает погоду» в отрасли. В этот список входили наши партнёры, основные производители, специализированные издания и аналитические службы, занятые в отрасли. Прежде всего мы хотели, чтобы ПО было свободно доступно каждому, кто может способствовать нашему успеху. Это было маркетинговое бета-тестирование в полном смысле этого слова, так как мы не ждали (и даже не хотели!) извещений о каких-либо ошибках или затруднениях, Этот очень эффективный способ позволил донести наше имя и нашу продукцию до людей, способных к содействию в нашем деле.
Элементы программы бета-тестирования
Мы проанализируем ключевые элементы бета-тестирования и рассмотрим, что необходимо сделать для максимального повышения эффективности этого процесса в группе.
Начало программы бета-тестирования
Прежде чем приступать к набору первых бета-тестеров, надо решить ряд простых, но важных вопросов.
• Каковы основные черты вашего бета-тестера?
Определите профиль потенциального пользователя вашей программы. Какими навыками он должен обладать, какой опыт работы с подобными продуктами в данной отрасли ему нужен? Какие технологии, конфигурации и платформы должны быть ему доступны? Сколько времени и усилий потребуется от бета-тестеров на испытание программы?
• В чём основная цель программы бета-тестирования?
Независимо от того, начинаются ли испытания основного или неосновного выпуска ПО, нужно, чтобы люди сосредоточились на испытании ключевых функций программы, находящихся в разработке. Принципы работы этих функций должны быть ясны всем бета-тестерам, чтобы они смогли лучше проанализировать и оценить ПО.
• Сколько бета-тестеров потребуется?
Количество бета-тестеров критично для эффективности программы бета-тестирования. Если их слишком мало, то и информации будет собрано немного, а если их число чересчур велико, то можно не справиться с администрированием, управлением и поддержкой всех пользователей, что вызовет у бета-тестеров ощущение беспомощности и приведёт к потере важной информации. Как правило, лучше привлекать на 30% больше бета-тестеров, чем по расчётам понадобится для испытания программы. Это позволяет подстраховаться от неизбежных накладок, возникающих, когда бета-тестеры неэффективно работают или вообще прекращают тестирование.
Обычно в первой фазе бета-тестирования задействовано меньше всего тестеров, так как продукт ещё не вполне готов для всесторонней оценки. К участию в первой фазе следует привлекать таких бета-тестеров, которые смогут справиться с проблемами и трудностями, а также помогут при отладке и диагностике ошибок. Однако во время третьей фазы к испытаниям программы должны присоединится все привлечённые для участия бета-тестеры.
• Каковы сроки программ бета-тестирования?
Продолжительность программы бета-тестирования также имеет решающее значение для её эффективности. Хотя бета-тестирование, как правило, стремятся максимально сократить (чтобы быстрее отправить продукт заказчику), не следует урезать её настолько, чтобы лишиться преимуществ, которые она даёт.
Из собственного опыта
Поскольку в NuMega работают компетентные специалисты по технической поддержке и администратор бета-тестирования, мы могли проводить довольно большую программу бета-тестирования, приглашая до 200 бета-тестеров, которые помогали охватить широкий спектр приложений и платформ при испытаниях ПО. К тому же такое большое число участников бета-тестирования позволяло подстраховаться на случай отказа от участия или выхода из программы части бета-тестеров. Бета-тестеры играют очень важную роль в обеспечении качества выпускаемой нами продукции. Нам никогда бы не удалось воспроизвести все разнообразие окружений и конфигураций, используемых бета-тестерами, внутри компании, поэтому наша признательность бета-тестерам безгранична.
Продолжительность программы бета-тестирования зависит от вашей специализации, занимаемой на рынке ниши и сложности ПО. Потому не существует правил, применимых к любому случаю. Тем не менее мы обнаружили, что месяца более чем достаточно для проведения любой фазы бета-тестирования (в общей сложности вся программа занимает 3 месяца). За месяц бета-тестеры успевали поработать с продуктом и дать отзыв о нём. Первая фаза бета-тестирования особенно ценна тем, что позволяет вести испытания программы в параллели с разработкой. Вторая и третья фазы, посвящённые небольшим изменениям и исправлению ошибок, играют важную роль в повышении качества продукта по мере приближения срока начала поставок. Поскольку, начиная со второй фазы, набор функций программы был «заморожен», оставалось целых два месяца на повышение качества, производительности и «шлифовку» программы.
Набор бета-тестеровПервым этапом любой программы бета-тестирования является поиск и привлечение бета-тестеров. Один из самых важных критериев для набора бета-тестеров – наличие у них личной заинтересованности в использовании и успехе ПО. При отборе наилучших бета-тестеров надо уделить особое внимание их мотивации. Вот наилучшие источники бета-тестеров:
• Потребители (внешние заинтересованные лица, внутренние конечные пользователи)
Чаще всего именно потребители больше всех заинтересованы в разработке нового продукта и поэтому могут стать прекрасными бета-тестерами. У них имеется законное желание наблюдать за разработкой продукта в соответствии с их потребностями и в их собственном окружении. Даже в отсутствие настоящих клиентов у вас наверняка найдётся несколько потенциальных клиентов, серьёзно заинтересованных в создаваемом вами ПО.
• Персонал технической поддержки
Другой замечательный источник бета-тестеров – группа технической поддержки. Клиенты часто звонят в службу технической поддержки, чтобы пожаловаться на ошибки или спросить, как работает та или иная функция программы. Если в бета-версии программы проблемы клиента будут решены (путём исправления ошибки или облегчения работы с программой), он также может быть заинтересован в том, чтобы стать бета-тестером программы.
• Посетители Web-узла компании Как правило, посетители корпоративного Web-узла интересуются продуктами компании, поэтому им также может быть интересно поучаствовать в бета-тестировании. Обязательно дайте эту возможность потенциальным пользователям, зарегистрировавшимся через Web. Этот способ позволяет существенно расширить штат бета-тестеров, однако надо убедиться в наличии у них достаточной для этого квалификации.
• Партнёры и союзники
Партнёры и поставщики компании также могут стать отличными бета-тестерами. При наличии деловых или технических связей с другими компаниями попробуйте привлечь их к бета-тестированию продукта. Взаимный интерес может быть достаточно велик, чтобы протестировать совместную работу продуктов.
Необходимо составить профили бета-тестеров, которых хотелось бы привлечь к участию в программе бета-тестирования. Например, желательно, чтобы часть бета-тестеров пользовалась локализованными версиями Microsoft Windows для тестирования продукта, предназначенного для японского, корейского и китайского рынков, а другая часть бета-тестеров работала на многопроцессорных системах. Не важно, какова формулировка задач, главное, чтобы при распределении их между бета-тестерами последние обеспечивали доскональную проверку ПО в соответствии с требованиями программы бета-тестирования.
Кроме того, перед получением ПО каждый бета-тестер должен подписать соглашение о неразглашении коммерческой тайны. Это соглашение поможет обеспечить конфиденциальность ПО и свести к минимуму потенциальную утечку информации к конкурентам.
Взаимодействие с бета-тестерами
Регулярный обмен с бета-тестерами достоверной и правдивой информацией имеет решающее значение для успеха программы бета-тестирования. Нужно заранее определить все ожидания и обеспечить своевременное решение любых проблем, а также удовлетворение любых потенциальных потребностей и запросов. Вот основные правила.
• Определите ожидания
Чётко обозначьте начало и конец бета-тестирования, проинформируйте бета-тестеров о новшествах в текущем выпуске ПО, заострив внимание на всех специфичных моментах, требующих проверки. Поставьте тестеров в известность о том, что желательно как можно скорее сообщать о найденных ошибках, а после завершении бета-тестирования – заполнить анкету. Дайте понять, что их отзывы представляют большую ценность и вы постараетесь как можно скорее устранить найденные неполадки.
• О серьёзных проблемах и найденных решениях должны знать все
Если какая-то важная часть программы не работает, дайте бета-тестерам знать о возникшей проблеме и что над её решением уже работают. Для этой цели лучше всего подходит электронная почта. Однако если требуется более интерактивное обсуждение трудностей, проблем и потребностей, надо подумать об открытии на вашем Web-узле специализированной телеконференции.
• Решайте проблемы по мере их возникновения
Бета-тестеры должны сообщать о своих трудностях и обнаруженных проблемах специализированному (и достаточно опытному) персоналу из группы поддержки. Если у вас пока нет группы поддержки, нужно выделить для работы с бета-тестерами одного из разработчиков. В любом случае нужно регистрировать возникшие затруднения и обнаруженные ошибки.
Также следует рассмотреть возможность создания или, если надо, покупки системы для обработки поступающих сообщений об ошибках, обнаруженных в бета-версии. Системы по обработке сообщений специально сконструированы для обработки обращений клиентов, желающих сообщить о возникших трудностях. Возможность следить за сообщениями, поступающими от бета-тестеров, регистрировать их адреса и контактную информацию, обстоятельства возникновения ошибки, частоту обращений и другие данные, а также взаимодействовать с группой технической поддержки представляет настоящую ценность. Эта задача превосходно решается с помощью систем обработки поступающих сообщений, в то время как большинство систем отслеживания ошибок с ней не справляется. Присланное пользователем сообщение об ошибке следует регистрировать в системе, только если оно достоверно и ошибка воспроизводится.
• Доводите решение проблемы до конца
Как правило, лучше выделить специального разработчика, который в прямом контакте с бета-тестером доведёт решение найденных проблем до конца. Прямое взаимодействие ускоряет процесс разрешения проблем и способствует упрочению связей между бета-тестерами и группой разработчиков. Кроме того, это прекрасная возможность для технических специалистов поближе познакомиться с клиентами, их проблемами и их манерой работы с программой.
• Не закрывайте глаза на проблемы бета-тестеров
Вам наверняка придётся столкнуться с проблемами, возникающими у бета-тестеров. Ваше ПО может повредить реестр их ОС, а программа удаления ПО может заодно стереть ключевые системные файлы. Обязательно проследите, чтобы под рукой всегда были нужные люди, способные разобраться с этими проблемами.
Оценка прогресса бета-тестирования
Чтобы облегчить начало программы бета-тестирования, бета-тестеры должны быстро получить и установить ПО. Это можно сделать, опубликовав ПО в Web или разослав его на CD-ROM. Если выбрать публикацию ПО в Web, можно отслеживать число скачиваний и сравнивать его с числом привлечённых бета-тестеров. С другой стороны, рассылка бета-версий на CD-ROM позволяет быть уверенным, что тестеры получат продукт целиком.
Когда ПО будет у каждого, проследите, чтобы все бета-тестеры работали с ним. В любом случае разумно обязать администратора бета-тестирования обзвонить или списаться по электронной почте с каждым бета-тестером, чтобы убедиться, что все они работают с ПО. Важно стимулировать усилия бета-тестеров и не дать им остановиться на полпути.
В начале поступления отзывов выделите самые распространённые трудности, с которыми пришлось столкнуться бета-тестерам. В частности, немедленного решения требуют проблемы, возникшие из-за ошибок при установке или из-за недостаточного качества, ставших причиной затруднений у значительной части бета-тестеров. Самыми подходящими кандидатами на эту роль являются администратор бета-тестирования и ведущий специалист технической поддержки, реагирующие на любые возникающие проблемы. Такие неполадки нужно устранить как можно скорее, иначе под угрозой окажется вся программа бета-тестирования и её польза для группы.
Завершение программы бета-тестирования
При свёртывании бега-тестирования обязательно попросите прислать сведения обо всех ошибках и трудностях, до сих пор оставшихся без внимания. Это также самое подходящее время, чтобы разослать бета-тестерам анкету, представляющую формальный план отзыва о работе продукта. С её помощью очень легко выяснить, насколько интенсивно и для каких целей использовался продукт, какие при этом возникли трудности и проблемы. Такая информация слишком часто остаётся в голове бета-тестера, а анкета – прекрасный способ выудить оттуда все ценные мысли и идеи, чтобы позже извлечь из них выгоду. Ниже приводятся примеры вопросов анкеты.
• Как долго использовался продукт?
• Удалось ли легко и быстро установить его?
• Помог ли продукт быстро решить ваши проблемы и достичь поставленных целей?
• Какая из функций программы оказалась самой полезной для вас?
• Какая из функций оказалась наименее полезной и почему?
• Какую из функций вам больше всего хотелось бы увидеть в следующем выпуске программы?
• Как можно было бы улучшить документацию или справочную систему ПО?
• Оправдала ли производительность продукта ваши ожидания?
• Собираетесь ли вы регулярно использовать продукт?
• Собираетесь ли вы стимулировать использование продукта в вашей группе? Почему?
• Порекомендовали бы вы его другим? Почему?
• Готов ли продукт? Если нет, то почему?
Обязательно поинтересуйтесь, нет ли у бета-тестеров комментариев для пресс-релизов. Оказалось, что авторами лучших отзывов о продуктах компании NuMega были именно участники бета-тестирования. Мы донесли эти отзывы до всех работников компании и клиентов и, конечно же, опубликовали.
Из собственного опыта
По окончании бета-тестирования мы в NuMega оцениваем эффективность каждого бета-тестера как высокую, среднюю или низкую. Лучшим бета-тестерам мы посылаем бесплатные программы, фирменные футболки и даже куртки. Средним достаётся только один подарок, а тех, кто не принимал заметного участия в тестировании, мы вовсе исключаем из программы. Со временем мы почувствовали, что можем положиться на наших бета-тестеров как в получении объективных отзывов, так и в испытании новых продуктов при работе над бета-версиями и кандидатами на выпуск.
Как-то раз мы выпускали бета-версию в пятницу около четырёх часов дня. Разослав бета-тестерам сообщения, мы уже готовились отправиться по домам, когда один из тестеров прислал ответ, где говорил, что отложил свидание лишь для того, чтобы увидеть наш новый выпуск! В тот же вечер он сообщил, что на первый взгляд новый выпуск неплох, но он ещё не успел полностью его изучить. Вот так порой сталкиваются преданность делу и личные дела!
Поощрение лучших бета-тестеров
По завершении бета-тестирования важно проанализировать, что прошло хорошо, а что – нет. В рамках этого анализа нужно оценить работу самих бета-тестеров. Необходимо выделить и поощрить тех, кто вовремя предоставлял ценную информацию. Если какие-либо тестеры вообще не предоставили никакой информации, от их услуг лучше отказаться, чтобы освободить место для новых участников.
Менеджер бета-тестированияКурирует бета-тестирование и управляет её исполнением. Поскольку программы бета-тестирования зачастую масштабны и сложны, эту работу должен выполнять штатный специалист. Это может показаться чересчур для такой работы, но с учётом ценности хорошо проведённого бета-тестирования, все затраты должны оправдаться с лихвой. В компетенцию менеджера бета-тестирования входит следующее:
• Определение целей и задач
Менеджер бета-тестирования должен следить за тем, что для программы бета-тестирования определены цели, профиль клиента, масштаб и продолжительность.
• Набор бета-тестеров
Менеджер бета-тестирования должен следить, чтобы к моменту выпуска бета-версии было набрано достаточно бета-тестеров, готовых принять участие в испытаниях программы. Очевидно, что любая задержка с набором достаточного числа бета-тестеров уменьшит объём и снизит качество получаемой информации.
• Распространение ПО
Менеджер бета-тестирования составляет и реализует план распространения ПО среди бета-тестеров как через Интернет, так и на физических носителях. Он должен обеспечить быструю и эффективную передачу ПО каждому бета-тестеру. Если решено распространять программы через сеть, надо убедиться в наличии линий связи и серверов, необходимых для поддержки большого числа одновременных обращений бета-тестеров. Если для распространения ПО выбран физический носитель, необходимо обеспечить достаточные производственные мощности для своевременного распространения ПО.
• Распространение сведений о состоянии бета-тестирования
Менеджер является информационным центром, снабжающим всех бета-тестеров сведениями о состоянии программы бета-тестирования. В частности, он объявляет начало и конец бета-тестирования, а также сообщает о новом доступном ПО. Он также является связующим звеном между бета-тестерами и группой создателей продукта, обеспечивая обмен важными сведениями, включая изменения в плане программы бета-тестирования, появление обновлений ПО, исправлений критических ошибок и передачу специальных запросов на отзывы.
• Управление результатами бета-тестирования
От менеджера во многом зависит успех программы бета-тестирования. Почти сразу после её начала он должен обзвонить бета-тестеров, чтобы проверить, получили ли они ПО и, если да, начали ли работать с ним. Менеджер бета-тестирования должен следить за успехами каждого бета-тестера и обязательно стимулировать отстающих, чтобы они установили ПО и приступили к работе.
• Завершение программы бета-тестирования
Менеджер должен так провести свёртывание бета-тестирования, чтобы не разочаровать тестеров, ещё не закончивших работу с продуктом. Менеджер запрашивает у тестеров их окончательные идеи, комментарии и сообщения об ошибках, а также обеспечивает их своевременное получение.
• Поощрение бета-тестеров
Бета-тестеры – чрезвычайно ценные участники проекта. Хороших тестеров необходимо поощрять, плохих – исключать из программы.