Начнем с тревожной статистики. Как утверждала в 1995 году группа Standish, только примерно 16% программных проектов оказываются успешными, 53% испытывают трудности (то есть перерасходы финансовых средств, перерасход бюджета или недостатки в содержании) и 31% отменяются.
Более того, говорится, что среднестатистический программный проект завершается с 222% опозданием, 189% перерасходом бюджета и реализует только 61% от предусмотренных функций. Опыт показывает, что мало что изменилось с тех пор. Неудачи стали нормой для информационной отрасли. Что мы можем сделать с этим? Хорошая отправная точка – рассмотрение нескольких ключевых причин провала программных проектов. Недостаточно времени Часто предельный срок устанавливается до начала проекта и не подлежит обсуждению. Это приводит к крайне поспешному началу исходя из того, что чем раньше начать писать код, тем скорее все будет завершено. Это почти всегда неверный подход. Очень важно потратить время на создание хорошей конструкции. Отсутствие хорошей конструкции ведет к непрерывным изменениям на всем протяжении фазы разработки. Когда это происходит, время и бюджет тратятся с очень большой скоростью. Решение: Найдите время на создание хорошей конструкции. Сопротивляйтесь искушению сразу перейти к написанию кода. Выделите время на это - и остальная часть проекта будет выполняться намного лучше. Ваша репутация улучшится, когда вы произведете что-либо, удовлетворяющее ожидания клиентов и хорошо работающее. Недостаточный бюджет Многие проекты следуют стратегии " минимальная цена - наиболее успешный кандидат", или нереально низкий бюджет, не основанный на настоящих требованиях. Когда это происходит, все имеет склонность замедляться. Ресурсы медленно прибывают или вообще не прибывают, срезаются углы и страдает качество. Решение: Устанавливайте реалистичный бюджет и убеждайтесь, что он основан на реальных требованиях. Не выбирайте поставщика только лишь по самой низкой цене. Сотрудничайте с поставщиком или группой, имеющей проверенный послужной список производства продукта в рамках бюджета. Плохие коммуникации Есть старая пословица "никогда ничего не предполагайте", которая особенно верна для программных проектов. Хорошие коммуникации с клиентом, пользователями и особенно с группой разработчика крайне важны для успеха проекта. Все ли в группе понимают вас? Знают ли они, что именно от них ожидается, или вы предполагаете, что они знают? Хорошо ли они взаимодействуют друг с другом, с пользователями и с другими отделами? Решение: Выявите возможные нарушения в коммуникации. Они могут привести к путанице и трудностям с проектом в дальнейшем. Никогда не считайте, что все понимают. Выделите время на создание среды, которая позволит завершить проект по графику, в рамках бюджета и в соответствии с ожиданиями клиентов. Отсутствие проверок прогресса проекта По мере прогресса проекта происходят изменения, которые сильно влияют на проект. Важно регулярно отслеживать прогресс, чтобы можно было сразу преодолеть трудности и предупредить заинтересованных лиц о возможных задержках и изменениях проекта. Решение: Устанавливайте часто повторяющиеся контрольные точки в течение проекта, в которых вы можете проверить прогресс вместе с группой и внести любые корректировки, необходимые, чтобы остаться на правильном пути. Оставайтесь близки с вашей группой, тогда вы сможете понять, что происходит, и то, с какими трудностями они сталкиваются. Недостаточное тестирование Когда нужно срочно закончить работу, часто страдает тестирование. Все тестирование остается на конец цикла разработки, поэтому тестированию уделяется мало внимания. Часто это приводит к множеству ошибок в продукте, в результате чего клиент остается недовольным. Решение: Выполняйте тестирование на всем протяжении цикла разработки, тестируйте каждый модуль или компонент, когда он разработан. Это позволяет проводить только комплексные испытания в конце цикла разработки. Тестирование в производственной среде Удивительно, как много организаций тестируют продукты в производственной среде. Такая стратегия большого риска может привести к наличию пробелов в защите и выпуску продукта без тестирования, что может разрушить производственную среду. Решение: Разработайте процесс для обеспечения качества и выпуска новых продуктов. Предоставьте отделенную от производства среду для осуществления тестирования. Отсутствие обеспечения качества Часто при поспешном выпуске программы страдает обеспечение качества. Изменения кода не документируются, конструкция содержит серьезные ошибки, и реализация может быть неполной. Это приводит к доработке, потере времени и наличию недовольных клиентов. Решение: Выделите время на проверку качества и документирование программы перед ее выпуском. Несоответствие промышленным стандартам Соответствие промышленным стандартам ваших программных проектов можно доказать путем обеспечения легкости управления, переносимости, удобства использования, надежности и сокращения числа проблем сейчас и в дальнейшем. Такие организации, как Международная организация по стандартизации (ISO) и Консорциум всемирной паутины (W3C), разработали открытые стандарты, которые трудно переоценить при использовании. Решение: Потратьте время на разработку стандартов для ваших проектов. Определите, что работает хорошо, и продолжайте это применять, а также то, что работает плохо, и измените это. Регулярно пересматривайте и обновляйте ваши стандарты. В следующий раз, когда вы будете выполнять программный проект, сначала просмотрите этот список и напомните себе, что нужно предпринять шаги, обеспечивающие успех, и вы удивитесь, как существенно это повлияет на проект.
|