Работая над задачей, важно спрашивать себя о двух вещах.

Первая — какую проблему я пытаюсь решить? Удивительно, но многие не могут внятно на это ответить. Они говорят, что делают, и это понятно: внедряют фреймворк, пишут тесты. Но какая проблема была изначально?

Из первого вопроса следует второй — как мое решение влияет на проблему? Оно вообще ее решает? Или можно было проще? Или можно было поправить конфиг?

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

Поэтому раз: какую проблему я решаю? И два: отвечает ли ей мое решение? Чередуя эти вопросы, можно сделать любую задачу точно и в срок.