Вовремя и без перерасхода средств: Интегрированный подход к жизненному циклу разработки программного обеспечения

Источник: IBM Rational
Дентон Тарбет

Процесс предварительной оценки затрат из 10 шагов

В настоящее время большая часть организаций, занимающихся разработкой программного обеспечения, для оценки программных проектов применяет один или более следующих методов: 1) приблизительная/по ориентировочным данным/SWAG (super wild ass guess, очень приблизительная) предварительная оценка, 2) предварительная оценка сверху вниз/с учетом ограничений и/или 3) предварительная оценка снизу вверх/с учетом проектных данных. Несмотря на различия в методологиях планирования, в принципе все эти подходы имеют общую особенность - существует тенденция их выполнения как одноразовых методов, зависящих от доступности дефицитных ресурсов, чрезмерной нагрузки специалистов и неавтоматизированных или минимально автоматизированных процессов, таких, как электронные таблицы и другие доморощенные инструменты. Такие одноразовые методы, по определению, являются несогласованными, непрогнозируемыми и в значительной степени подвержены ошибкам, обусловленным человеческим фактором. Отдельные планировщики обладают разными способностями и разной архивной проектной документацией, они могут быть излишне оптимистичными или пессимистичными, на них может влиять внутренний распорядок организации или другие факторы, не имеющие отношения к проекту; они могут просто не заметить не очень бросающиеся в глаза элементы проекта.

Применение признанного, проверенного на практике процесса оценки, который хорошо интегрируется с процессом разработки, помогает гарантировать, что планы проекта будут обоснованными и достижимыми, соответствующими или даже превосходящими ожидания клиента и будут поддерживать другие управленческие деятельности путем предоставления точной и своевременной информации о планировании. Предлагаемый процесс предварительной оценки затрат, состоящий из 10 шагов и предложенный Дэниелом Галоратом (Daniel Galorath) и Майклом Эвансом (Michael Evans) в книге (Software Sizing, Estimation, and Risk Management (Определение масштаба проекта, предварительная оценка затрат и управление рисками) , издательство Auerbach Publishing, 2006 г.), построен на более чем двадцати исследованиях передовых методов предварительной оценки затрат, применяемых при разработке программного обеспечения.

Шаг 1: Установите границы и цель предварительной оценки затрат
Определите и документируйте ожидания. Когда все участники поймут границы и цель предварительной оценки затрат, вы сможете отбросить противоречащие предположения, установить линию отсчета для количественной оценки влияния будущих изменений и избежать возможного недопонимания.

Шаг 2: Установите техническую базу, основные правила и допущения
Определите, какие функции должны быть включены в предварительную оценку затрат. Если точная информация о функциях неизвестна, документируйте основные правила и допущения, а также то, что следует включить и исключить из области предварительной оценки затрат. Необходимо также документировать проблемы готовых решений, многократного использования и другие допущения.

Шаг 3: Выполните сбор данных
Определите, какие данные необходимы и где они хранятся. Заранее предоставьте участникам процесса вопросы и точные определения. В ходе интервью подтвердите, что данные реалистичны и корректны. Создайте и используйте для справки репозитории архивной документации проектов. Обязательно зафиксируйте степень неопределенности.

Шаг 4: Определите размер и масштаб проекта
Если обстоятельства вынуждают вас отойти от вашей методологии оценки, уделите большую часть своего времени определению размера проекта (в этом процессе может помочь использование инструментов и баз данных для определения размеров). Вероятно, это самый важный шаг, определяющий итоговый успех проекта. Определение размера и масштаба проекта учитывает все его аспекты, ограничивает действия, которые можно будет предпринять в процессе разработки или модернизации продукта, и доступные параметры.

Шаг 5: подготовьте базовую предварительную оценку затрат
Не следует думать, что предварительная оценка затрат для проекта - это разовая деятельность. По мере выполнения проекта неизвестное становится известным, и появляются новые и непредвиденные проблемы и возможности. Жизнь продолжается.. Обновление предварительных оценок и документирование изменений в оценках на протяжении всего процесса разработки гарантирует, что 1) анализ компромиссных решений будет строиться на все более надежных данных, 2) организация будет иметь "самую точную оценку" в любой данный момент времени и 3) точность оценки будет повышаться с течением времени.

