Having said that it's not trial and error, it reality it can be trial and error in the sense that you remove something believing that it's unnecessary, try it, only to find a corner case where it IS necessary (that is, creates an error) in your situation.
A LOT of required compatibilities have been found this way.