stringtranslate.com

Управление программными проектами

Управление программными проектами — это процесс планирования и руководства программными проектами. [1] Это подраздел управления проектами , в котором программные проекты планируются, реализуются, контролируются и отслеживаются.

История

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

По мере развития отрасли анализ неудач в управлении программными проектами показал, что наиболее распространенными причинами являются следующие: [2] [3] [4]

  1. Недостаточное участие конечного пользователя
  2. Плохая коммуникация между клиентами, разработчиками, пользователями и менеджерами проектов
  3. Нереалистичные или неясные цели проекта
  4. Неточные оценки необходимых ресурсов
  5. Неправильно определенные или неполные системные требования и спецификации
  6. Плохая отчетность о статусе проекта
  7. Плохо управляемые риски
  8. Использование незрелых технологий
  9. Неспособность справиться со сложностью проекта
  10. Небрежные методы разработки
  11. Политика заинтересованных сторон (например, отсутствие поддержки руководства или политика в отношениях между заказчиком и конечными пользователями)
  12. Коммерческое давление

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

Процесс разработки программного обеспечения

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

Планирование, выполнение, мониторинг и контроль проекта

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

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

Проблема

В вычислительной технике термин «проблема» означает единицу работы по улучшению системы. [6] Проблемой может быть ошибка , запрошенная функция , задача, отсутствующая документация и т. д.

Например, OpenOffice.org называл свою модифицированную версию Bugzilla IssueZilla. С сентября 2010 года они называют свою систему Issue Tracker. [ требуется обновление ]

Уровни серьезности

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

Высокий
Ошибка или проблема затрагивает важную часть системы и должна быть устранена, чтобы возобновить ее нормальную работу.
Середина
Ошибка или проблема затрагивает незначительную часть системы, но оказывает некоторое влияние на ее работу. Этот уровень серьезности назначается, когда затрагивается нецентральное требование системы.
Низкий / Фиксированный
Ошибка или проблема затрагивает незначительную часть системы и оказывает очень незначительное влияние на ее работу. Этот уровень серьезности назначается, когда затрагивается нецентральное требование системы (и с меньшей важностью).
Тривиальный (косметический, эстетический)
Система работает правильно, но внешний вид не соответствует ожидаемому. Например: неправильные цвета, слишком большой или слишком маленький интервал между содержимым, неправильные размеры шрифта, опечатки и т. д. Это проблема самой низкой степени серьезности.

Управление проблемами

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

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

Философия

Как поддисциплину управления проектами, некоторые рассматривают управление разработкой программного обеспечения как нечто похожее на управление производством , которое может выполняться кем-то с навыками управления, но без навыков программирования. Джон К. Рейнольдс опровергает эту точку зрения и утверждает, что разработка программного обеспечения — это полностью проектная работа, и сравнивает менеджера , который не умеет программировать , с главным редактором газеты , который не умеет писать . [7]

Ссылки

  1. ^ ab Stellman, Andrew; Greene, Jennifer (2005). Управление прикладными программными проектами. O'Reilly Media. ISBN 978-0-596-00948-9. Архивировано из оригинала 2015-02-09.
  2. ^ «Почему программное обеспечение терпит неудачу», в IEEE Spectrum
  3. ^ ab Производство программного обеспечения с открытым исходным кодом: как запустить успешный проект свободного программного обеспечения (электронная книга, доступна для бесплатной загрузки), Карл Фогель
  4. ^ Роберт Фрезе и Вики Сотер , «Повышение шансов на успех программного проекта», IEEE Engineering Management Review , том 42, № 4, четвертый квартал, декабрь 2014 г.
  5. ^ Филип Гринспан , в книге Джессики Ливингстон « Основатели на работе » (2007), ISBN 1-59059-714-1 
  6. ^ Дейн, Бертрам (2009). "Социальная природа отслеживания проблем в программной инженерии" (PDF) . Архивировано из оригинала (PDF) 2016-11-08 . Получено 2023-10-07 .
  7. ^ Джон К. Рейнольдс, Некоторые мысли о преподавании программирования и языков программирования , SIGPLAN Notices, том 43, выпуск 11, ноябрь 2008 г., стр. 108: «Некоторые утверждают, что можно управлять производством программного обеспечения, не умея программировать. Это убеждение, по-видимому, возникает из ошибочного представления о том, что производство программного обеспечения является формой производства. Но производство — это повторяющееся создание идентичных объектов, в то время как производство программного обеспечения — это создание уникальных объектов, т. е. весь процесс является формой проектирования. Как таковой он ближе к производству газеты [sic] — так что менеджер по программному обеспечению, который не умеет программировать, сродни главному редактору, который не умеет писать».
Общий

Внешние ссылки