Шаг 6: количественная и качественная оценка рисков
Риски можно квалифицировать как потери времени, качества, денег, контроля или понимания. Потери, связанные с риском, называются влиянием риска. Риск нельзя устранить, но можно к нему подготовиться. Сам по себе риск не угрожает успешности проекта, если он вовремя распознан и учтен.

Шаг 7: проверка и пересмотр
Проверка и пересмотр предварительных оценок затрат обеспечивает систематическое подтверждение их целостности. Этот шаг позволяет организации более проактивно регулировать переменные проекта, и внушает уверенность в том, что данные проекта значимы, методы эффективны, ожидаемые результаты точны, а приоритеты правильно расставлены.

Шаг 8: создайте план проекта
При создании плана проекта предварительная оценка затрат для проекта используется как основа для выделения и обсуждения специфических затрат, ресурсов и сроков в подробной схеме ориентированной на задачи структуры распределения работ.

Шаг 9: документируйте предварительную оценку затрат и то, чему вы научились
При каждом завершении или обновлении предварительной оценки и по завершению работы над проектом необходимо документировать информацию, которая оказалась значимой, и записать полученные уроки. Таким образом вы документируете процесс, который осуществлялся наилучшим возможным образом, фиксируете результаты, при помощи которых вы калибровали свои модели предварительной оценки затрат.

Шаг 10: Отслеживайте эффективность работ (количественная оценка и обратная связь)
Информация по процессу должна непрерывно собираться и сравниваться с первоначальным планом и линией отсчета. Если эффективность постоянно или существенно изменяется, скорректируйте подлежащие предварительной оценке и реализации параметры, чтобы вернуть проект в нужное русло. Для уточнения самого процесса предварительной оценки необходимо пересматривать информацию обратной связи по вопросам эффективности и собирать данные по проекту.

Параметрическое/предиктивное моделирование программного обеспечения

Хотя для обеспечения точности предварительной оценки затрат достаточно следовать структурированному процессу оценки, гораздо больше преимуществ можно получить, если объединить этот подход с технологиями, которые были разработаны специально для предварительной оценки затрат по проектам и управления ими. Параметрическое/предиктивное моделирование ПО обеспечивает пользователям доступ к известной информации о проекте и позволяет моделировать или имитировать то, что неизвестно, основываясь на обширных и значимых (сравнимых с реальными) данных.

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

Параметрические методы очень полезны для того, чтобы оценить неопределенные ситуации в жестких рамках предварительно определенной и испытанной математической модели. Они могут заключать в себе большой объем полезного опыта предыдущих проектов и быть менее тенденциозными, чем человеческая мысль сама по себе. Хотя конкретные функции могут быть различными у разных производителей, надежные инструменты оценки предоставляют открытую архитектуру для интеграции ведомственных решений управления производительностью и корпоративных приложений и включают следующие элементы:

Интерфейс: интуитивно понятный интерфейс для определения и описания проектов. Пользователи могут сгенерировать новый проект из имеющегося "шаблона" проекта или путем добавления или определения отдельных элементов программы работ. На протяжении всего процесса определения масштаба, сложности и технологий проекта пользователю помогают всплывающие окна и аннотации.

Механизм имитации/моделирования: Сложные, специфические для конкретной отрасли математические модели получены на основе расширенной архивной документации проектов, поведенческих моделей и показателей.

Базы знаний: Базы знаний служат виртуальным "собственным экспертом" и предоставляют определения проекта по умолчанию, значения, диапазоны и калибровки на основе архивной документации аналогичных проектов. Они позволяют выполнить первоначальную предварительную оценку затрат в условиях недостатка информации и уточнить ее, как только будет получена дополнительная информация.

Выходные данные: Различные схемы, графики и отчеты для быстрого обобщения и представления выходных данных проекта и альтернативных вариантов, а также текущей работы.

На рисунках 1 и 2 показаны примеры GUI для ввода параметров и результирующая выходная страница, сгенерированная одним из описанных оценочных инструментов

Screen shot of parameter input

Рисунок 1. Входная информация SEER

