On the one hand, we have passages that tell us that God does not change (James 1:17, Malachi 3:6, Numbers 23:19, and Hebrews 13:8. These are quite clear: God does not change. God does not move on to plan B. God is not “open” in this sense to the future. Since these are the clearer passages, we should start with these, and not with the passages that are less clear, like the repentance passages. Going from the clear to the unclear is what the orthodox do. Going from the unclear to the clear (and imposing thereby their own pre-conceptions on to the texts) is what heretics do. This is the error of the open theists (read Socinians!).
So, if these passages are that clear, then what do we make of passages like Genesis 6, where God “repents” of making humanity? Is this a contradiction with the above set of passages? The answer is no. It doesn’t contradict at all. There is not even any paradox involved. What happens is this: God is utterly consistent in His treatment of human beings, depending on their state and their relationship to Him! Those who are God’s children and have a relationship to Him of child to Father (through adoption) can expect to be treated in a very consistent way. This would be a way that includes discipline, for the Lord disciplines those He loves. However, the Lord will never again treat His child the way a judge treats the defendant.
Similarly, those who are not in a right relationship with God can always expect Him to treat them as a judge treats the guilty defendant. God is long-suffering, and so sometimes that judgment takes a while. Nevertheless, the judgment will come. In other words, what changed in Genesis 6 was humanity, not God. It kept on changing for the worse (see verse 5). When that happens, the relationship changes, and God is always consistent in His treatment of people based on the state of that relationship.
The idea of covenant is heavily involved here. The first category of people we described above are members of the covenant of grace, and will always receive consistent covenant-of-grace treatment. Those not in that covenant are still condemned under the covenant of works, and thus, the more evil they do, the closer to judgment they get.
To sum up here, God does not change. He is always consistent with His character, and always treats people based on the state of the relationship that person has with God, a relationship that is covenantally determined.
One other thing must be mentioned here, and that is the “relenting” of the prophetic literature. Take the case of Jonah, for instance. After Jonah’s rebellion, he goes into Nineveh and preaches the world’s shortest sermon, (“40 days, and you’re toast”). The people repent and God relents. What is going on here? Take note of the 40 days. Why give Nineveh 40 days? Why not just say that it’s going to happen tomorrow? Because, built into every single judgment oracle in the OT, is the understood condition that if the people repent (i.e., their relationship with God changes!), the judgment will either be delayed or eliminated. So the relationship change works in reverse, too. If the relationship changes for the worse, God brings judgment. If it changes for the better, God holds off on judgment. God is rigidly consistent in this! In other words, God does not change, man does.