Как составить хороший план
Как составить хороший план
Теперь можно сосредоточиться на особенностях составления хорошего плана разработки ПО. В этом процессе три основных этапа: определение задач, объединение задач в группы, называемые базовыми уровнями, и группировка последних в этапы проекта.
Ниже я приведу пример типичного плана с описанием основных структур проекта, необходимых для разработки плана. Легко заметить, что целью планирования не является «микроуправление» каждой деталью проекта. Просчитать, чем будет заниматься каждый член команды в течение шести месяцев, начиная с сегодняшнего дня, скорее всего невозможно. Вместо этого нужно составить план со списком чётко определённых задач, плавно сменяющих друг друга по ходу цикла разработки. Такой план позволяет контролировать работу команды над каждой задачей, а также отслеживать ход реализации проекта со значительной определённостью.
Задачи
На первом этапе следует определить все задачи, решение которых позволяет реализовать некоторую функцию. Суммарное время выполнения этих задач составляет общее время реализации функции. Сначала надо спланировать реализацию необходимых функций и лишь затем переходить к планированию желательных и возможных функций. Такой метод позволит как можно скорее получить жизнеспособную программу.
Затем следует распланировать задачи групп тестирования, обучения пользователей, разработчиков пользовательского интерфейса и технологов. У каждой группы должен быть свой набор задач, определяемый на основе частей проекта, за разработку которых отвечает группа. Эти задачи должны быть организованы так, чтобы их можно было интегрировать и их реализация не слишком отставала от реализации функций разработчиками.
Базовые уровни
Базовые уровни определяют срок реализации группы связанных функций. Каждые 2-3 недели должен быть готов очередной базовый уровень. Помните: соответствующий фрагмент ПО должен устанавливаться с помощью программы установки, а его функциональность должна быть доступна для разработчиков. Реализация базовых уровней — важные краткосрочные цели, на достижении которых необходимо сосредоточить внимание и усилия команды. Вообще ничто не может быть важнее своевременного завершения очередного базового уровня. Если он запаздывает, можно официально говорить об отставании проекта от плана, что требует немедленных корректирующих действий. Ниже приводится ряд базовых уровней (из продукта BoundsChecker, разработанного NuMegaдля обнаружения ошибок в программах).
• Создана библиотека исходных текстов, выполнена первая ежедневная сборка программы, закончена установочная процедура для «скелета» программы.
• Программа позволяет активизировать основные функции для работы с памятью и вести регистрацию их работы.
• Программа выводит первое сообщение об ошибке при работе с памятью с помощью прототипа пользовательского интерфейса.
• Программа успешно обнаруживает утечки памяти типа 1 и 2.
• Программа успешно обнаруживает утечки памяти типа 3 и 4.
• Программа успешно обнаруживает утечки памяти типа 5 и 6.
• Появляется реальный пользовательский интерфейс программы, но без поддержки печати, сортировки и фильтрации.
• Закончена поддержка печати, сортировки и фильтрации.
• Программа интегрируется с другими программами пакета.
Промежуточные этапы
Промежуточный этап — это группа базовых уровней, представляющих законченную часть программы. Необходимо равномерно распределить их завершение по ходу работы над проектом. Например, если для проекта определено 4 промежуточных этапа, то каждому из них должны соответствовать 25% реализации проекта. Очевидно, что чем сложнее проект, тем больше у него промежуточных этапов.
У каждого промежуточного этапа должен быть период стабилизации и интеграции (см. главу 6). Напоминаю, что в это время (обычно 1-2 недели) вся команда концентрируется на решении проблем, обнаруженных в реализованных функциях. Периоды стабилизации жизненно важны для проекта, поскольку в это время проводится тестирование, исправление ошибок, устранение неполадок в структуре и интеграции, проводится оценка производительности, т.е. все мероприятия, способствующие стабилизации программы. Не приступайте к реализации новой функции, пока не убедитесь, что только что законченные функции работают хорошо. Помимо всего прочего, периоды стабилизации очень удобны для разного рода доработок. В это время отставшие участники или подразделения команды могут наверстать упущенное и догнать остальных, чтобы вновь работать синхронно.
Внешние промежуточные этапы
В завершении внешних промежуточных этапов участвуют люди или группы, не работающие над проектом постоянно. Внешние промежуточные этапы знаменуют собой критические точки проекта. Вот самые распространённые внешние промежуточные этапы:
• альфа-версия — выпуск, в котором реализован лишь ряд критических функций программы; альфа-версии не предназначены для широкого использования, однако могут быть полезны для демонстрации прогресса проекта или сбора внешних отзывов о работе критических функций;
• бета-версия — выпуск, в котором реализованы если не все, то большинство функций; бета-версии передаются клиентам для испытаний и оценки;
• кандидат на выпуск — в случае успешного окончания тестирования этот выпуск будет передан в производство для тиражирования; появление кандидата на выпуск — знак того, что проект почти закончен и выпуск ПО состоится;
• передача в производство — к этому времени рабочий выпуск будет передан в производство для тиражирования (или опубликован в Web, в зависимости от назначения ПО).
Любой из внешних промежуточных этапов требует распространения ПО за пределами команды или даже компании. Так как это очень важное событие, перед каждым промежуточным этапом нужен период стабилизации. Он позволяет команде сосредоточиться на его качестве, интеграции; выполнить «подгонку» частей и устранить оставшиеся неполадки перед выпуском продукта. (Подробнее о бета-версии и кандидате на выпуск см. главы 13 и 14)
Пример
Чтобы закрепить основы, давайте шаг за шагом рассмотрим подробный пример (табл. 11-1). В таблице показано упрощённое описание проекта, откуда удалена часть информации, обычно имеющейся в нём. Тем не менее, этот пример достаточно детализирован, чтобы продемонстрировать стыковку всех частей проекта. Ниже приводится ряд допущений, сделанных при планировании этого примера.
• Принципы планирования.
* С каждой функцией связан список технических задач. В этом примере они не показаны, однако их легко перечислить в реальном плане. На выполнение одной задачи отводится не более 2 недель, а на большинство — неделя или даже меньше. В зависимости от приоритетных требований к ПО, в первую очередь реализуются необходимые функции, а затем — менее важные.
* Тестирование функций осуществляется по мере завершения их разработчиками. Тестирование некоторых функций будет автоматизировано, другие же придётся тестировать вручную. Подробное описание испытаний приводится в плане тестирования.
* Специалисты по обучению пользователей составляют описания функций по мере их завершения. Работа по составлению документации должна как можно меньше отставать от реализации функции. Подробно эти действия описаны в плане обучения пользователей.
* Специалисты по инженерной психологии оценивают качество реализации всех функций пользовательского интерфейса, консультируют по поводу внесения изменений и контролируют впечатление от продукта по мере реализации проекта. Детали работы специалистов по инженерной психологии описаны в специальном плане.
* Во время работы над выпуском ПО сразу же создаётся простая сборка программы и установочная процедура. Затем сборка и установочная процедура будут регулярно пополняться новыми функциями, таким образом, они будут включать все большую долю функциональности готовой программы. Они также поддерживают подключение новых функций по мере их готовности. Конкретные усовершенствования функций и возможностей программы будут описаны в плане работы над выпуском.
• Участники работы над проектом:
— Мэтт — ведущий разработчик, занятый полное рабочее время;
— Джон — программист;
— Джим — ведущий тестировщик, также отвечает за автоматизацию;
— Фрэнк — тестировщик, исполняет автоматизированное и ручное тестирование функций;
— Сара — ведущий специалист по обучению пользователей;
— Кенни — ведущий специалист по инженерной психологии;
— Боб — ведущий технолог.
• Промежуточные этапы, внешние и внутренние.
— План проекта состоит из 4 базовых уровней, на реализацию которых отводится по 2 месяца, и 2-х главных промежуточных этапов. Будут выпущены 2 бета-версии, 1 версия — кандидат на выпуск и 1 версия для тиражирования.
— Каждый промежуточный этап образован 2 базовыми уровнями. Первому промежуточному этапу будет соответствовать наполовину законченный проект, а второму этапу — полностью законченный проект.
— Работа над бета-версией 1 займёт 1 месяц. Функции 14 и 15 будут добавлены во время работы над бета-версией 1, а оставшееся время будет потрачено на тестирование, настройку и исправление ошибок. У каждого участника группы есть некоторый список действий на время работы над бета-версией 1.
— В бета-версии 2 не будет новых функций по сравнению с бета-версией 1. Внесение значительных изменений в главные функции не допускается, разрешено лишь тестирование, настройка и исправление ошибок. У каждого члена группы есть список задач на это время.
• Кандидат на выпуск.
Версия — кандидат на выпуск будет готова к концу работы над бета-версией №2, если её тестирование пройдёт успешно и не будет обнаружено серьёзных ошибок.
• Контрольные собрания.
— Проведение собраний для контроля за состоянием проекта запланировано на каждый понедельник. Если достигнуть базового уровня вовремя не удалось (или все говорит об этом), придётся вносить изменения, чтобы наверстать упущенное.
Табл. 11. Примерный план.
Цифрами обозначены функции, состояние функций обозначено следующими буквами:
Ф — функция запрограммирована, выполнено блочное тестирование и завершены все связанные с ней технические задачи;
А — тестирование функции автоматизировано:
Р — функция протестирована вручную;
Д — функция документирована:
И — проверена простота использования функции.
Добавления в бета-версии
Легко заметить, что реализация двух задач в этом примере запланирована на период работы над бета-версией 1. Во время работы над любой бета-версией надо воздерживаться от добавления новых функций, особенно важных и сложных. Однако иногда есть смысл планировать включение в первую бета-версию функций, реализация которых не требует больших затрат и не вносит особого риска. Чем дольше задерживается передача программы в руки бета-тестеров, тем больше времени займёт сбор отзывов о качестве реализации и работе функций программы. Часто польза от раннего цикла бета-тестирования превышает риск включения небольших функций после начала программы бета-тестирования.
Хотя включить несколько дополнительных функций время работы над первой бета-версией ещё допустимо, в период работы над последней бета-версией реализацию дополнительных функции лучше не планировать. При работе над последней бета-версией функции остаются неизменными, и усилия команды концентрируется на качестве, производительности и интеграции. (О тестировании бета-версий см. главу 13.)
Неожиданные проблемы
Создавая план согласно описанным в этой главе принципам, вы, вероятно, будете планировать проект, как обычно. Однако разработка ПО — это не точная наука, и до проблем всегда рукой подать. Чтобы заметить малейшее отклонение проекта от намеченного пути, нужно регулярно проверять ход выполнения плана и после завершения каждого промежуточного этапа сравнивать фактическое состояние проекта с планом. Если работа отстаёт от плана, надо определить проблему, изменить план и постараться завершить очередной промежуточный этап в срок. Все так просто? Однако это та самая ситуация, когда от менеджера проекта и ведущих специалистов требуется полная самоотдача. Поскольку очень сложно вести работу над проектом, не отставая от графика, в третьей части основное внимание уделено именно этому вопросу.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 19 Хороший партнер = хороший результат Что нужно для того, чтобы подняться до уровня более благополучной жизни…
Глава 19 Хороший партнер = хороший результат Что нужно для того, чтобы подняться до уровня более благополучной жизни… Я люблю говорить: «Бизнесoм было бы легко заниматься, если б не люди». Это, конечно, шутка, поскольку, когда у тебя есть партнеры (в бизнесе, инвестировании,
Глава 15. Важно составить схему сделки до договора
Глава 15. Важно составить схему сделки до договора Схема сделки.Схему сделки и порядок работы обязательно надо объяснить клиенту в момент подписания договора. Обсудите регламент взаимодействия, нарисуйте план.На картинке пример схемы.«Объект клиента не получится
КАК СОСТАВИТЬ ПЕРЕЧЕНЬ ЗАИНТЕРЕСОВАННЫХ СТОРОН?
КАК СОСТАВИТЬ ПЕРЕЧЕНЬ ЗАИНТЕРЕСОВАННЫХ СТОРОН? Чтобы объяснить, что такое «заинтересованные стороны» и зачем их анализировать, приведем сугубо «бытовой» пример.Предположим, мы готовимся к осуществлению проекта «Закупка продуктов питания на неделю». Перечень
КАК СОСТАВИТЬ ПЛАН ДЕЙСТВИЙ?
КАК СОСТАВИТЬ ПЛАН ДЕЙСТВИЙ? Теперь, когда логика действий выработана, допущения определены, показатели и средства проверки найдены, настало время составить перечень конкретных действий для достижения каждого промежуточного результата. Возможно, некоторые из них уже
КАК ПРАВИЛЬНО СОСТАВИТЬ БЮДЖЕТ?
КАК ПРАВИЛЬНО СОСТАВИТЬ БЮДЖЕТ? Фактически, мы уже начали составлять бюджет нашего проекта в процессе заполнения логико-структурной схемы – на этапе разбиения действий на задачи (мероприятия) и указания напротив каждого из них списка необходимых ресурсов, в том числе и
Часть II. Бизнес-план. Вы готовы составить его самостоятельно?
Часть II. Бизнес-план. Вы готовы составить его самостоятельно? 2.1. Зачем, кому и когда он нужен? Итак, вы в начале бизнес-пути. И это означает, что вас ждут увлекательные приключения и открытия. Вы узнаете, что нужно делать для вашего бизнеса каждый день, ведь провал многих
8.3. Как составить маркетинговый план и провести аудит своего маркетинга?
8.3. Как составить маркетинговый план и провести аудит своего маркетинга? Разработка маркетингового плана включает в себя пять основных этапов:1. Сначала исследуется внешняя ситуация, а именно: клиенты, конкуренты, посредники, воздействие других институтов, например,
5. Как составить толковый бизнес-план?
5. Как составить толковый бизнес-план? Здесь есть два варианта: когда вы делаете бизнес-план для себя и когда вам нужен бизнес-план для инвестора. Сначала о том, как составить бизнес-план для себя.Всегда и везде в любом бизнес-плане закладывайте самый пессимистичный
Как составить бюджет за три дня
Как составить бюджет за три дня В крупных компаниях на подготовку бюджета уходят недели и даже месяцы. Такие затраты времени совсем не обязательны. Возможно, вы понимаете, что сделать это можно и нужно быстрее. Но поверите ли вы, что сможете составить свой бюджет за три
Шаг 4. Составить календарь рассылок «сотне-мечте»
Шаг 4. Составить календарь рассылок «сотне-мечте» С какой периодичностью лучше напоминать о себе «клиентам мечты»? Это нужно делать как минимум раз в месяц. А еще лучше – каждые две недели. Не давайте им забыть о себе. Конечно, не во всякой рассылке должен быть подарок, но,
4. Как составить заманчивое рекламное объявление
4. Как составить заманчивое рекламное объявление Рекламное объявление – единственный элемент вашего AdWords-аккаунта, который предназначен для потребителя. Оно должно привлечь его внимание, выскочить вперед, подпрыгивать, призывно махать платочком и кричать: «Я, я отвечу
Как составить информационный рекламный текст
Как составить информационный рекламный текст Пользователи обращаются к поисковым службам, желая найти ответ на свой вопрос.Это фрагмент информации. Если реклама обещает полезные сведения (рис. 4.8), то во многих случаях помогает завязать контакт с пользователем. Рис. 4.8.
Как составить список сотрудников и не раздуть штат?
Как составить список сотрудников и не раздуть штат? Здесь мы привели образец штатного расписания (табл. 3) в стандартном туристическом агентстве.Таблица 3. Штатное расписание Директор – часто является и владельцем бизнеса, причем на время его отсутствия один из
Как составить рекламное объявление?
Как составить рекламное объявление? Большинство рекламных объявлений составлены совершенно бездарно. Поэтому их никто и не просматривает и тем более не покупает предлагаемый товар.Вам самим хочется прочитать такое объявление: «Продам телевизор»?Нужно максимально
Как составить резюме
Как составить резюме Кроме предоставления информации о вашем прошлом опыте работы и квалификации, резюме является рекламой вашего товара: качеств, способностей, ценностных ориентиров, реализованных возможностей, стилей деятельности в самостоятельной работе и в