Screen shot showing graphical output

Рисунок 2. Выходная информация SEER

В настоящее время решения для параметрического моделирования от ведущих производителей позволяют специалистам описывать проекты с различными уровнями детализации, выполнять предварительную оценку финансовых, временных и трудовых затрат, анализировать и тестировать компромиссные решения путем изменения одной или более переменных проекта, и предоставляют расширенные средства генерации отчетов, в том числе, определение вероятности достижения целей проекта (в процентах) и рекомендации по повышению вероятности путем небольших изменений в ограничениях и допущениях, которые лежат в их основе. Высококачественные инструменты могут включать встроенные программные мастера для определения размеров, которые помогут вам определить масштаб проекта - важнейший фактор, обуславливающий размеры финансовых и трудовых затрат и сроки календарного планирования.

Можно использовать следующие дополнительные параметры:

  • Платформа проекта;
  • Методология разработки;
  • Руководящие директивы;
  • Количество штатных единиц, квалификация и опытность персонала;
  • Сложность среды разработки;
  • Устойчивость требований;
  • Уровень достоверности;
  • Целевые/собственные системы;
  • Вопросы календарного планирования;
  • Обеспечение многократности использования;
  • Интеграция;
  • Ставки заработной платы;
  • Уровни технического обслуживания;
  • И т. д.

Моделирование проекта в действии: Десять дней из жизни Администрации социального обеспечения

Администрация социального обеспечения - нестандартная организация с нестандартным кругом обязанностей. В 2007 году Администрация социального обеспечения перевела более 585 миллиардов долларов на пенсии 50 миллионам граждан США. Головной офис Администрации социального обеспечения находится в г. Балтимор, штат Мэриленд; кроме того, Администрация имеет 10 региональных отделений, в которых работает приблизительно 62 000 сотрудников, шесть процессинговых центров и 1300 локальных отделений. По мере того, как миллионы детей, рожденных в период резкого повышения рождаемости, достигают пенсионного возраста, требования к Администрации социального обеспечения становятся все более ощутимыми. Чтобы идти в ногу с растущим количеством получателей социальных пособий, необходимы многочисленные сложные компьютерные системы и специально разработанное программное обеспечение, способное отслеживать доходы и пособия более ста миллионов человек. Эти системы создаются и тестируются специальным подразделением Администрации - Отделом информационных систем (Office of System).

В августе 2007 года отдел информационных систем принял решение о внедрении решения параметрического моделирования. К настоящему моменту Администрация социального обеспечения использует примерно 100 программ, и еще 30 - 40 программ находятся в стадии разработки. Почти все программы написаны на языке COBOL, который в настоящее время использует 80 процентов предприятий и компаний во всем мире. Администрация социального обеспечения стремилась достичь полного соответствия новому стандарту на процессы, Capability Maturity Model, CMM (Модель развития функциональных возможностей) и централизации своих средств предварительной оценки затрат на разработку программного обеспечения.

Рабочую группу по оценке программного обеспечения, которая отвечала за предварительную оценку затрат на потенциальные проекты программного обеспечения и отслеживание работ по имеющимся проектам, возглавлял Деннис О'Мейли (Dennis O'Mailey) (сейчас он вышел в отставку). "У нас работают более 600 программистов, которые разрабатывают и обслуживают множество систем, поэтому нам необходим точный программный инструмент предварительной оценки затрат", - пояснил он. "Мы чувствовали, что предварительные оценки затрат, которые мы выполняем, недостаточно точные".

В то время за выполнение предварительной оценки затрат отвечали руководители отдельных проектов. По словам О'Мейли, "Качество оценки зависело от знаний и опыта руководителя проекта". "Руководители проекта, которые работали над проектом много лет, были более точны в оценке, чем новички. Но во многих проектах мы упускали некоторые моменты при оценке порядка затрат".

