Levitra online Vicodin Online Propecia online

img_8433В эту пятницу я провел несколько мучительных часов в попытке слегка подкорректировать разрабатываемое нами приложение: вынести часть логики из одного класса в другой (поместить его на уровень выше).

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

Я провел 4 часа в попытках привести тесты и код в порядок. Потерял уверенность в стабильности нашей системы и уже был готов к тому, что проведу все выходные с мыслями о том, как же мне все переделать, чтобы было красиво и работало :)

За час до конца рабочего дня я открыл книжку Кента Бека “Test Driven Development”, чтобы вдохновиться. Просмотрев пару страниц я обратил внимание на одну фразу, которая помогла мне вспомнить один из важных принципов TDD и XP - Baby Steps: делать за один шаг очень маленькие изменения и проверять их, запуская все тесты.

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

Последовательные изменения и малое количество “упавших” тестов позволяли четко видеть причину. Я правил тесты и добивался их 100% работы. Делал commit в репозиторий и переходил к следующему пункту своего списка.

В итоге вся работа была выполнена за 40 минут. В конце рабочего дня я был уверен в системе, в себе и в том, что проведу хорошие выходные.

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

Об авторе

Павел Габриель
Павел Габриель

Agile-практик, руководитель проектов, программист-прагматик


Добавить комментарий

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

You must be logged in to post a comment. Click here to login.

RSS комментариев Комментарии:

Мы на эти грабли наступили - затеяли как-то рефакторинг подзабив на юнит тесты (чего их править - один фиг после рефакторинга много чего поменяется).
Проект просто рассыпался. Пришлось взять тайм-аут на неделю чтоб восстановить работоспособность :)

Не нашли ответа в комментариях? Воспользуйтесь листом рассылки сообщества Agile.by. Подробнее о листе рассылки вы можете прочитать здесь. Или просто послать свое сообщение на адрес: agile-belarus@googlegroups.com.


Наши партнеры и проекты: