Управление проектами по разработке программного обеспечения
Управление проектами по разработке программного обеспечения — это применение методов планирования, организации, оценки и контроля к проектам по разработке программного обеспечения с целью создания нужного продукта в рамках приемлемых затрат, сроков и качества.
Definition
Управление проектами по разработке программного обеспечения — это дисциплина планирования, мониторинга и контроля людей, процессов и ресурсов проекта по разработке программного обеспечения для достижения его целей по объему, срокам, стоимости и качеству.
Scope
Эта область охватывает оценку трудозатрат и стоимости; составление расписания и планирование; управление рисками; организацию команды и человеческие факторы в работе над программным обеспечением; управление конфигурацией и изменениями; управление качеством программного обеспечения; измерения и метрики для отслеживания прогресса; а также специфические экономические и координационные проблемы, которые отличают управление разработкой программного обеспечения от других инженерных проектов.
Sub-topics
Core questions
- Как оцениваются трудозатраты, стоимость и сроки разработки программного обеспечения в условиях неопределенности?
- Как выявляются, приоритизируются и смягчаются риски на протяжении проекта?
- Как структура команды и коммуникации влияют на производительность?
- Как контролируются изменения и качество на протяжении всего проекта?
Key theories
- Закон Брукса и экономика команд
- Брукс заметил, что добавление людей в отстающий проект по разработке программного обеспечения еще больше задерживает его, поскольку накладные расходы на коммуникацию и адаптацию растут быстрее, чем добавляемая мощность, что подчеркивает, что трудозатраты на разработку программного обеспечения не являются просто делимыми.
- Алгоритмическая оценка стоимости
- Модели, такие как COCOMO, оценивают трудозатраты и сроки как функции размера и факторов проекта, предоставляя воспроизводимые, калибруемые оценки, которые дополняют экспертные суждения и подходы, основанные на аналогии.
Clinical relevance
Надлежащее управление проектами определяет, будет ли программное обеспечение поставлено в срок и в рамках бюджета с адекватным качеством; плохая оценка, неуправляемые риски и игнорирование нелинейной экономики команд являются основными причинами неудач и перерасхода средств в проектах по разработке программного обеспечения.
Evidence & guidelines
Область знаний SWEBOK Software Engineering Management и руководство PMBOK предоставляют общепринятые основы, а такие стандарты, как ISO/IEC/IEEE 16326, касаются планирования управления проектами по разработке программного обеспечения.
History
Брукс обобщил трудные уроки крупных проектов 1960-х годов в устойчивые принципы управления в 1975 году; Боэм формализовал экономику программного обеспечения и оценку стоимости в 1981 году; с тех пор эта область включила управление рисками, метрики и более легкое, адаптивное планирование гибких методов.
Debates
- Прогностическое против адаптивного управления проектами
- Ведутся споры о том, как лучше управлять проектами по разработке программного обеспечения: с помощью детальных предварительных планов или с помощью адаптивного, итерационного контроля; гибкие методы (agile) отдают предпочтение эмпирическому контролю и частому перепланированию, в то время как традиционное управление подчеркивает базовые планы, при этом гибридные подходы являются обычным явлением.
Key figures
- Frederick Brooks
- Barry Boehm
- Tom DeMarco
- Watts Humphrey
Related topics
Seminal works
- brooks1995
- boehm1981
- swebok2014
Frequently asked questions
- Почему добавление людей в отстающий проект еще больше задерживает его?
- Новых людей необходимо ввести в курс дела, а количество коммуникационных путей растет примерно пропорционально квадрату размера команды; возникающие накладные расходы и сбои изначально уменьшают, а не увеличивают производительность, что известно как закон Брукса.
- Почему так сложно оценивать разработку программного обеспечения?
- Программное обеспечение нематериально, часто ново и формируется меняющимися требованиями, поэтому исторические аналогии несовершенны, а неопределенность высока; дисциплинированная оценка сочетает модели, экспертные суждения и диапазоны, а не одноточечные предположения, для управления этой неопределенностью.