Not every big change is necessarily something you can meaningfully break up into small changes. Sometimes when you could break it up into small changes, you have to change its structure in a meaningful way to half-implement it and test out that half-version. It takes experience to know when it’s best to get the whole structure expressed it code, then to go back and tweak it based on any compiler errors. Most of the time the compiler errors are very minor things like a typo, so you don’t lose any meaningful time fixing them.
Not every big change is necessarily something you can meaningfully break up into small changes. Sometimes when you could break it up into small changes, you have to change its structure in a meaningful way to half-implement it and test out that half-version. It takes experience to know when it’s best to get the whole structure expressed it code, then to go back and tweak it based on any compiler errors. Most of the time the compiler errors are very minor things like a typo, so you don’t lose any meaningful time fixing them.