I think there's been an excessive knee-jerk reaction against this change. I'd encourage the skeptics to:

Read the label

Stack Overflow is a question and answer site for professional and enthusiast programmers.

Source: https://stackoverflow.com/tour

The mission-statement for Stack Overflow, at least, is to provide a useful resource for both professional and amateur/enthusiast programmers. It's intent is not to primarily benefit the open-source community (or any other niche), nor to take sides in an ideological debate on IP/software rights and licensing.

The 'professional' part is important here, as it implies operating for commercial gain. Typically in the employ of a corporate entity, and/or with at least some codebases that are not open-source or otherwise publicly available.

Responsible professionals know better than to incorporate copyleft code into a proprietary/closed-source codebase. Which makes CC-BY-SA licensing a very big problem (technically speaking), to the point where it's in direct conflict with SO's published mission-statement.

Understand CC-BY-SA

CC-BY-SA is essentially a copyleft license. Note that the 'SA' in CC-BY-SA stands for "ShareAlike", which is a licensing requirement that any derivative works which incorporate CC-BY-SA content also be released under CC-BY-SA. And that's where the copyleft problem comes in for professional use.

Interpreted in the context of a software codebase (though as noted in the OP, CC-BY-SA was not really intended for use with software in the first place), it means that if you use a CC-BY-SA licensed snippet in a codebase then strictly speaking you must release the entire codebase under the same license should you distribute any works derived from your codebase (such as a complete application/compiled binary).

Or in other words, copy a snippet from SO into your Android application, then by a strict interpretation of CC-BY-SA (or any other copyleft license) you must release your application's source-code under the same terms if/when you submit it to Google Play. That makes code licensed under CC-BY-SA technically unusable for most professional (i.e. commercial) purposes.

Which, again is at odds with SO's stated purpose.

Consider the reality of the situation

The SO community advertises itself as a place for professionals to collaborate and discuss solutions to technical challenges. And there are undoubtedly plenty of professionals to be found here. And certainly some of them have probably used some code snippets in proprietary, commercial applications. And it's certainly likely that an even greater number of non-members who find a useful snippet on SO through a Google search have used it in closed-source projects of their own.

To pretend that this hasn't happened, doesn't happen, or isn't happening right now is silly. To argue that it shouldn't happen is a denial of SO's published mission-statement. And to try and force the issue and litigate someone over violating the CC-BY-SA license on a code snippet would be virtually impossible if they don't self-nominate (how on Earth are you going to find out that they used your snippet?).

To have all of the code on SO licensed under the terms of CC-BY-SA is actually a massive impediment to the site's intended use-case. It's incongruous with the way that people actually use the site, in practice. On paper, it's a massive risk for any professional users. And in actual fact, it's probably an issue largely ignored by the majority of users (and non-users) who turn to SO for coding help.

The only thing the new changes do is bring the 'on paper' licensing terms in line with the way people actually use SO. Which is something that we should all welcome.

Consider why you post code on SO

Are you here to try to help people solve problems? Or are you here to get your name listed against as many projects as possible, one small snippet at a time? Or to play 'gotcha' with unsuspecting professionals, litigating them when you catch them actually using the code you gave to them?

Unless you're here for the third reason, you don't need to have your code snippets licensed under copyleft! And if you are here for the third reason, you're participating in a highly ideological debate. Which is entirely your right, but which is also something that SE probably shouldn't get entangled with.

And besides, would you really litigate someone for using your code snippet commercially, and do you believe it would really be ethical to do so? Considering that you know there's a good chance the person asking the question is a professional developer, and that you know that professional developers often work on commercial, closed-source code. If you object to your code snippet being used in such a context, then why are you answering their question with code to begin with?

If your motivation is to help others, the licensing changes do not impact you in any way. Or, they might make it possible for you to help even more people, as the new license makes your code usable in places where CC-BY-SA code technically is not.

And note that there's really no issue with respect to attribution. CC-BY-SA requires attribution, and the new license terms still permit you to require attribution. So you can have your attribution if that's what you're after.

The substance of the change is removal of the 'ShareAlike' component from the license, which changes code on SO from being copylefted to being permissively licensed. It's very similar to changing the license terms to CC-BY, which requires attribution, but drops the 'ShareAlike' requirement.

Consider what's fair and reasonable

Forget for a second about the legal precedence that establishes that IP creators can essentially dictate terms according to whatever arbitrary criteria they choose.

Instead look at how much time and effort actually goes into code snippets posted on SO. FGITW means that the average snippet is authored in minutes, not hours. A good FGITW player will at least invest some additional time curating and improving their snippet after it's posted. However, all up it's probably very safe to say that most code snippets on SO are authored in 60 minutes or less.

So what's a fair reward for 30-60 minutes (at most) of effort? Is it a thank-you, some +rep, and being able to (should you so desire) require attribution from people who find your code helpful and use it? I'd say that's fair enough. You made a helpful contribution, and are entitled to recognition for the effort.

But is it fair or reasonable to demand that the person who uses your snippet release their entire codebase under CC-BY-SA, when that codebase may contain many thousands of lines of code and be the product of many person-years of combined effort? I think not. The snippet is a drop in an ocean; it shouldn't allow you to lay claim to the entire ocean.

But that's exactly what you could do if code snippets are licensed under CC-BY-SA (assuming no legal hurdles and technicalities get in the way). And personally I think that's absurd. The value of an answer is real and nontrivial. But it's not so large that providing someone with a code snippet should mean you have a claim to every codebase that snippet gets used in. Attempting to do go goes against the spirit of collaboration, community, and helpfulness that underpins SO, in my opinion.

As such, the new license terms strike a better balance on the 'fair and reasonable' scale, and address a potential imbalance between the value provided by a CC-BY-SA code snippet and the scope of the claim that can be staked against a much larger codebase by leveraging the 'ShareAlike' component of CC-BY-SA.

In closing

I welcome and fully support this change (though I think the suggestions to implement this as a dual-license as opposed to a wholesale swap have merit, so long as it's the consumer of the code who chooses which license they want). You should too. There's no reason not to. Information wants to be free.

The sooner this can take effect, the better.