Thursday, April 12, 2007

Применение Экстримального Программирования на практике

3 Недели назад начал применять практики из экстримального программирования (ныне плавно эволюционировавшего в Шуструю разработку - Agile Development. Просто название у первого более красивое... как раз для заголовка) в проекте, над которым я работаю уже почти год (9.5 месяцев). Проект представляет из себе нечто похожее на небольшую ERP систему, которая должна сменить в производстве старую версию системы, для решения проблем автоматизации некого заграничного предприятия.

Причины которые, подтолкнувшие меня к этому шагу:
- Необходимость в автоматическом тестировании (С ручным, я просто не мог справиться)
- Большое количество новых фунциональностей, необходимостить в которых возникла в последнее время
- Переработка существующего кода, что более 3м клиентского и серверного кода - Рефакторинг (Refactoring). Часть которого использует достаточно не стабильный компонент, от которого со временим придеться избавиться (в следующей версии... через год)
- Короткие релизы - раз в неделю, чтобы конечный пользователь мог оценивать результаты и выдыигать свои пожелания.
- Постоянное общение с заказчиком.


От работы не более 40 часов в неделю пришлось отказаться - сроки...

Как показала практика, идея себя оправдала:
В последнем релизе не было обнаруженно ни одного изъяна (тестировали его под нагрузкой в реальных условиях, с самыми произвольными данными).
До этого, в 3-х недельных релизах находили по 20-25 проблем.

В результате, основной упор был сделан на Test-Driven Development (по-русски: пишешь тест - потом уже код логики) и рефакторинг (приписал тест ко компоненту и рефакторишь его). При этом в паре эти практики оказались гораздо более эффективными, нежли поодиночке.

При этом, это далеко не первый мой опыт работы в стиле Agile, но подобных результатов он мне еще не приносил.

Осталось пересилить в себе свинью, и начать писать тесты всегда и с самого начала.

В дальнейшми постараюсь поделиться своим опытом более развёрнуто, с конкретными примерами.

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

No comments: