Принципы работы с требованиями к ПО. Леффингуэлл (2002) (1186169), страница 42
Текст из файла (страница 42)
Если же ответ "нет", то объем проекта еще больше (300-400% или более) и нужно определить проект меньшего масштаба и повторить процесс расстановки приоритетов. Так как в данном процессе пол> лаются только грубые оценки, невозможно с уверенностью сказать, сколько элементов, помимо х)>игпичозсих, удастся осуществить. Для дальнейшего уточнения базового уровня можно использовать оценки, основанные на более детальных требованиях и оценке технической достижимости. (Параллельно можно создать подробный план проекта, чтобы проверить достоверность сделанных нами предположений.) Как следует из нашего опыта, для многих реальных проектов достаточно провести базовый уровень по криянгчгским требованиям, возможно, включив один или два важных элемента, и оставить на усмотрение команды разработчиков принятие дальнейших решений о включении важных элементов, в зависимости от того, как продвигается проект.
Нет, это ненаучно. Но зато это действительно срабатывает! Глава 20. Задание масштаба проекта 203 Если правильно формировать ожидания и обращаться с ними, то все, что удастся осуществить помимо базового уровня, будет бонусом. В табл. 20.0 зта простая звристика применяется к ншпему образцу проекта. Таблица 20.5. Упорядоченный список функций Приоритет Трудоемкость Функция Критический Критический КРитический Важный Функция 1. Подлер<кка внешней реляционной базы данных Функция 4.
Г!орт для новой версии ОС Функция 6. Импортирование внешних данных по стилял< Средняя Высокая Низкая Высокая Функция 3. Возможность клонирования проекта Базовый уровень (функции выше атой линии являются обязательпыни) (.1изкая Низплл Низкая Высокая Функция 2. Миогопользоаателыкая безопасность Функция 5. Новый "мастер" проекта Функция 7.
Реализация средств предупреа<лення Функция 8. Интеграция с подсистел<ой управления версиями Важный Важный Г! олсон ый Полезный Рабочий пример После совещания перед командой НОЕВ возникла задача оцепить ) ровень трудозатрат для каждой функции и попытаться определить базовый уровень для версии 1.0. Нужно было принять жесткие меры по ограничению масштаба в связи с имеющимися временными ограничениями, среди которых — необходимость представить прототип для показа на торговой выставке в декабре, а также запуск системы в производство в ян.
Функции, находящиеся ниже базового уровня, теперь являются будун1имн и будут рассматриваться при реализации следую<них версий. Приоритет этих функций в дальнейшем может быть повышен (па основании того. что сделано, и исходя иэ будущих пожеланий закаэчика). Конечно, функции не всегда независимы. Во многих случаях одна нз функций, находяпгаяся ниже базового уровня, связана с некой ф)шкцией, расположенной выше базового уровня, или же ее легче реализовать с помощью др)той функции.
Может оказаться, что команде повезло и она опережает график или находит библиотеку классов, которая существенно упрощает реализацию функции, находящейся ниже оазовой линии. В таких случаях команда должна иметь право включить зту ф)ч<кцию в число базовых и в разрабатываемую версию, переопределить очередность и переустановить базовый уровень, естественно, уведомив всех, кого нужно.
Таким образом, команда сможет создать план проекта, по крайней мере, в первом приближении. Однако, по всей вероятности, многие из желаемых функций не войдут в первый срез, и нужно будет что-то делать с ожиданиями как внутри, так и вне компании, Эта тема рассматривается в следующей главе. Но сначала мы рассмотрим наш рабочий пример и увидим, с чем команда подошла к реализации версии 1.0 НО1 13, 204 Часть 4. Управление масштабом варез, что еще сильнее лимитировало возможности.
С помощью эвристического метода оценки по пзкале "высокалмредняя-низкая" команда оценила предполагаемый уровень трудозатрат, а также добавила оценки риска для каждой функции. В табл. 20.6 представ- лен полный перечень функций с указанными атрибутами. Таблица 20.6. Упорядоченные по числу набранных голосов функции сгктсмы НО1.1з 2000 с атрибу гамп риска и трудоемкости ПЭ Функция Число Трудоемкость Риск голосов Низкий Средняя Низкая Низкий 105 Высокий Высокгн Высокан 88 Легко программируемые станции управления 77 Средний Срединн 77 Средний Возможность программированггн режи.
ма "жильцы в отпуске" Ни*кан Любой источник света может плавно 74 изменять мощность Низкая Низкий Средний Высокая 14 66 Низкая Низкий Низкая Низкая Низкий Высокий Латоизтичсскос включение свезз в туа- 55 лете при открытии двери 19 50 Хотя руководство производством указало этот срок, команда приняла решение, что на самом деле она имеет время до конца февраля, чтобы представить окончательную версию программного обеспечения 1.О.
Это критически важные 6 педель, которые, по мнению команды, необходимы, чтобы, основынаясь на получснгпнх после демонстрации на выставке отзывах, внести окончателыяне изменения. 25 Возможность произвольного выбора зон 121 освещения 16 Латоматичесзаяустзновкздлнтсльносгн 107 работы длн различных источников саста ит,п. Встроенные средства системы безопас- ности, например аварийные лампы, зву- ковые сирены, звонки 100%-наасжность Легко программируемый блок управле- нии, не требующий использования пер- сонального компьютера 9 Можно использовать собственный пер. 73 сональный компьютер длн программированин режимов работы Возможность программировании работы в режиме обслуживания зрелищных ме- ропринтнй Функция закрытия гаражных ворот Интерфейс с системой охраны дома Простота монга;ка Высокая Средняя Высокий Средний Высокий Средний Глава 20.
Задание масштаба проекта 208 Окончание табл. 20.6 1Р Функция Число Трудоемкость голосов Риск Средняя Средний 18 Автоматическое включение света, когда кто-то подходит к двери Мгновенное включение/выключение света Высокая Высокий 44 11 Возможность управлять шторами, жалю- 44 эи, насосами и движкамн Низкий Низкая Высокая Высокий 44 Управление освещением и т.п. по теле- фону Наличие интерфейса с системой управ- ления автоматикой в доме Высокая Высокий 1О 22 Наличие режима плавного перехода; по. 34 степенное увеличеиие/уменыясние яркости света Низкий Средняя 26 Наличие центральных станций упраале- 31 ння Высокая Высокий Средняя Срдн й Легко дополняется новыми элементамн при изменении схемы эксплуатации 12 Средняя Высокий 24 Интернационализированный пользова- тельский интерфейс Интерфейс с видео.
и аудиосистемой Восстановление функций после сбоя в энергоснабжении 28 Высокая Нет данных Высокий 21 Нет дан- ных 24 Высокий Высокая 22 Управление системой коидиционирова- ння воздуха Высошя Средняя Высокий Низкий 28 Активация голосом 27 Поддержка презентационного веб.сайта 4 На следукпцем этапе команда предложила предварительные оценки каждой функции и разработала подробный план проекта, отражающий определенные зависимости и важнейшие вехи. После переговоров с отделом л~аркетинга, который в свою очередь проконсультировался с Ракель (международным дистрибьюторам компании), команда опреде.
лила, что в версии 1.0 достаточно интернационализировать только ЦБУ-интерфейс пользователя, что заметно уменьшит объем трудозатрат на данную функцию. Программное обеспечение интернационализации интерфейса дополнительного ПК- программатора может подождать до версии 2.0. Это привело к тому, что команда изменила название функции 20 с "интернационализированный пользовательский интерфейс" на "интернационализированный ЦБУ-интерфейс" и добавила в список новую функцию "интернационализированный интерфейс ПК-программатора".
Затем, основываясь на пересмотренных оценках трудоемкости, команда предложила провести базовый уровень так, как показано в табл. 20.7. Предложенный оаэовый урю 206 Часть 4. Управленце масштабом Твблнца 20.7. Базовый уровень для НОБ1$ версия 1.0 1уг Функция Число Трудоемкость Риск Маркетинговые голосов комментарии 23 Возможность произвольного выбора зон освещения 121 Низкий Максимально аоз- Средняя ножная гибкость 16 Латокатичсская установка длительности работы для различных источников света и т.п. 107 Низкая Низкий Максимально воз- можная гибкость 4 Встроенные средства системы безопасности, например эаарийныелампы, звуковые сирены, звонки 105 Низкая Высокий Необходимы дальнейшие маркетинговые иссае- доаания 6 100%-надежность 90 Подойти к 100% максимально близ- Высокий Высокая ко 8 Легко программируемый блок управления, нс треб>ющий нспольюжзння персонального компью- 88 Обеспечить соответствующий контроллер Средний Высокая тс1зз 1 Легко программируемые станции управления 77 Средняя Средний Сделать простыми, насколько этого можно добизыя при соответствую.
щей трудоемкости вень был передан в исполнительную дирекцию, и вице-президент Эмили приняла окончательное решение. Однако перед этим она пожелала ознакомиться с планом проекта, чтобы "увидеть завнсимост ч". (Команда понимала, что на самом деле она хотела увидеть, "выполнила лн команда свое домашнее задание" нли это просто "пустышка", предназна. ченная для того, чтобы добиться некоего послабления графика.) Б конце концов, ее ре. шение было положительным, но Эмили заметила: "Мы принимаем эти предложения для версии 1.0 системы НО1.1$, но вам следует знать, что мой начальник сказал мне, что я не должна допустить, чтобы вы сорвали выпуск продукта в январе, как вы, похоже, решили . Далее она продолжила: "Я не уверена, но думаю, что этим он хотел сказать, что если мы потерпим неудачу, то отвечать буду я, но я даже не хочу думать об этом.
Понятноз". С большим вниманием выслушав Эмили, члены команды взяли на себя ответственность за дату выпуска продукта и перешли к следующей фазе. Следующая веха, согласно плану проекта, состояла в тщательно разработанной итерации, включающей в себя быстрое создание прототипа системы НО1.18 для демонстрации 1 августа, ПРодалхенив жаба 20. 7 Функции еГисло Трудоемкость Риск Маркетннгоиые голосон комментарии Низкая Средний Низкая Низкий Средний Высокая В версии 1.0 поддерживается только одна конфигурация Срд 25 Высокий Низкая Низкий 14 Высокая Высокий Вложить разумные средства Мгновенное включе.