А-П

П-Я

 


• Благодарите за труд
Это можно делать на собраниях или при личных встречах с отличившимися. Подумайте о специальных футболках, подарках и других наградах за особые заслуги. Непременно позаботьтесь, чтобы все работающие сверхурочно ощущали признательность за свой труд. Не забывайте и об их семьях. Все это отражается в первую очередь на них, и следует найти способ отблагодарить членов семей сотрудников за их жертвы.
Общие проблемы и решения
Далее обсуждается ряд типичных проблем и вопросов, возникающих при использовании описываемых здесь методик, а также их решения.
Вы уверены, что завершили эту работу?
Вас никогда не спрашивали на контрольном собрании: «Вы уже закончили работу над Х?» На самом деле это очень расплывчатый вопрос, однозначный ответ на который дать очень трудно. Означает ли это, что код написан и его можно скомпилировать? Или реализованная функция нормально работала пару раз, когда вы пытались использовать её? А, может быть, выполнено блочное тестирование программы на всех поддерживаемых платформах и конфигурациях? А что это означает для тестировщиков из соседнего отдела? Обязательно заведите для себя определение «законченной» работы, и ознакомьте с ним всех, иначе вы запросто обнаружите людей, в поте лица работающих над тем, что вы «закончили» несколько недель назад.

Борьба с нехваткой оборудования
Один из главных грехов фазы исполнения проекта — задержка работы из-за «нехватки оборудования». Если разработчику понадобится более ёмкий жёсткий диск, техническому писателю — новая мышь, а тестировщику — программа для мониторинга, следует доставить их немедленно. Никакие мелочи и пустяки не должны задерживать работу над проектами или снижать эффективность команды. Менеджер проекта должен неусыпно заботиться о личных нуждах, проблемах и потребностях каждого члена группы.
Из собственного опыта
В преддверии выпуска последней бета-версии одного из продуктов NuMega нам приходилось работать все ночи и выходные напролёт. К сожалению, нельзя сказать, что наш сервер был с нами солидарен: в течение дня он постоянно зависал без видимых причин, останавливая при этом всю сеть. В результате мы не могли проводить сдачу разработанных фрагментов ПО и делать контрольные сборки, что просто убивало нашу производительность.
Проблемы продолжались в течение двух недель — чтобы избавиться от них, мы перепробовали все возможные средства. Наконец, мы подумали, что сервер перегревается, так как он стоял в старом помещении в самом центре здания (мы ведь только начинали!). Возможно, там плохая вентиляция, думали мы. На следующий день мы купили большой вентилятор на стойке и пару дней обдували им сервер, но — увы! — он продолжал виснуть.
Наконец мы поумнели настолько, что просто купили новый сервер. Если бы мы догадались поменять его в первые два дня, то смогли бы сэкономить три недели работы, времени и усилий.

Навёрстывайте упущенное
Хотя мало кто будет спорить с тем, что выдерживать внутренние сроки очень важно, они не помогут составить план действий при угрозе срыва конечной даты. Если что-то пошло не так, нужно внести коррективы, чтобы вернуть проект на намеченный путь. Это ещё одна ситуация, когда менеджер проекта зарабатывает свой хлеб. Непременно контролируйте ход проекта по внутренним контрольным точкам, а если при исполнении промежуточных этапов не удаётся уложиться в срок, предпринимайте соответствующие действия.
Миритесь с недостатками своих сотрудников
Человек несовершенен. Не исключено, что придётся столкнуться с людьми, которые не желают верить в существование проблем или дают рекомендации на основе неполной информации. Спесь, как и застенчивость, утомление, истощение сил или личные проблемы могут стать причиной разных трудностей. Поддерживая работу над проектом в нужном русле, приходится иметь дело не только с технологиями, но и с человеческими недостатками. Изучите сильные и слабые черты характера каждого участника группы и обязательно руководствуйтесь этими сведениями, принимая решения.

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

Элементы программы бета-тестирования
Мы проанализируем ключевые элементы бета-тестирования и рассмотрим, что необходимо сделать для максимального повышения эффективности этого процесса в группе.
Начало программы бета-тестирования
Прежде чем приступать к набору первых бета-тестеров, надо решить ряд простых, но важных вопросов.
• Каковы основные черты вашего бета-тестера?
Определите профиль потенциального пользователя вашей программы. Какими навыками он должен обладать, какой опыт работы с подобными продуктами в данной отрасли ему нужен? Какие технологии, конфигурации и платформы должны быть ему доступны? Сколько времени и усилий потребуется от бета-тестеров на испытание программы?
• В чём основная цель программы бета-тестирования?
Независимо от того, начинаются ли испытания основного или неосновного выпуска ПО, нужно, чтобы люди сосредоточились на испытании ключевых функций программы, находящихся в разработке. Принципы работы этих функций должны быть ясны всем бета-тестерам, чтобы они смогли лучше проанализировать и оценить ПО.
• Сколько бета-тестеров потребуется?
Количество бета-тестеров критично для эффективности программы бета-тестирования. Если их слишком мало, то и информации будет собрано немного, а если их число чересчур велико, то можно не справиться с администрированием, управлением и поддержкой всех пользователей, что вызовет у бета-тестеров ощущение беспомощности и приведёт к потере важной информации. Как правило, лучше привлекать на 30% больше бета-тестеров, чем по расчётам понадобится для испытания программы. Это позволяет подстраховаться от неизбежных накладок, возникающих, когда бета-тестеры неэффективно работают или вообще прекращают тестирование.
Обычно в первой фазе бета-тестирования задействовано меньше всего тестеров, так как продукт ещё не вполне готов для всесторонней оценки. К участию в первой фазе следует привлекать таких бета-тестеров, которые смогут справиться с проблемами и трудностями, а также помогут при отладке и диагностике ошибок. Однако во время третьей фазы к испытаниям программы должны присоединится все привлечённые для участия бета-тестеры.
• Каковы сроки программ бета-тестирования?
Продолжительность программы бета-тестирования также имеет решающее значение для её эффективности.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30