Управление разработкой программного обеспеченияУправле́ние разрабо́ткой програ́ммного обеспе́чения (англ. Software project management) — особый вид управления проектами, в рамках которого происходит планирование, отслеживание и контроль за проектами по разработке программного обеспечения. Ключевым моментом в управлении проектом по разработке программного обеспечения является правильный выбор метода разработки. Основные отличия от других видов управления проектами
ИсторияПричины возникновенияВ связи с быстрым увеличением мощностей компьютеров в 60-е и 70-е годы XX века проблемы, которые могли быть решены с их помощью, становились сложнее. Поэтому требовались более масштабные проекты, включавшие в себя координацию труда большего числа людей и написание гораздо большего объёма кода. Однако методы, применявшиеся к управлению такими проектами, были рассчитаны на решение задач в рамках намного меньших проектов. Отсутствие необходимой методологии привело к огромному числу провальных проектов. Попытки изменить положение к лучшему привели к созданию новой модели процесса разработки, концентрировавшей больше внимания на соответствие конечного программного продукта изначальным требованиям заказчика. Дальнейшее развитиеИсследования проектов, окончившихся неудачей, показали, что самыми распространёнными причинами провалов были:[1]
С тех пор было представлено несколько усовершенствований уже существующих (итеративный подход) и совершенно новых (разработка через тестирование) методов управления разработкой программного обеспечения. Тем не менее, сегодня проглядывается тенденция к переходу от каскадной модели к циклической, имитирующей стадии разработки программного обеспечения. Основные методы разработки программного обеспеченияГОСТ 19 «Единая система программной документации»[2] и ГОСТ 34 «Стандарты на разработку автоматизированных систем»[3] ориентированы на последовательный подход в разработке программного обеспечения. Разработка в соответствии с этими стандартами проводится по этапам, каждый из которых предполагает выполнение строго определенных работ. Строгое следование этим ГОСТам приводит к каскадной модели. На основе этих стандартов разрабатываются программные системы по госзаказам в России. Данная модель была разработана в середине 80-х годов XX века Институтом программной инженерии, входящим в состав Университета Карнеги-Мелона с целью создать эталонную модель организации разработки программного обеспечения. Основана на проверке соответствия организации определённым требованиям и определении уровня зрелости процесса разработки программного обеспечения. Унифицированный процесс был разработан компанией Rational Software в качестве дополнения к языку UML. Модель RUP описывает абстрактный общий процесс, на основе которого организация или проектная команда должна создать конкретный специализированный процесс, ориентированный на её потребности. Microsoft Solutions Framework построена на основе итеративной разработки. Особенностью MSF является большое внимание к созданию эффективной и небюрократизированной команды. PSP/TSPPersonal Software Process определяет требования к компетенциям разработчика для того, чтобы они смогли получить необходимые навыки для Team Software Process. Team Software Process в комбинации с Personal Software Process делает ставку на самоуправляемые команды численностью 3-20 человек. Команды должны:
Основная идея всех гибких моделей заключается в том, что применяемый в разработке программного обеспечения процесс должен быть адаптивным. Они ставят своей целью ориентированность на людей и их взаимодействие, а не на процессы и средства. Все гибкие модели основываются на итеративности, инкрементальности, самоуправляемости команды и адаптивности процесса. Сопутствующие процессы при управлении проектомПроцесс управления проектом по разработке программного обеспечения включает в себя другие, более специфицированные процессы, направленные на принятие тех или иных бизнес-решений. Многие из них могут применяться к другим видам проектов. Например:
Планирование, отслеживание и контроль за проектом
ФилософияВ целом к управлению разработкой программного обеспечения, имеющим много заимствований из управления проектами, можно применять методики из традиционного управления. Однако в силу уникальности отрасли опыт профессионалов, накопленный в материальном производстве и изложенный например в стандарте PMI PMBOK, мало способствует успеху в управлении проектом по созданию программного обеспечения. По поводу того, какими знаниями и навыками должен обладать управляющий проектом по разработке программного обеспечения, существует много мнений. Например, известный американский ученый в области компьютерных наук Джон Рейнольдс писал:
См. такжеПримечания
Литература
СсылкиНерабочая ссылка |
Portal di Ensiklopedia Dunia