Непрерывная интеграция

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

Разработка через тестирование и разработка с тестами
Сначала обсудим более традиционную практику – разработку с тестами. При таком
подходе программист пишет код, а затем автоматизированные тесты для него для
проверки корректности.

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

  • Найти “плохо пахнущий” код – •Слишком длинный метод
  • Покрыть его тестами – Убедиться, что метод покрыт тестами
  • Улучшить код – Применить рефакторинг “Extract Method”
  • Запустить тесты – Проверить, что не внесено ошибок

Парное программирование
При парном программирование код пишется двумя разработчиками за одним
компьютером, причем один из разработчиков играет роль «пилота», а второй роль «штурмана»

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

Простота архитектуры и метафора системы
Поскольку мы работаем итеративно, нам важно иметь максимально простую архитектуру,
в которую будет возможно быстро и дешево внести изменения.

Коллективное владение кодом и стандарт кодирования
Коллективное владение кодом обеспечивает кроссфункциональность самих участников
команды и позволяет реализовывать это важное свойство Scrum. Важным
преимуществом такого подхода является быстрое распространение знаний между
участниками команды.

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