3 Недели назад начал применять практики из экстримального программирования (ныне плавно эволюционировавшего в Шуструю разработку - Agile Development. Просто название у первого более красивое... как раз для заголовка) в проекте, над которым я работаю уже почти год (9.5 месяцев). Проект представляет из себе нечто похожее на небольшую ERP систему, которая должна сменить в производстве старую версию системы, для решения проблем автоматизации некого заграничного предприятия.
Причины которые, подтолкнувшие меня к этому шагу:
- Необходимость в автоматическом тестировании (С ручным, я просто не мог справиться)
- Большое количество новых фунциональностей, необходимостить в которых возникла в последнее время
- Переработка существующего кода, что более 3м клиентского и серверного кода - Рефакторинг (Refactoring). Часть которого использует достаточно не стабильный компонент, от которого со временим придеться избавиться (в следующей версии... через год)
- Короткие релизы - раз в неделю, чтобы конечный пользователь мог оценивать результаты и выдыигать свои пожелания.
- Постоянное общение с заказчиком.
От работы не более 40 часов в неделю пришлось отказаться - сроки...
Как показала практика, идея себя оправдала:
В последнем релизе не было обнаруженно ни одного изъяна (тестировали его под нагрузкой в реальных условиях, с самыми произвольными данными).
До этого, в 3-х недельных релизах находили по 20-25 проблем.
В результате, основной упор был сделан на Test-Driven Development (по-русски: пишешь тест - потом уже код логики) и рефакторинг (приписал тест ко компоненту и рефакторишь его). При этом в паре эти практики оказались гораздо более эффективными, нежли поодиночке.
При этом, это далеко не первый мой опыт работы в стиле Agile, но подобных результатов он мне еще не приносил.
Осталось пересилить в себе свинью, и начать писать тесты всегда и с самого начала.
В дальнейшми постараюсь поделиться своим опытом более развёрнуто, с конкретными примерами.
П.С.
Сегодня будет первая ночь за последнюю неделю, когда я могу спать спокойно.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment