72% ИТ-проектов оказываются незавершенными из-за неверно сформулированных требований
Как корпоративным ИТ-службам получить достаточные ресурсы для ведения перспективных проектов? Ответ естествен: необходимо доказывать важность и ценность этих проектов высшему руководству. Сделать это можно, если суметь продемонстрировать, что осуществление проекта будет способствовать достижению целей компании.
Выступая на организованной компаниями «АйТи», Rational и Market-Visio конференции, посвященной индустриальной разработке программного обеспечения, региональный менеджер Rational Software в странах Средиземноморья и Восточной Европы Оливье Рубин подчеркнул, что поставляемый его компанией инструментарий далеко не ограничивается средствами моделирования для объектно-ориентированной разработки. По его словам, компания создает инструменты, позволяющие решать и другие проблемы. Среди них — постоянно растущая сложность программ, увеличение потребности в программах, работающих в реальном масштабе времени, в распределенных системах, в особо надежном ПО, усиление требований к возможностям адаптации приложений к новым клиентам, рынкам, стандартам.
Рубин подчеркнул, что проблема ведения проектов по разработке стоит весьма остро. Лишь 26% крупных проектов заканчиваются успешно. Впрочем, и этот показатель считается сейчас неплохим: лет пять-шесть назад успешно завершалось всего 16% проектов разработки. Одна из основных причин незавершенности ИТ-проектов — неверно сформулированные требования, неверно понятые исполнителем или измененные впоследствии заказчиком.
Современные разработчики, по мнению Рубина, находятся в нелегкой ситуации, когда требуется создавать программное обеспечение и быстро, и с высоким качеством. Выход, как считают в Rational, заключается в том, чтобы совершенствовать экономику разработки. Докладчик выделил четыре ключевых фактора, влияющих на время выполнения проекта: сложность создаваемых программ, совершенство процессов разработки, эффективность работы персонала и эффективность инструментария.
Сложность разработки можно снижать благодаря управлению масштабом разработки и сокращению ручного труда. Необходимо выяснить, насколько ценны те или иные функции создаваемого ПО, затем оценить трудоемкость их реализации и определить приоритеты. Это даст возможность в первую очередь разработать наиболее ценный для пользователя функционал, а затем дорабатывать ПО, реализуя другие, менее ценные для заказчика свойства.
Другой путь к снижению сложности — сокращение доли ручного труда разработчиков посредством перехода к языкам программирования с более высоким уровнем абстракции. Рубин особо выделил средства моделирования, в частности те, что основаны на унифицированном языке моделирования UML. Данные средства позволяют определять основные подсистемы будущей программы и их взаимодействие, детализируя эти подсистемы и модули до нужного разработчику уровня.
Необходимо совершенствовать и процессы разработки. Прежде всего нужно уменьшить объем переделок и снизить их риск за счет более полного использования верификации и тестирования прототипов и подсистем создаваемой системы. Это позволит избежать потерь времени и ресурсов, затрачиваемых на внесение серьезных изменений в почти готовые программы.
Эффективность работы персонала можно повысить, правильным образом организовав труд программистов. В частности, Рубин рекомендовал использовать несколько небольших команд, отвечающих за отдельные направления разработки. Их деятельность должна координироваться центральной группой. Таким образом можно уменьшить сложность сети взаимосвязей и сделать коллектив более управляемым.
Наконец, применение современного инструментария позволяет сократить время разработки, повысить ее точность и качество. Не последнюю роль в этом играют возможности инструментальных средств по автоматической генерации текстов программ. Кроме того, хороший инструментарий позволяет генерировать среду для тестирования ПО и значительно ускоряет проведение тестовых испытаний.