Задача: Выбор и получение инструментов
В этой задаче рассмотрен процесс выбора и получения инструментов, поддерживающих процесс разработки.
Дисциплины: Среда
Назначение

Цель этой задачи:

  • Выбор инструментов, наилучшим образом подходящих для проекта.
  • Получение инструментов в проекте.
  • (Необязательно) Разработка в пределах организации специальных инструментов для автоматического выполнения трудоемких и подверженных ошибкам задач, а также для обеспечения более глубокой интеграции между инструментами.
Взаимосвязи
РолиОсновной исполнитель: Дополнительные исполнители:
ВходыОбязательный:
  • Нет
Необязательный:
    Выходы
      Использование процесса
      Основное описание

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

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

      Задачи выбора и получения инструментов находятся в тесной связи с реализацией процесса в организации. Дополнительная информация приведена в разделе Реализация процесса в проекте.

      Шаги
      Определение потребностей и ограничений

      Определите требования и ограничения для поддержки инструментов. Для этого рассмотрите следующие факторы:

      • Процесс разработки. Какие именно инструменты требуются для эффективной работы. Например, если организация применяет итерационный процесс разработки, необходимо обеспечить автоматическое выполнение тестов, поскольку в ходе проекта тестирование выполняется несколько раз.
      • Платформы разработки.  
      • Целевые платформы.
      • Применяемые языки программирования.
      • Существующие инструменты. Оцените существующие инструменты и примите решение относительно того, следует ли продолжить работу с ними.
      • Структура организации разработки. Состоит ли организация из нескольких географически рассредоточенных офисов? Как правило, инструменты разработки поддерживают такие организации другими способами.
      • Объем трудозатрат на разработку. Инструменты удовлетворительно поддерживают большие организации.
      • Бюджет и ограничения по времени.

      Полезная информация по этому этапу приведена в разделе Оценка организации разработки.  

      Сбор информации об инструментах

      Соберите информацию о потенциальных инструментах и вендорах. Например, информацию можно запросить непосредственно у вендора, либо обратиться к независимым источникам.    

      Функции и возможности инструментов

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

      Функции и возможности

      Создает версии всех объектов файловой системы 
      Создает версии каталогов 
      Поддерживает смешанные типы файлов 
      Сжимает текст и двоичные данные 
      ... 

      Критерии оценки инструментов и вендоров

      Соберите информацию о каждом инструменте в соответствии со следующими критериями.  

      Инструмент
      Критерий

      Комментарии

      Функции и
      возможности 
      Набор функций, предоставляемых инструментом. Общие выводы для таблицы 'Возможности инструмента'.   
      Интеграция  Уровень интеграции с другими инструментами. Каким образом различные инструменты обмениваются информацией? Насколько эффективно инструмент взаимодействует с существующими инструментами и прочими рассматриваемыми инструментами. Зачастую высокий уровень интеграции более важен по сравнению с другими критериями, поскольку он облегчает использование и обслуживание инструментов.  
      Применимость 

      Насколько эффективно инструмент поддерживает процесс разработки. Требуется ли для применения инструмента вносить изменения в порядок работы? Приемлемы ли такие компромиссы? Недостаточный уровень применимости может потребовать изменения порядка работы в соответствии с требованиями инструментов. Однако такой подход может быть приемлем, если инструмент обладает другими сильными сторонами.

       
      Расширяемость  Возможность расширения и настройки инструмента. Расширяемые инструменты можно легко адаптировать в соответствии с вашими потребностями. Однако дополнительно рекомендуется проверить, что настройка инструмента не потребует слишком много времени.  
      Поддержка коллективной работы  Возможность поддержки группы пользователей. Поддерживает ли инструмент работу с удаленными участниками группы?  
      Удобство использования  Простота обучения и работы с инструментом. Обратите внимание на наиболее распространенные способы работы с инструментом. Сколько времени потребуется, для того чтобы начать эффективно работать с инструментом? Подходит ли инструмент для сотрудников, которые будут редко работать с ним? Рассматривайте наиболее часто применяемые функции. В большинстве случаев сложные функции, которые используются редко, можно проигнорировать.  
      Качество  В зависимости от типа инструмента его качество может оказывать значительное влияние на качество конечного продукта. Качество имеет важное значение, особенно если инструмент принимает непосредственное участие в разработке продукта. В качестве примера можно привести компилятор, создающий медленный код, или редактор HTML, создающий некачественный текст на языке HTML.
      Производительность  Общий уровень эффективности инструмента, учитывающий его емкость, доступность и время ответа. Низкая производительность может быть приемлема, если связанные функции и возможности применяются редко.   
      Зрелость  Уровень зрелости инструмента. Некоторые организации не покупают первые версии инструментов, выпущенных новыми вендорами, независимо от ожидаемой эффективности таких инструментов.   

      Поставщик
      Критерий

      Комментарии

      Стабильность  Выбор вендора - это процесс, связанный с риском. Как долго компания ведет бизнес? Насколько стабильна компания? Вкладываются ли инвестиции в инструмент? Инструмент является основным или побочным продуктом компании?  
      Предоставляемая поддержка  Какой уровень поддержки предоставляет вендор и/или потенциальные партнеры? Например, вам может потребоваться помощь в установке и настройке инструмента, а также последующая поддержка пользователей.  
      Возможности обучения  Какие возможности обучения предоставляет вендор и/или потенциальные партнеры?   
      Направление роста  Насколько эффективно инструмент поддерживает текущее направление разработки. Определите это направление, а также другие возможные направления разработки и убедитесь, что инструмент обеспечивает их поддержку.   

      Стоимость

      Расходы, связанные с приобретением инструмента и его владением, расходы на реализацию и обслуживание. Кроме того, на стоимость влияет число пользователей и период использования инструмента.  

      Стоимость

       

      Комментарий 

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

      Сравнение инструментов

      Сравнительный анализ факторов и выбор инструментов - нетривиальная задача. Для облегчения принятия решения рекомендуется создать таблицу функций.

      Сравнение функций и возможностей инструментов

      В соответствии со списком функций и возможностей инструментов следует определить важность каждой функции и возможности. Рекомендуется использовать следующую систему оценок:

      • 'Требуется'. Необходимая функция инструмента.
      • 'Рекомендуется'. Функция желательна, однако не является критически важной.
      • 'Не требуется'. Наличие этой функции в инструменте не имеет значения.  

      Наличие функций в инструментах можно указать с помощью следующих символов:

      Символ  

      Описание 

      функция реализована 
      -     функция отсутствует 

      Перечислите все функции и возможности в таблице и укажите их важность. Для каждого инструмента укажите наличие функции. Следующая таблица представляет собой фрагмент сравнения трех инструментов управления конфигурацией.  

      Функции и возможности

      Оценка 

      Инструмент 1 

      Инструмент 2 

      Инструмент 3 

      Создает версии всех объектов файловой системы  Требуется 
      Создает версии каталогов  Требуется 
      Поддерживает смешанные типы файлов  Требуется 
      Сжимает текст и двоичные данные  Рекомендуется 
      ...  ...  ...  ...  ... 

      Сравнение критериев оценки инструментов и вендоров

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

      Оцените каждый инструмент (и вендора) по следующим критериям. Рекомендуется использовать шкалу от 1 до 5:

      1. Неприменим в данной области.
      2. Имеет слабые стороны или серьезные недостатки.  
      3. Отвечает требованиям данной области.
      4. Показатели выше средних в данной области.  
      5. Оптимален в данной области.

      Опишите сравнение в таблице, как это показано ниже.  

      Критерий инструмента 

      Комментарии

      Инструмент 1  

      Инструмент 2 

      Инструмент 3 

      Функции и
      возможности 
                 
      Интеграция             
      Применимость             
      Расширяемость             
      Поддержка коллективной работы             
      Удобство использования             
      Качество             
      Производительность             
      Зрелость             

      Критерий вендора 

                 
      Стабильность             
      Предоставляемая поддержка             
      Возможности обучения             
      Направление роста             

      Сравнение стоимости

      Сравните стоимость инструментов и составьте таблицу результатов, как это показано ниже. Для оценки стоимости можно применять значения 'Низкая', 'Средняя' и 'Высокая'.  

      Стоимость 

      Комментарии

      Инструмент 1  

      Инструмент 2 

      Инструмент 3 

      Стоимость получения             
      Стоимость реализации             
      Стоимость обслуживания             

      Выбор инструментов

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

      При наличии сомнений относительно инструмента всегда рекомендуется тестировать его. Кроме того, можно обратиться к опыту применения этого инструмента в других компаниях или запросить контакты пользователей инструмента у вендора. Дополнительную информацию можно найти в сети Internet, например, обзоры, опубликованные в электронных изданиях.   

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

      Получение инструментов

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

      • Установка. Предлагаемая помощь по установке и настройке инструментов.
      • Поддержка. Уровень поддержки, предлагаемый вендором. Как правило, вендоры предлагают несколько программ поддержки различной стоимости.  
      • Обязательства вендора. Достаточно ли внимания уделяет вам вендор как новому клиенту? Какую помощью вендор может предложить для устранения неполадок инструмента? В какие сроки и по какой цене?
      • Влияние. Какое влияние вы можете оказать на дальнейшее развитие инструмента? С каким приоритетом будут учитываться ваши потребности?   
      • Обслуживание. Каким образом вендор исправляет ошибки инструмента? Запланированы ли выпуски "пакетов исправлений"?  
      • Обучение. Какие программы обучения предлагает вендор? Доступны ли обучающие курсы?  
      • Будущее продукта. Существует ли план, описывающий дальнейшее развитие инструмента?
      • Лицензии. Достаточно ли приобрести одну лицензию для всех участников проекта или требуется отдельная лицензия для каждого пользователя? Некоторые инструменты предлагают "нефиксированные" лицензии, ограничивающие одновременное число пользователей инструмента в организации.