Первоначально Администрация социального обеспечения внедрила параметрическое моделирование только в нескольких десятках проектов, причем инструменты использовались для того, чтобы определить эксплуатационные затраты и решить вопрос о возможности продолжения разработки. Но, помимо этого, Администрация социального обеспечения работала над тем, чтобы перевести свою организацию на более высокий уровень (2 и 3) соответствия CMM. "Стандарт CMM был для нас важным потому, что он подтверждает зрелость операций разработки программного обеспечения и наличие стандартной методологии для разработки систем", - заявил О'Мейли. CMM требует, чтобы оценки трудовых и финансовых затрат по проекту разрабатывались в соответствии с документированной процедурой. Внедрение SEER позволило Администрации социального обеспечения добиться соответствия этим требованиям.

В настоящее время группа разработки программного обеспечения Отдела информационных систем использует труд более 3 200 аналитиков, разработчиков, специалистов по созданию моделей баз данных и других специалистов по системам, которые, кроме производства программного обеспечения для соцобеспечения также проектируют и создают приложения для других федеральных ведомств. "Это все те же проекты на языке COBOL, - добавляет Джим Денни (Jim Denney), который сменил О'Мейли в Администрации социального обеспечения, - но сейчас проекты выглядят так, как будто написаны на каком-либо языке программирования для Web. Мы освоили Java и JavaScript, HTML, Visual Basic и Cold Fusion". Недавно вверенная ему организация получила контракт на разработку программного обеспечения, необходимого для реализации инициативы Medicare Part D Prescription Drug Coverage (правила выписки наркотических и сильнодействующих медикаментов в рамках федеральной программы бесплатной медицинской помощи престарелым, часть D). "Вместо того, чтобы привлечь к их созданию частного производителя ПО, - пояснил Денни, - был заключен контракт с Администрацией социального обеспечения. Согласно межведомственному соглашению, мы компенсировали каждый час, потраченный на разработку программного обеспечения для программы Medicare, по принципу доллар за доллар. В конце концов нам пришлось принять на работу еще около 600 специалистов".

Приняв дела у О'Мейли, Джим Денни увидел дополнительные возможности для этого решения: "Мы спросили себя, следует ли доверять выполнение предварительной оценки затрат сотне разных руководителей проекта или лучше сформировать группу специалистов по предварительной оценке затрат, которые могли бы получить важный опыт, отслеживая общие моменты в сменяющих друг друга проектах. Сегодня выполнением предварительной оценки затрат занимается централизованный сервис, предоставляемый рабочей группой Software Measurement".

За типичный год предварительная оценка затрат при помощи решений параметрического моделирования SEER была выполнена примерно для 90 или 100 самых критически важных проектов Администрации соцобеспечения. Процесс начинается с предварительного анализа по принципу "снизу вверх" с использованием продукта Microsoft Project. Коллектив, возглавляемый Денни, применяет подход "сверху вниз", используя имеющиеся функциональные баллы для повторной оценки. "Нашим стандартом установлено, что руководитель проекта должен иметь в распоряжении две предварительных оценки, одну снизу вверх, а другую - сверху вниз; их различие можно сравнить с различием между индуктивными и дедуктивными умозаключениями", - пояснил Денни. - "Получив эти оценки, руководитель проекта обязан выполнить их сравнение и сопоставление. Мы стремимся, чтобы разница между ними была совсем небольшая. Именно это позволяет руководителю проекта утверждать, что он на правильном пути". SEER также играет роль в управлении ресурсами. "Мы пытаемся выявить избыток и недостаток внимания к отдельным аспектам проекта и используем для этого концепцию, которую называем взаимозаменяемостью. Если ресурсы, выделенные какому-либо проекту, используются недостаточно интенсивно, то они могут быть перенаправлены проекту, который в них больше нуждается", - рассказывает Денни. - "Это одно из преимуществ предварительной оценки затрат: параметрическое моделирование открывает нам подлинную картину использования ресурсов, позволяя выполнять работу быстрее, эффективнее и точнее".

Благодаря открытой программной архитектуре, SEER позволяет отдельным организациям уточнить свои инструменты предварительного анализа путем расширения встроенных Баз знаний путем добавления специфических для данного проекта данных организации. "Примерно 5 лет назад мы предоставили разработчикам компании Galorath информацию по 50 выполненным проектам, которую они смогли впоследствии включить в базу знаний SEER. Теперь у нас есть очень надежная система отслеживания проекта, потому что все специалисты должны были еженедельно записывать, над какими проектами они работали и какие задачи выполняли".

