Софтверная компания

редактировать
Компания, разрабатывающая программное обеспечение

A софтверная компания - это компания, основными продуктами которой являются различные формы программного обеспечения, программные технологии, распространение и разработка программных продуктов. Они составляют индустрию программного обеспечения.

Содержание
  • 1 Типы
  • 2 Общие роли в компании-разработчике программного обеспечения
  • 3 Структура
  • 4 Методологии
  • 5 Жизненный цикл продукта
  • 6 Системы и процедуры
    • 6.1 Бизнес-аналитики
    • 6.2 Программисты
    • 6.3 Тестировщики
    • 6.4 Менеджеры проектов / продуктов
  • 7 Аудиты эффективности
  • 8 См. также
  • 9 Ссылки
Типы

Существует несколько различных типов компаний-разработчиков программного обеспечения:

Все они могут быть отнесены к одной или многие из следующего:

  • договорный - когда компания-разработчик программного обеспечения получает контракт на поставку определенного программного обеспечения извне (программное обеспечение аутсорсинг )
  • разработка продукта - когда она производит готовое к использованию упакованное программное обеспечение; Готовый коммерческий продукт
Общие роли в компании-разработчике программного обеспечения

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

Профессиональная компания-разработчик программного обеспечения обычно состоит как минимум из трех специализированных подгрупп:

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

Структура

Менеджер компании-разработчика программного обеспечения обычно называют главой разработки (HOD) и отчитывается перед заинтересованными сторонами. Он или она возглавляет подгруппы напрямую или через менеджеров / лидеров в зависимости от размера организации. Обычно наиболее оперативными являются бригады до 10 человек. В более крупных организациях, как правило, существуют две модели иерархии:

Типичная структура компании-разработчика программного обеспечения

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

Матричная структура

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

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

Методологии

Компании-разработчики программного обеспечения могут использовать ряд различных методологий для создания кода. Сюда могут входить:

Существуют также некоторые методологии, которые объединяют оба, например, спиральная модель, Rational Unified Process (RUP) или MSF..

Жизненный цикл продукта

Независимо от используемой методологии, жизненный цикл продукта всегда состоит как минимум из трех этапов:

  • Дизайн - включая бизнес-спецификацию и техническую спецификацию
  • C - сама разработка
  • Тестирование - управление качеством

Каждый этап в идеале занимает 30% общего времени, а оставшиеся 10% остаются в резерве.

UML диаграмма последовательности взаимодействия между этими группами может выглядеть так:

Общее взаимодействие между четырьмя основными группами

На каждом этапе разные group играет ключевую роль, однако каждый тип ролей должен быть задействован на протяжении всего процесса разработки:

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

компании-разработчики программного обеспечения обладают различными системами и процедурами, которые внедрены и работают внутри всех подгрупп. К ним относятся:

Бизнес-аналитики

Программисты

Тестировщики

Менеджеры проектов / продуктов

Есть также Управление жизненным циклом приложений (ALM), которые объединяют некоторые из этих функций в одном пакете и используются во всех группах. Они поставляются различными поставщиками, такими как Borland, ECM или Compuware.

Аудит эффективности

Хорошо зарекомендовавшие себя компании-разработчики программного обеспечения обычно имеют какой-то способ измерения собственной эффективности. Обычно это делается путем определения набора ключевых показателей эффективности (KPI), таких как

  • Среднее количество ошибок, совершаемых разработчиком за единицу времени, или строк исходного кода
  • Количество ошибок, обнаруженных тестером за цикл тестирования
  • Среднее количество циклов тестирования до Zero Bug Bounce (ZBB)
  • Среднее время цикла тестирования
  • Расчетное время выполнения задачи по сравнению с реальным временем выполнения задачи (точность планирования)
  • Количество корректировок к исходному уровню

Ряд организаций ориентированы на достижение оптимального уровня Модель зрелости возможностей (CMM), где «оптимальный» не обязательно означает наивысший. Существуют также другие системы, такие как SEMA Университета Карнеги-Меллона или отдельные стандарты ISO. Небольшие софтверные компании иногда используют менее формализованные подходы. Каждая организация вырабатывает свой собственный стиль, который находится где-то между тотальной технократией (где все определяется числами) и тотальной анархией (где чисел вообще нет). Каким бы путем ни пошла организация, они рассматривают пирамиду, описывающую стоимость и риск внесения изменений в уже начатые процессы разработки:

пирамида, показывающая риск и временные затраты на изменение
См. Также
Ссылки
  1. ^«Что такое компания-разработчик программного обеспечения сегодня?». RedMonk. 2014. Получено 2 июня 2017 г.
  2. ^Независимый поставщик программного обеспечения - что такое ISV? 10duke.com
  3. ^Процесс разработки программного обеспечения: принципы, методология и технология Автор: Жан Клод Дерниям, Бадара Али Каба, Дэвид Уастелл стр.166
  4. ^Greenlit: разработка телевизионных идей, основанных на фактах и ​​реальности, от концепции до презентации стр.12
  5. ^Управление успешными проектами с помощью PRINCE2
  6. ^Руководство пользователя к PMBOK Guide
  7. ^Планирование экстремального программирования
  8. ^Agile Project Управление с помощью Scrum
  9. ^Упрощение рационального унифицированного процесса: практическое руководство по RUP
  10. ^Microsoft Solutions Framework (MSF): карманное руководство
Последняя правка сделана 2021-06-08 08:26:55
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте