Недавно в чате задали вопрос, достаточно интересный чтобы высказаться на эту тему в блоге. Привожу сам вопрос и мой ответ на него.

Максим Юдин:

На дворе утро, а у меня вопрос не по квазару, а, как оказалось, по проблемам разработки.

Заметил за собой специфику: Сделал компонент/алгоритм/программу которая работает. Получаю правки (которые, по хорошему полностью меняют компонент/алгоритм) и пытаюсь адаптировать существующее решение, трачу кучу сил на это, а в конце прихожу к тому, что надо всё с чистого листа…

Думаю, что это не личная моя проблема, и с ней сталкиваются многие.

Вопрос в том: кто как придумал её обходить?🤔 Ну вот есть решение, есть правки. В любом случае первые решения для внесения правок основываются на существующем опыте (а значит на решении) и даже при первичном проектировании решение будет основано на текущем, а надо с нуля. Вот как понять, что текущие правки ещё можно наложить на существующее решение, а вот другие нельзя и они требуют нового решения?

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

Леонид Черненко:

Отличный вопрос, мне справляться с этим помогает

  1. большой опыт решения задач — для знания вариантов решения

  2. построение чистого кода — для того чтобы его легко было менять, не за часы а за минуты

  3. прокачанный навык рефакторинга — для меня код это пластилин который я с лëгкостью меняю

Также дополнительное ускорение мне придают хорошие инструменты и особые методики написания кода.

Получается, что предугадать и защититься от изменений я не могу, но я могу максимально ускорить и упростить изменения)