Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Управление программными проектами - это искусство и наука планирования и ведения программных проектов. [1] Это суб-дисциплина управления проектами, в которой проекты программного обеспечения планируются, реализуются, отслеживаются и контролируются.
История [ править ]
В 1970-х и 1980-х годах индустрия программного обеспечения росла очень быстро, поскольку компьютерные компании быстро осознали относительно низкую стоимость производства программного обеспечения по сравнению с производством оборудования и схем. Чтобы управлять новыми усилиями по разработке, компании применяли установленные методы управления проектами, но графики проектов сдвигались во время тестовых прогонов, особенно когда возникала путаница в серой зоне между пользовательскими спецификациями и поставленным программным обеспечением. Чтобы избежать этих проблем, методы управления программными проектами были сосредоточены на согласовании требований пользователей к поставляемым продуктам в методе, известном сейчас как водопадная модель .
По мере развития отрасли анализ сбоев управления проектами программного обеспечения показал, что наиболее частыми причинами являются следующие: [2] [3] [4]
- Недостаточное участие конечного пользователя
- Плохое общение между клиентами, разработчиками, пользователями и руководителями проектов
- Нереалистичные или нечетко сформулированные цели проекта
- Неточные оценки необходимых ресурсов
- Плохо определенные или неполные системные требования и спецификации
- Плохая отчетность о статусе проекта
- Плохо управляемые риски
- Использование незрелой технологии
- Неспособность справиться со сложностью проекта
- Небрежная практика разработки
- Политика заинтересованных сторон (например, отсутствие поддержки со стороны руководства или политика между заказчиком и конечными пользователями)
- Коммерческое давление
Первые пять пунктов в списке выше показывают трудности с формулированием потребностей клиента таким образом, чтобы надлежащие ресурсы могли обеспечить надлежащие цели проекта. Специальные инструменты управления проектами программного обеспеченияполезны и часто необходимы, но истинное искусство управления проектами программного обеспечения - это применение правильного метода, а затем использование инструментов для его поддержки. Без метода инструменты бесполезны. С 1960-х годов производители программного обеспечения разработали несколько методов управления проектами программного обеспечения для собственного использования, в то время как компьютерные консалтинговые фирмы также разработали аналогичные методы для своих клиентов. Сегодня методы управления проектами программного обеспечения все еще развиваются, но текущая тенденция уводит от модели водопада к более циклической модели реализации проекта, которая имитирует процесс разработки программного обеспечения.
Процесс разработки программного обеспечения [ править ]
Процесс разработки программного обеспечения связан главным образом с производственным аспектом разработки программного обеспечения , в отличие от технического аспекта, таких как программные средства . Эти процессы существуют в первую очередь для поддержки управления разработкой программного обеспечения и, как правило, направлены на решение проблем бизнеса. Многие процессы разработки программного обеспечения могут выполняться аналогично общим процессам управления проектами. Примеры:
- Межличностные коммуникации и управление и разрешение конфликтов . Активное, частое и честное общение - важнейший фактор повышения вероятности успеха проекта и смягчения проблемных проектов. Команда разработчиков должна стремиться к вовлечению конечных пользователей и поощрять их участие в процессе разработки. Отсутствие участия пользователей может привести к неправильной интерпретации требований, невосприимчивости к изменяющимся потребностям клиентов и нереалистичным ожиданиям со стороны клиента. Разработчики программного обеспечения, пользователи, менеджеры проектов, клиенты и спонсоры проектов должны общаться регулярно и часто. Информация, полученная в результате этих обсуждений, позволяет команде проектаанализировать сильные и слабые стороны, возможности и угрозы (SWOT) и действовать на основе этой информации, чтобы извлечь выгоду из возможностей и минимизировать угрозы. Даже плохие новости могут быть хорошими, если они сообщаются относительно рано, потому что проблемы можно смягчить, если они не будут обнаружены слишком поздно. Например, случайный разговор с пользователями, членами команды и другими заинтересованными сторонами часто может выявить потенциальные проблемы раньше, чем официальные встречи. Все коммуникации должны быть интеллектуально честными и достоверными, и необходима регулярная, частая и качественная критика работы по развитию, если она предоставляется в спокойной, уважительной и конструктивной форме., без обвинений, без злости. Частые случайные коммуникации между разработчиками и конечными пользователями, а также между руководителями проектов и клиентами необходимы для того, чтобы проект оставался актуальным, полезным и эффективным для конечных пользователей и в рамках того, что может быть выполнено. Эффективное межличностное общение, управление и разрешение конфликтов - ключ к управлению проектами программного обеспечения. Никакая методология или стратегия улучшения процесса не может преодолеть серьезные проблемы в общении или неправильное управление межличностным конфликтом. Более того, результаты, связанные с такими методологиями и стратегиями улучшения процессов, улучшаются благодаря лучшему общению. Коммуникация должна быть сосредоточена на том, понимает ли команда устав проекта.и добивается ли команда прогресса в достижении этой цели. Конечные пользователи, разработчики программного обеспечения и руководители проектов должны часто задавать элементарные простые вопросы, которые помогают выявить проблемы, прежде чем они перерастут в катастрофу. Хотя участия конечного пользователя, эффективного общения и совместной работы недостаточно, они необходимы для обеспечения хорошего результата, а их отсутствие почти наверняка приведет к плохому результату. [3] [4] [5]
- Управление рисками - это процесс измерения или оценки риска с последующей разработкой стратегий управления риском. В общем, используемые стратегии включают передачу риска другой стороне, избегание риска, уменьшение негативного воздействия риска и принятие некоторых или всех последствий конкретного риска. Управление рисками в управлении проектами программного обеспечения начинается с бизнес-обоснования начала проекта, которое включает в себя анализ затрат и выгод, а также список резервных вариантов для отказа проекта, называемых планом действий в чрезвычайных обстоятельствах .
- Подмножество управления рисками - это управление возможностями , что означает то же самое, за исключением того, что потенциальный результат риска будет иметь положительное, а не отрицательное влияние. Хотя теоретически с этим можно справиться таким же образом, использование термина «возможность», а не несколько отрицательного термина «риск» помогает удерживать команду сосредоточенной на возможных положительных результатах любого заданного реестра рисков в своих проектах, таких как побочные проекты, непредвиденные доходы. , и бесплатные дополнительные ресурсы.
- Управление требованиями - это процесс выявления, выявления , документирования, анализа, отслеживания , определения приоритетов и согласования требований, а затем контроля изменений и обмена информацией с соответствующими заинтересованными сторонами. Новая или измененная компьютерная система [1] Управление требованиями, которое включает анализ требований , является важной частью процесса разработки программного обеспечения ; посредством чего бизнес-аналитики или разработчики программного обеспечения определяют потребности или требования клиента; После определения этих требований они могут разработать решение.
- Управление изменениями - это процесс выявления, документирования, анализа, определения приоритетов и согласования изменений в содержании (управление проектом), а затем контроль изменений и информирование соответствующих заинтересованных сторон. Анализ влияния изменений новой или измененной области, который включает анализ требований на уровне изменений, является важной частью процесса разработки программного обеспечения ; посредством чего бизнес-аналитики или разработчики программного обеспеченияидентифицировать изменившиеся потребности или требования клиента; Определив эти требования, они затем могут перепроектировать или модифицировать решение. Теоретически каждое изменение может повлиять на сроки и бюджет программного проекта, и поэтому по определению перед утверждением оно должно включать анализ рисков и выгод .
- Управление конфигурацией программного обеспечения - это процесс определения и документирования самой области действия, которая представляет собой разрабатываемый программный продукт, включая все субпродукты и изменения, а также обеспечение возможности сообщения о них соответствующим заинтересованным сторонам. Обычно используемые процессы включают в себя контроль версий , соглашение об именах (программирование) и соглашения об архивировании программного обеспечения.
- Управление выпусками - это процесс выявления, документирования, определения приоритетов и согласования выпусков программного обеспечения, а затем контроля графика выпуска и обмена информацией с соответствующими заинтересованными сторонами. Большинство программных проектов имеют доступ к трем программным средам, в которых может быть выпущено программное обеспечение; Разработка, тестирование и производство. В очень крупных проектах, где распределенным командам необходимо интегрировать свою работу перед выпуском для пользователей, часто будет больше сред для тестирования, называемых модульным тестированием , системным тестированием или интеграционным тестированием , перед выпуском для пользовательского приемочного тестирования (UAT).
- Подмножество управления выпусками, которое привлекает внимание, - это управление данными , поскольку, очевидно, пользователи могут тестировать только на основе данных, которые им известны, а «настоящие» данные находятся только в программной среде, называемой «производственной». Поэтому, чтобы проверить свою работу, программисты должны также часто создавать «фиктивные данные» или «заглушки данных». Традиционно для этой цели когда-то использовались более старые версии производственной системы, но поскольку компании все больше и больше полагаются на внешних участников в разработке программного обеспечения, данные компании могут не передаваться группам разработчиков. В сложных средах могут быть созданы наборы данных, которые затем переносятся в тестовые среды в соответствии с графиком выпуска тестов, во многом аналогичным общему графику выпуска программного обеспечения.
- Сопровождение и обновление - это процесс, в котором всегда задействованы требования и потребности клиентов. Они, несомненно, найдут ошибки, могут запросить новые функции и другие функции и дополнительные обновления. Итак, все эти запросы должны проверяться и соответствовать требованиям и удовлетворенности клиентов.
Планирование, исполнение, мониторинг и контроль проекта [ править ]
Цель планирования проекта - определить масштаб проекта, оценить объем работ и составить график проекта . Планирование проекта начинается с требований , определяющих разрабатываемое программное обеспечение. План проекта затем разработан для описания задач , которые приведут к завершению. Реализация проекта - это процесс выполнения задач, определенных в плане проекта.
Целью мониторинга и контроля проекта является информирование команды и руководства о ходе выполнения проекта. Если проект отклоняется от плана, менеджер проекта может принять меры для устранения проблемы. Мониторинг и контроль проекта включают в себя встречи о статусе для получения статуса от команды. Когда необходимо внести изменения, используется контроль изменений, чтобы поддерживать продукты в актуальном состоянии.
Проблема [ править ]
Этот раздел, возможно, содержит оригинальные исследования . Ноябрь 2018 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) ( |
В этом разделе не процитировать любые источники . Декабрь 2020 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) ( |
В вычислительной технике термин «проблема» - это единица работы, направленная на улучшение системы. [ необходима цитата ] Проблемой может быть ошибка , запрошенная функция , задача, отсутствующая документация и т. д.
Например, OpenOffice.org раньше называл свою модифицированную версию Bugzilla IssueZilla. По состоянию на сентябрь 2010 [Обновить]года они называют свою систему отслеживанием проблем. [ требуется обновление ]
Уровни серьезности [ править ]
Проблемы часто классифицируются по уровням серьезности . У разных компаний разные определения степени серьезности, но некоторые из наиболее распространенных:
- Высокая
- Ошибка или проблема затрагивает важную часть системы и должна быть исправлена, чтобы она могла возобновить нормальную работу.
- Середина
- Ошибка или проблема затрагивает незначительную часть системы, но оказывает некоторое влияние на ее работу. Этот уровень серьезности назначается, когда затрагивается нецентральное требование системы.
- Низкий / фиксированный
- Ошибка или проблема затрагивает незначительную часть системы и очень мало влияет на ее работу. Этот уровень серьезности назначается, когда затрагивается нецентральное требование системы (и менее важное).
- Тривиальный (косметический, эстетический)
- Система работает корректно, но внешний вид не соответствует ожидаемому. Например: неправильные цвета, слишком большой или слишком маленький интервал между содержимым, неправильный размер шрифта, опечатки и т. Д. Это проблема самой низкой степени серьезности.
Управление проблемами [ править ]
Во многих софтверных компаниях [ какие? ] проблемы часто исследуются аналитиками по обеспечению качества, когда они проверяют систему на правильность, а затем передаются разработчику (разработчикам), которые несут ответственность за их решение. Они также могут быть назначены пользователями системы на этапе приемочного тестирования пользователей (UAT) .
О проблемах сообщается с помощью систем отслеживания проблем или дефектов . В некоторых других случаях используются [ пример необходимо ] электронные письма или мессенджеры .
Философия [ править ]
Некоторые рассматривают управление разработкой программного обеспечения как субдисциплину управления проектами, как управление производством , которое может выполняться кем-то с управленческими навыками, но без навыков программирования. John C. Reynolds опровергает эту точку зрения, и утверждает , что разработка программного обеспечения полностью спроектировать работу, и сравнивает менеджер , который может не программу для главного редактора в виде газеты , который не может писать . [6]
Ссылки [ править ]
- ^ a b Стеллман, Эндрю; Грин, Дженнифер (2005). Управление прикладными программными проектами . O'Reilly Media. ISBN 978-0-596-00948-9. Архивировано из оригинала на 2015-02-09.
- ^ "Почему программное обеспечение не работает" , в IEEE Spectrum
- ^ a b Производство программного обеспечения с открытым исходным кодом: как запустить успешный проект свободного программного обеспечения (электронная книга, которую можно бесплатно загрузить), Карл Фогель.
- ^ a b Роберт Фрезе и Вики Заутер , «Повышение шансов на успех программного проекта», IEEE Engineering Management Review , Vol. Четвертый квартал, 42, No. 4, декабрь 2014 г.
- ^ Филип Гринспан , Основатели Джессики Ливингстон в работе (2007), ISBN 1-59059-714-1
- ^ Джон С. Рейнольдс, Некоторые мысли об обучении программированию и языкам программирования ,Уведомления SIGPLAN , Том 43, Выпуск 11, ноябрь 2008 г., стр.108: «Некоторые утверждают, что можно управлять производством программного обеспечения, не имея возможности программировать. возникают из ошибочного представления о том, что производство программного обеспечения - это форма производства. Но производство - это повторное конструирование идентичных объектов, а производство программного обеспечения - это конструирование уникальных объектов, т. е. весь процесс - это форма проектирования. Как таковое, оно ближе к производству газеты [sic] - так что менеджер программного обеспечения, который не может программировать, сродни управляющему редактору, который не может писать ".
- Общий
- 16326: 2019 (E) - Международный стандарт ISO / IEC / IEEE - Системная и программная инженерия - Процессы жизненного цикла - Управление проектами . 2019 DOI : 10,1109 / IEEESTD.2019.8932690 . ISBN 978-1-5044-6299-0.
- 1058-1998 - Стандарт IEEE для планов управления проектами программного обеспечения . 1998. DOI : 10,1109 / IEEESTD.1998.88822 . ISBN 978-0-7381-1448-4.
- Джалоте, Панкадж (2002). Управление программными проектами на практике . Эддисон-Уэсли. ISBN 0-201-73721-3.
- Мурали Chemuturi, Томас М. Кэгли младший и (2010). Управление программными проектами: передовой опыт, инструменты и методы . Издательство J.Ross. ISBN 978-1-60427-034-1.
Внешние ссылки [ править ]
- Ресурсы по управлению программными проектами от Дэна Галората
Сбой проекта [ править ]
- Роберт Фрезе (2003-12-16). «УСПЕХ И НЕИСПРАВНОСТЬ ПРОЕКТА: ЧТО ТАКОЕ УСПЕХ, ЧТО ТАКОЕ НЕУДАЧА, И КАК ВЫ МОЖЕТЕ УЛУЧШИТЬ СВОИ ДОСТИЖЕНИЯ УСПЕХА?» . Университет Миссури-Св. Луи . Проверено 13 мая 2015 .
- Джозеф Гулла (февраль 2012 г.). «Семь причин провала ИТ-проектов» . Журнал IBM Systems . Проверено 13 мая 2015 .