Современные технологии создания программного обеспечения


Основные особенности и проблемы современных программных проектов - часть 3


В конце 60-х годов прошлого века в США было отмечено явление под названием "software crisis" (кризис ПО). Это выражалось в том, что большие проекты стали выполняться с отставанием от графика или с превышением сметы расходов, разработанный продукт не обладал требуемыми функциональными возможностями, производительность его была низка, качество получаемого программного обеспечения не устраивало потребителей.

Аналитические исследования и обзоры, выполняемые в течение ряда последних лет ведущими зарубежными аналитиками, показывали не слишком обнадеживающие результаты. Так, например, результаты исследований, выполненных в 1995 году компанией Standish Group, которая проанализировала работу 364 американских корпораций и итоги выполнения более 23 тысяч проектов, связанных с разработкой ПО, выглядели следующим образом:

  • только 16,2% завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности;
  • 52,7% проектов завершились с опозданием, расходы превысили запланированный бюджет, требуемые функции не были реализованы в полном объеме;
  • 31,1% проектов были аннулированы до завершения;
  • для двух последних категорий проектов бюджет среднего проекта оказался превышенным на 89%, а срок выполнения - на 122%.

В 1998 году процентное соотношение трех перечисленных категорий проектов лишь немного изменилось в лучшую сторону (26%, 46% и 28% соответственно).

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

В числе причин возможных неудач, по мнению разработчиков, фигурируют:

  • нечеткая и неполная формулировка требований к ПО;
  • недостаточное вовлечение пользователей в работу над проектом;
  • отсутствие необходимых ресурсов;
  • неудовлетворительное планирование и отсутствие грамотного управления проектом;
  • частое изменение требований и спецификаций;
  • новизна и несовершенство используемой технологии;
  • недостаточная поддержка со стороны высшего руководства;
  • недостаточно высокая квалификация разработчиков, отсутствие необходимого опыта.




Начало  Назад  Вперед