InfoWorld, США

Методы скорой (agile) разработки, позволяющие создавать программное обеспечение быстрее, чем традиционным способом, похоже, себя не оправдывают. В этом постарался убедить своих слушателей Стив Макконнелл, главный разработчик компании Construx Software Builders и автор нескольких книг (в их числе Code Complete, Rapid Development и Project Survival Guide), выступая на недавней конференции SD West 2006, прошедшей в Санта-Кларе (Калифорния).

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

По его словам, предполагалось, что эта технология будет ориентирована на индивидуальных программистов, а не на процессы и инструментальные средства, как это в основном происходит сейчас.

По его словам, эта технология вызвала огромный энтузиазм, что, впрочем, было и в случае с другими новыми технологиями, такими как CASE.

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

К «правильным» суждениям, касающимся разработки программного обеспечения, по мнению Макконнелла, относятся следующие:

  • Понимание того, что разработкой программ занимаются живые люди, и их личные качества имеют определяющее значение для успеха программных проектов.
  • Разработку программного обеспечения крайне важно вести поэтапно и постепенно.
  • Затраты на исправление ошибок со временем растут.
  • Ход мыслей разработчика в целом предсказуем и следует определенным интеллектуальным шаблонам.
  • Способность определять точные сроки со временем улучшается.
  • Самая мощная форма повторного использования - это полное повторное использование.
  • Управление рисками позволяет максимально детально разобраться во многих вопросах, возникающих в процессе разработки. (Макконнелл разделяет операции управления рисками на внешние, которые дополняют проект, и внутренние, такие как контроль выполнения проекта и создание прототипов пользовательского интерфейса.)
  • Разное по типу программное обеспечение требует разных методик разработки.
  • Создан свод знаний по программной инженерии SWEBOK, где представлены такие дисциплины, как управление конфигурацией, поддержка и тестирование.

«Я не уверен, что SWEBOK дает ответы на все вопросы, — заметил Макконнелл. — И тем не менее я считаю, что это неплохое начало».

Среди наихудших методологических воззрений Макконнелл упомянул следующие:

  • Существует только два способа разработки: применять итерационный подход ко всему и отвергать итерационный подход вообще в пользу каскадной модели.
  • Проекты, выполняющиеся по методу скорой разработки, избавлены от проблем, связанных с постепенным увеличением стоимости исправления ошибок. "Исследования пока не подтверждают этого", - настаивает Макконнелл.
  • Мы должны смириться с отдельными недоработками в программных проектах, поскольку они направлены на решения особо "неприятных" проблем.
  • Требования всегда меняются. "Единственная и наиболее распространенная причина изменения требований заключается в том, что эти требования на первом этапе реализации проекта не были тщательно изучены и точно сформулированы", - считает Макконнелл.
  • Можно напряженно заниматься "извлечением" требований, но бывает и так, что они уже готовы как бы сами по себе.
  • Один единственный подход к разработке прекрасно подходит для всех без исключения проектов.

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