I work with a specific engineer (let's call them X) that, even though they have many years of experience in the industry, has a lot of trouble to manage the scope of code changes. For example, say that we as a team have estimated that a task will take '5' story points, X will claim that all existing code is 'bad' - and should be refactored immediately. In the past this has led to enormous amounts of changes, which in turn lower our team velocity and introduce new bugs (we have low test coverage).
I think this engineer has a classic case of 'all legacy code is bad and the only way forward is to refactor it all'-thinking; but X doesn't introduce new tests to verify the functionality.
When I personally make changes in code and I notice that the code is of insufficient quality, I will make an extra effort to improve it - but only piece by piece - so that the scope doesn't grow too much and we reduce the risk of new changes.
My question is: when is it okay to do a big refactor in order to achieve a small task? Is it wrong to state that any improvements can be done incrementally, and should be?