• Как пояснить клиенту что такое технический долг и рефакторинг?

    @nyann Автор вопроса
    >Работает код - не трогайте его, пусть дальше работает.
    Самой собой, хорошее правило, но не всегда...

    >Для начала скажите зачем Вы вообще хотите рефакторить код? Моральное удовлетворение?! Технический долг?! Вам что, приятнее трахаться с функциями в коде, чем со своей девушкой?

    Что бы иметь более менее четкую модульную архитектуру и четко понимать что как и где работает(что бы быть господином своего кода и управлять им, а не так что бы он мной... шутка), а не запутанную лапшу из кода и архитектуру похожую на бл****ий цирк, которую сложно дебажить и отлавливать баги.

    За такой код сложно отвечать, никогда не знаешь что выкинет, отсюда ненужный стресс и все дела и о девушке уже и мыслей нет.

    >Ты показываешь ему свои почасовые отчеты, клиент видит что ты работаешь, все.
    Не всегда, клиент видит коммиты в рерозитории, но это ему мало о чем говорит, может я хренью занимаюсь.
    Похоже тут опять доверие клиента важно.
  • Как пояснить клиенту что такое технический долг и рефакторинг?

    @nyann Автор вопроса
    >Приведите ему реальные доводы ЗА рефакторинг выражающиеся профитом в денежном эквиваленте и вуаля.
    Это не так уж и просто, допустим я назову какие-то цифры, но клиент вряд ли поймет откуда они возьмутся и за счет чего.
    Тут похоже доверие играет важную роль.

    >Ну и коль уж мы про цифры, клиентов и технический долг, а как вы убедили клиента оплачивать вам время на написание тестов? Вы включаете это во время разработки при оценке стоимости?
    Именно так.

    >Что мешает заложить и рефакторинг критических мест.
    Обычно понимание того что нужен рефакоринг приходит спустя время, когда понимаешь что дело совсем плохо и все запущенно, тогда нужно значительное время на него, сложно просто так отвести на это хотя бы часов 10.

    >Вы не пишите тесты? Тогда о каком рефакторинге имеет смысл вести разговор?
    В более менее больших проектах которые я начинал они есть, но если проект я взял на поддержку и там нет тестов то приходится делать обычно еще и некоторый рефакторинг что бы можно было написать хоть какие-то тесты.