В корпорации приходит экстремальное программирование

Как завершить разработку проектов в отведенные сроки, уложиться в заложенный бюджет и при этом свести к минимуму число программных ошибок? Пытаясь решить эти задачи, компании все чаще обращают внимание на новый метод проектирования, получивший название «экстремального программирования». Однако участники конференции Object-Oriented Programming, Systems, Languages and Applications 2001 пришли к выводу, что в условиях жесткой конкурентной борьбы в большинстве компаний предпочитают постепенный переход к подобным технологиям разработки, отказываясь от единовременного и полномасштабного их внедрения.

Пять лет назад эту методологию впервые внедрил программист Кент Бек, являвшийся руководителем проекта Chrysler Comprehensive Compensation (C3). Проект состоял в переписывании приложения расчета зарплаты в корпорации Chrysler. Экстремальное программирование предусматривало участие клиентов в разработке наряду с командой программистов, совместное использование технологии кодирования, объединение разработчиков в пары, автоматизацию тестирования устройств и постоянную корректировку кода с целью его дальнейшего упрощения.

«Сегодня некоторые группы разработчиков приложений для корпорации DaimlerChrysler в США и Германии по-прежнему прибегают к экстремальному программированию», — отметил архитектор портала и Web-приложений крупнейшего автомобилестроительного предприятия Кристиан Веге. Однако, по словам Веге, в DaimlerChrysler применяются лишь отдельные элементы концепции экстремального программирования, в частности, тщательное тестирование устройств и реализация проектов небольшими командами разработчиков. Остальные принципы экстремального программирования, в том числе и разработка парами, как правило, не находят применения, потому что члены большинства коллективов программистов находятся далеко друг от друга, а создание приложений поручается внешним организациям.

«Корпорации все чаще обращаются к новым технологиям, чтобы получить максимальную отдачу при минимальной численности групп программистов. При этом такие группы оказываются способны создавать продукты, не уступающие более сложным распределенным приложениям, — заметил аналитик компании Forrester Research Крис Дайел. — При проектировании новых типов приложений, в частности Web-служб, потребность в хорошо структурированном коде возрастает, и ?срезать углы? здесь невозможно».

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

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

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

«Само название ?экстремального программирование? уже привносит определенные сложности, — заявил независимый консультант Джеймс Нокс. — Большинство менеджеров, услышав этот термин, полагают, что к ним данная технология не имеет никакого отношения. Им представляется, что в слове ?экстремальное? заложен чересчур радикальный смысл».

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


Работать по-новому

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

Экстремальное программирование предполагает 12 основных методов разработки, в том числе:

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

Метод быстрого моделирования строится на нескольких базовых концепциях, таких как:

  • создание простого информационного наполнения;
  • частое тестирование кода;
  • использование нескольких архитектур.