"Подлинное преимущество параметрического моделирования заключается в том, что оно помогает руководителям проектов выполнить количественную оценку трудовых затрат и составить календарные планы на ранних этапах проекта," - сказал О'Мейли. - "Главное - знать в самом начале работ и в течение всего жизненного цикла проекта, сколько времени уйдет на выполнение проекта и какие ресурсы потребуются.. Если вы управляете проектом на основе хорошо продуманного плана - а интегрированной частью этого плана является качественный предварительный анализ - то вы сможете сэкономить финансовые, трудовые и временные ресурсы в значительном объеме.

Rational-SEER-Rational: интеграция жизненного цикла разработки программного обеспечения

В стандартном процессе жизненного цикла разработки программного обеспечения предусмотрена автоматизация разработки, предварительной оценки затрат, выделения ресурсов и отслеживания проекта. Органичная интеграция между программными продуктами IBM Rational Software Modeler, SEER for Software и IBM Rational Portfolio Manager поддерживает этот процесс на всем протяжении:

Шаг 1: оцените предварительную концепцию - приемлема она или нет?

При помощи ПО SEER for Software вы можете определить проект на концептуальном уровне с использованием обширных и расширяемых баз знаний проекта, собранных на базе информации по тысячам выполненных проектов. В считанные секунды SEER может имитировать программный проект на основе расширенной архивной документации проекта и расчета первоначального, приблизительного порядка финансовых, трудовых и временных затрат, а также рисков.

Шаг 2: разработайте проект ПО

После того, как вы решите, что готовы продолжить работу над проектом, инструменты разработки от IBM Rational могут помочь вам в документации проектов бизнес-процессов и системных требований, разработке прецедентов и трансляции прецедентов в исполнимый код.

Шаг 3: выполните детализированные предварительные оценки затрат

Экспортируйте проекты Rational Software Modeler, Rational Software Architect или Rational Software Developer в SEER для уточнения вашей первоначальной предварительной оценки затрат и выполнения расширенного анализа с целью выбора компромиссного решения, изменения переменных проекта - по отдельности или в сочетании - чтобы определить, как лучше выполнить проект (см. рисунок 3). Предоставьте руководству показатели вероятности достижения целей проекта в процентном выражении и возможные способы повышения этих показателей при помощи небольших изменений в ограничениях и допущениях, которые лежат в их основе.

SEER product
Rational Software Modeler product.

Рисунок 3. Сканирование при помощи инструментов SEER for Software (вверху) и IBM Rational Development (внизу) поможет вам выполнить предварительную оценку затрат по нескольким вариантам, что позволит уточнить и оптимизировать программный проект.

Шаг 4: распределите ресурсы и управляйте портфелем

Экспортируйте вашу окончательную предварительную оценку затрат из SEER в IBM Rational RPM, чтобы собрать в одном месте данные программы и проекта и гарантировать, что управление ресурсами и приоритетами осуществляется оптимальным способом во всей организации и постоянно, причем ни один ресурс не затребован дважды и не используется в недостаточной степени, а также выяснить, где возникают конфликты ресурсов при нарушении сроков проекта (см. рисунок 4).

input to SEER portfolio management
output from Rational portfolio tool

Рисунок 4. Функции мониторинга и контроля SEER for Software Project (вверху) и Rational Portfolio Manager (внизу) позволяют централизованно управлять программными и проектными данными и отслеживать выполнение проекта, что позволяет гарантировать оптимальное управление ресурсами и приоритетами.

Шаг 5: назначьте сроки сдачи проекта

SEER дает пользователям возможность измерять действительный прогресс выполнения проекта по отношению к предполагаемым результатам (календарное планирование, ресурсы и дефекты). Если необходимо внести промежуточные коррективы, то пользователи смогут определить, какие корректирующие действия с наибольшей вероятностью вернут проект в нужное русло, не скомпрометировав сколько-нибудь существенно цели проекта. Результаты процесса могут использоваться для получения обратной связи с целью повышения эффективности процессов и могут включаться в базы данных и репозитории архивной документации проектов.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=18022