Some reasons why different versions of a system based around software diversity may fail in a similar way:
1. There may be a specification error that is reflected in both versions.
2. The problem may be a numeric error that has not been explicitly trapped.
3. The specification may be ambiguous and may be misunderstood in the same way by both teams.