воскресенье, 3 января 2016 г.

Про старый код


Некоторое время назад написал на Хабр пару статей про отличительные свойства старого проекта со страшным и ужасным легаси кодом (Старый код: почему он такой) и о том, как правильно "продавать" рефакторинг (Техобслуживание кода: как продать рефакторинг бизнесу).

К слову, у меня есть пара примеров, когда рефакторинг удалось успешно продать заказчику (или руководству). В одном случае, заказная разработка системы зашла в тупик, и там было огромное количество багов, которые страшно раздражали. Они частично перепали нам от "изначальных индусов", а частично мы сами наплодили, пытаясь вписаться в то, что уже было к тому времени сделано.

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

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

Ну и третий проект - тоже в Яндексе - по переписыванию огромного куска инфраструктуры. Там его стартовали под общие аплодисменты, но был момент, в котором стало понятно, насколько проект большой и долгий, и его решили было прикрыть. Собственно, роль продажи заключалась в том, что мы собрались и рассказали заинтересованным лицам о том, что мы делаем и почему делаем именно так. Оказалось, что всё делаем круто и надо продолжать. В общем, рерайтинг продал сам себя :).

Есть и грустные истории про то, как не полетела "вторая версия" движка для системы потому, что программисты закопались в мелочах и попытках создать идеальную архитектуру. Но это уже другая история. И Спольски хорошо про неё пишет.