9
April

Экстремальное программирование (XP)

Posted in: Project Management |

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

Методология разработки програмного обеспечения eXtreme Programming (изобретатель - Kent Beck) получает все большее признание благодаря максимальному упрощению процессов проектирования и непосредственной разработки програмных продуктов в среде с быстро изменяющимися требованиями.

Существует всего лишь 4 принципа экстремального программирования: простота, общение, обратная связь и смелость. На реализию этих основных принципов и направлены 12 практических методик XP. Рассмотрим их в небольшом приближении.

Процесс планирования. В XP планирование - это основная часть разработки. То, что планы могут внезапно поменяться, учитывается еще в самом начале. Аппетит заказчика приходит во время еды и нужно всегда держать ситуацию под контролем. Общение с заказчиком должно происходить как можно чаще. Это позволит точнее оценить сроки выполнения задач и внести необходимые коррективы в случае необходимости.

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

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

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

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

Рефакторинг. Добавление новой функциональности и увеличение объема кода усложняет разработку и поиск ошибок. Решением этой проблемы является постоянная переработка (refactoring) кода. Рефакторинг - очень мощная и полезная вещь и заслуживает не то что отдельной статьи, а целых книг.

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

Совместное владение кодом. Чаще всего при разработке програмных продуктов за определенную часть кода отвечает один человек. Отпуск, увольнение или же болезнь (прости, Господи) одного из программистов может сильно затормозить разработку продукта. пменно поэтому в XP за один кусок кода отвечает не менее двух человек и любой программист может внести изменения в любую часть програмного кода.

Продолжающаяся интеграция. Команды XP-программистов создают новые билды продукта несколько раз в день. Это позволяет всем программистам быть в курсе происходящего и предотвратить проблемы интеграции с другими продуктами и частями кода.

40-часовая неделя. Ради дела люди спопобны на многое, но экстремальное программирование категорически против самопожертвования разработчиков. Человек должен отдыхать. пменно тогда он достигнет максимальной производительности в рабочее время.

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

Стандарты кодирования. Для успешной работы над проектом XP выдвигает требование применения стандартов при кодировании. Это в свою очередь обеспечивает успешность таких методик как совместное владение кодом и парное программирование. Да и вообще, стандарты не для того, чтобы просто существовать, а для того, чтобы их придерживались.

Непротиворечивость всех этих методик позволяет заметно повысить качество продукта и выпустить его точно в срок. Еще одна прелесть XP - общение и повышение квалификации программистов без отрыва от производства. Ну что ж, экстремальное программирование - в массы.

2 Comments »

RSS feed for comments on this post. TrackBack URI



Микроблог SU
February 15, 2008 #

Вот уж про какие-то особенные стандарты кодирования как-то ничего в голове не отложилось, хотя некоторые практики XP мы у себя использовали.

Что имеется в виду, не уточните?

April 6, 2008 #

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

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>