
Развертывание
Некоторые виды развертывания осуществить легче, чем другие. Развернуть Web-ориентированное приложение потенциально легче, чем инсталлировать клиент – серверное приложение, если не требуется установка сменных плат специализированных рабочих станций.
Полезное правило. Подготовка к развертыванию начинается на этапе формулирования требований, но в любом случае не позднее 2-го дня концептуального проектирования.
Производственная среда. До сих пор разработка и тестирование проводились в средах разработки и тестирования. Возможно, на этих этапах доступ к производственным средам и базам данных с данными бизнес – процессов заказчика ограничен. Для многих сфер деловой деятельности риск подвергнуть опасности реальные деловые или клиентские данные весьма высок, поэтому в процессе создания продукта ставится цель как можно точнее воспроизвести производственную среду в средах разработки и тестирования (как правило, между ними существуют некоторые незначительные отличия). Необходимость предустановленного ПО, внесение исправлений в существующую систему и различия в производственных базах данных иногда ускользают от внимания разработчиков.
Полезное правило. Неплохо попробовать осуществить примерное или тестовое развертывание продукта в производственной среде до начала реального развертывания, чтобы вскрыть серьезные проблемы со средой.
Прежде чем программный проект будет развернут на машинах пользователей, необходимо иметь в своем распоряжении все требуемые инфраструктуры и соответствующим образом сконфигурированные пользовательские машины.
Продолжение обсуждения проекта:
конструирование
Как обычно, проект находится в трудном положении. Проектирование завершено и пришло время доводить экраны прототипов до окончания сборки, компонентного тестирования, системного тестирования и развертывания. В вашем распоряжении осталась примерно половина проектного срока, чтобы завершить проект реализации, осуществить реализацию вплоть до компонентного и системного тестирования, а также интеграционного тестирования и развертывания продукта на основных платформах для Web-ориентированного решения. Чтобы уточнить некоторые характеристики проекта, предположим, что на реализацию вам отводится 60 дней.
Вашему партнеру по проекту поручили начать проектирование для следующей версии программного проекта (развертывание которой должно начаться не позднее, чем через 90 дней). Конкуренты уже узнали о проекте и отреагировали на него собственными программными предложениями. Вывести продукт с более высоким уровнем практичности и обогащенными функциями как можно быстрее — ваша первоочередная задача.
Менеджер проекта и вы будете продолжать отслеживать и формировать отчетность о состоянии проекта в целом для высшего руководства. Вы должны провести проектную бригаду через поставку начальной версии ПО. В дальнейшем вы будете осуществлять поддержку вашего партнера в проектировании ПИ следующей версии.
Подготовьте оценку обновленного плана для проекта. Ключевой вопрос, на который необходимо получить ответ, звучит так: "Будет ли ПО развернуто у основных клиентов за следующие 60 дней?" На этот вопрос вам и лидеру проекта предстоит ответить в течение недели. Конечно, одну неделю придется вычесть из выделенного времени, как любую бесполезную неделю.
Применительно к прототипам экранов оцените продолжительность времени, необходимого для достижения завершающей фазы компонентного тестирования программного обеспечения ПИ для каждой из поддерживаемых платформ.
Позаботьтесь о том, чтобы включить оценку завершения компонентного тестирования для одного из поддерживаемых диалогов, справок и средств обучения.
Составьте измеримый календарный план реализации.
Выполните те же действия в отношении экрана, для которого прототип не разрабатывался.
Затем сформируйте проект реализации и приступайте к конструированию с использованием выбранной платформы реализации. Разработайте программное обеспечение для ПИ, помощи и обучения. Нет необходимости сосредоточивать свое внимание на завершенных функциях. Позаботьтесь о том, чтобы включить в разработку всю обработку ошибок, обратную связь с пользователями, обратную связь по времени отклика, поведение клавиатуры, поведение указателя и механизмы ПИ. Другими словами, разработайте полное программное обеспечение ПИ для экранов, диалогов, помощи и обучения. Позаботьтесь о том, чтобы тестирование ПО проводилось до тех пор, пока оно не будет закончено и критерии компонентного тестирования не будут удовлетворены. Экраны и их функции должны быть готовы для системного, интеграционного и других видов тестирования и развертывания у конечных пользователей.
Позаботьтесь о том, чтобы отслеживать и фиксировать каждый выполняемый вами шаг работы. Сравните фактическую статистику разработки с прогнозами. Отметьте те аспекты проектирования, которые не были учтены на ранних этапах и в процессе прототипирования. Обратите внимание на то, какие тесты осталось выполнить в ходе системного и других видов тестирования. Оцените, сколько времени могло бы занять подобное тестирование.
Менеджер проекта сообщил, что у одного из ваших основных разработчиков семейный кризис и, по всей вероятности, он будет отсутствовать по меньшей мере две недели. Как это отразится на проекте и какие у вас имеются варианты исправления ситуации? Маловероятно, что за столь короткое время удастся найти подходящую замену.
Продолжайте ваше исследование с помощью Internet в поисках примеров, методов и фрагментов программного кода, которые можно было бы использовать в проекте.
Выдерживает ли проект установленные сроки с точки зрения поставки через 90 дней?
Вопросы?
Ссылки
Black R. Managingthe Testing Process, Microsoft Press: Redmond, WA, 1999. Maguire S. Writing Solid Code, Microsoft Press: Redmond, WA, 1993.