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