I don't have an issue with changing the iteration scope for exceptional situations. This should be the exception rather than the rule though.
When you go through iteration planning, you're doing many things. You're taking into account skill sets, availability, and how things inter-relate. You're talking things through as a team. You're setting expectations. Changing the scope affects all of these. That's what I mean when I say it introduces chaos. I don't mean that everything breaks down. I mean that it introduces some instability (maybe a little, maybe a lot).
That's why I would recommend defaulting to not changing the scope in the iteration. If the situation changes, you need to make a judgement call. You need to balance adding chaos to the iteration by changing scope with the benefit of the change you're considering.
Changing your iteration
I don't have an issue with changing the iteration scope for exceptional situations. This should be the exception rather than the rule though.
When you go through iteration planning, you're doing many things. You're taking into account skill sets, availability, and how things inter-relate. You're talking things through as a team. You're setting expectations. Changing the scope affects all of these. That's what I mean when I say it introduces chaos. I don't mean that everything breaks down. I mean that it introduces some instability (maybe a little, maybe a lot).
That's why I would recommend defaulting to not changing the scope in the iteration. If the situation changes, you need to make a judgement call. You need to balance adding chaos to the iteration by changing scope with the benefit of the change you're considering.