Компания-разработчик программного обеспечения
Компания разработчик программного обеспечения - — это коммерческое предприятие, которое специализируется на разработке, распространении и обслуживании программных продуктов и услуг. Эти компании создают различные программные решения, включая коммерческое программное обеспечение, специальное программное обеспечение , программное обеспечение как услугу ( SaaS ), программное обеспечение с открытым исходным кодом и встроенное программное обеспечение. Они варьируются от небольших стартапов до крупных корпораций, занимающихся такой деятельностью, как разработка программного обеспечения, тестирование, развертывание и поддержка.
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Компания -разработчик программного обеспечения — это организация, принадлежащая государству или частной собственности, созданная с целью получения прибыли, основной продукцией которой являются различные формы программного обеспечения , программные технологии, распространение и разработка программных продуктов. [1] Они составляют индустрию программного обеспечения .
Типы
[ редактировать ]Существует несколько типов компаний-разработчиков программного обеспечения:
- Есть компании, продающие готовые к использованию коммерческие продукты (COTS).
- Многие компании предоставляют услуги по разработке программного обеспечения и имеют структуру для разработки специального программного обеспечения для других компаний и предприятий.
- Компании, производящие специализированное коммерческое готовое программное обеспечение.
- Компании, предоставляющие программное обеспечение как услугу ( SaaS ).
- Существуют также другие типы SaaS-продуктов компаний, предоставляющих услуги ИТ-инфраструктуры и услуги облачных вычислений.
- API как услуга, позволяющая сторонним разработчикам взаимодействовать с программным обеспечением компании.
- Компании, производящие программные компоненты .
- Поставщик услуг приложений .
- Компании, производящие программное обеспечение на заказ для вертикальных отраслей или определенных географических регионов.
- Независимые поставщики программного обеспечения (ISV) , которые создают, разрабатывают и продают потребительское или корпоративное программное обеспечение , используемое конечными пользователями .
Общие роли в компании-разработчике программного обеспечения
[ редактировать ]Организация компании- разработчика программного обеспечения — это очень специализированный тип управленческих навыков, при котором опытные люди могут превратить организационную проблему в уникальное преимущество. Например, размещение подгрупп в разных часовых поясах может обеспечить 24-часовой рабочий день компании, если команды, системы и процедуры хорошо отлажены. Хорошим примером является команда тестировщиков, находящаяся в часовом поясе на 8 часов впереди или позади команды разработчиков, которая исправляет ошибки программного обеспечения, обнаруженные тестировщиками.
Профессиональная компания-разработчик программного обеспечения обычно состоит как минимум из трех специализированных подгрупп:
- Бизнес-аналитики, определяющие бизнес-потребности рынка
- Разработчики программного обеспечения , которые создают техническую спецификацию и пишут программное обеспечение.
- Тестировщики программного обеспечения, которые отвечают за весь процесс управления качеством.
В более крупных компаниях-разработчиках программного обеспечения используется более широкая специализация, и нередко также присутствуют:
- Технические писатели , которые пишут всю документацию, например руководства пользователя.
- Специалисты по выпуску, которые отвечают за создание всего продукта и версий программного обеспечения.
- Дизайнеры пользовательского опыта , которые создают архитектуру дизайна на основе бизнес-требований, пользовательских исследований и опыта в области юзабилити.
- Графические дизайнеры , которые обычно отвечают за разработку графического пользовательского интерфейса .
- Инженеры по техническому обслуживанию, находящиеся за двумя, тремя или более линиями поддержки
- Консультанты несут ответственность за введение решения в эксплуатацию, особенно если необходимы некоторые специальные знания. Примеры этого включают: построение многомерных кубов в программном обеспечении для бизнес-аналитики , интеграцию с существующими решениями и реализацию бизнес-сценариев в программном обеспечении для управления бизнес-процессами .
Структура
[ редактировать ]Менеджера компании-разработчика программного обеспечения обычно называют руководителем отдела разработки (HOD). [2] и отчитывается перед заинтересованными сторонами . Он или она руководит подгруппами напрямую или через менеджеров/лидеров в зависимости от размера организации . Обычно наиболее оперативными являются команды численностью до 10 человек. В более крупных организациях обычно существуют две модели иерархии:
Все команды полностью независимы и работают над разными проектами отдельно. Структура довольно проста, и все сотрудники подчиняются одному человеку, что проясняет ситуацию, однако это не является хорошим решением с точки зрения обмена знаниями и оптимального использования человеческих ресурсов.
В этой модели есть выделенные менеджеры/лидеры для каждой основной специализации, «арендирующие» своих людей для конкретных проектов под руководством менеджеров продуктов/проектов, которые формально или неформально покупают людей и платят за их время. Это приводит к тому, что у каждого частного сотрудника есть два начальника – менеджер по продукту/проекту и специализированный «ресурсный» менеджер. С одной стороны, это оптимизирует использование человеческих ресурсов, с другой стороны, это может привести к конфликтам, в отношении которых один менеджер имеет приоритет в структуре.
Существует также ряд вариантов этих структур, и в ряде организаций эта структура распределена и разделена между различными отделами и подразделениями.
Методологии
[ редактировать ]Компании-разработчики программного обеспечения могут использовать ряд различных методологий для создания кода. Они могут включать в себя:
- водопадная модель , включая методологии управления проектами, такие как PRINCE2 [3] или ПМБОК [4]
- гибкая разработка программного обеспечения , например, экстремальное программирование [5] и СКРАМ [6]
Существуют также некоторые методологии, сочетающие в себе оба метода, например модель спиральная Rational Unified Process (RUP). [7] или MSF . [8]
Жизненный цикл продукта
[ редактировать ]Независимо от используемой методологии жизненный цикл продукта всегда состоит как минимум из трех стадий:
- Дизайн – включая как деловую, так и техническую спецификацию
- Кодирование – сама разработка
- Тестирование – управление качеством
Каждый этап в идеале занимает 30% общего времени, остальные 10% остаются в запасе.
взаимодействия UML- диаграмма между этими группами может выглядеть так:
На каждом этапе ключевую роль играет отдельная группа, однако каждый тип роли должен быть задействован на протяжении всего процесса разработки:
- Аналитики после завершения бизнес-спецификации управляют меняющейся бизнес-ситуацией, чтобы свести к минимуму возможность изменений с течением времени. Они также поддерживают как программистов, так и тестировщиков на протяжении всего процесса разработки, чтобы гарантировать, что конечный продукт соответствует бизнес-потребностям, указанным в начале. В идеале этот процесс делает бизнес-аналитиков ключевыми игроками во время окончательной доставки решения заказчику, поскольку они лучше всего подходят для обеспечения наилучшего бизнес-уровня.
- Программисты составляют техническую спецификацию на этапе проектирования, поэтому их называют программистами/дизайнерами, а во время тестирования они исправляют ошибки.
- Тестировщики завершают сценарии тестирования на этапе проектирования и оценивают их на этапе кодирования.
Системы и процедуры
[ редактировать ]Компании-разработчики программного обеспечения обладают различными системами и процедурами, внедренными и работающими внутри всех подгрупп. К ним относятся:
Бизнес-аналитики
[ редактировать ]- Инструменты моделирования, такие как Sparx Systems Enterprise Architect или IBM Rational Rose.
Программисты
[ редактировать ]- Системы контроля версий и версиями программного обеспечения процедуры управления
- Инструменты анализа кода и стандарты кодирования , проверяемые вручную или автоматически.
- Механизмы развертывания
Тестеры
[ редактировать ]- Системы отслеживания ошибок
- автоматизации тестирования Инструменты
- Инструменты производительности и стресс-тестирования
Менеджеры проектов/продуктов
[ редактировать ]- Системы и процедуры управления корпоративными проектами (EPM)
- Управление портфелем продуктов (PPM)
- управления изменениями Системы и процедуры
Существуют также средства управления жизненным циклом приложений (ALM), которые объединяют некоторые из этих функций в один пакет и используются в группах. Они поставляются различными поставщиками, такими как Borland , ECM или Compuware .
Аудит эффективности
[ редактировать ]Хорошо зарекомендовавшие себя компании-разработчики программного обеспечения обычно имеют какой-то способ измерения собственной эффективности. Обычно это делается путем определения набора ключевых показателей эффективности (KPI), таких как
- Среднее количество ошибок, допущенных разработчиком за единицу времени или исходных строк кода.
- Количество ошибок, обнаруженных тестировщиком за цикл тестирования.
- Среднее количество циклов тестирования до момента отсутствия ошибок (ZBB)
- Среднее время испытательного цикла
- Расчетное время выполнения задачи по сравнению с реальным временем выполнения задачи (точность планирования)
- Количество корректировок базовой линии
Ряд организаций ориентированы на достижение оптимального уровня модели зрелости возможностей (CMM), где «оптимальный» не обязательно означает самый высокий. Существуют также другие системы, такие как Карнеги-Меллона Университета SEMA или отдельные стандарты ISO . Небольшие компании-разработчики программного обеспечения часто используют упрощенные подходы к своим процессам, формализованным или нет. Каждая организация вырабатывает свой собственный стиль, который находится где-то между тотальной технократией (где все определяется цифрами) и тотальной анархией (где цифр вообще нет). Какой бы путь ни избрала организация, она считает пирамиду, описывающую стоимость и риск внесения изменений в уже начавшиеся процессы разработки, истинной моделью управления изменениями.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Что такое компания-разработчик программного обеспечения сегодня?» . РедМонк. 2014 . Проверено 2 июня 2017 г.
- ^ Greenlit: Разработка идей фактического/реалити-шоу от концепции до презентации, стр. 12
- ^ Управление успешными проектами с PRINCE2.
- ^ Руководство пользователя к руководству PMBOK.
- ^ Планирование экстремального программирования
- ^ Гибкое управление проектами с помощью Scrum
- ^ Рациональный унифицированный процесс стал проще: руководство для практикующего специалиста по RUP.
- ^ Microsoft Solutions Framework (MSF): Карманное руководство