Here's my suggestion -- suggested edits are a great way to resolve this. Old questions are, by their very nature, likely to be stumbled upon by someone:
- other than the author,
- who cares about the answer
- and is living in the present, rather than the past.
These three ingredients make that person the ideal one to make the edit. However, the current +2 reputation gained from an accepted suggested edit just doesn't cut it. That's an acceptable reward for fixing someone's typos or improving their wording, but it's not enough of an incentive to detect that an answer is outdated, research the more current solution, and then go back to suggest an edit to the original answer.
I can think of two solutions, one better (but more involved) than the other:
- When a higher-up accepts a suggested edit, he can optionally override the reputation bonus from +2 to some other value, based on his discretion. That way, particularly ambitious edits that bring an old answer up-to-date are rewarded better than typo-fixers. The difference is pretty objective and easy to see, so I doubt we'll hear too many arguments about this.
- Stack Overflow can add a new mechanic to answers: "Mark as outdated". A user who discovers that an answer is no longer valid can hit this button, and the question is added to an "Outdated" queue that users can view at any time. They are encouraged to suggest/make edits to the affected answer, and the accepted edit is awarded a +25 bonus or something else comparable to the value of having an accepted answer in the first place. Who should do the accepting? That's open to debate. Since this is by definition an old question, it's unreasonable to expect the original asker to do it. I'm torn somewhere between requiring the user who marked the question as outdated to do it, or a sort of community vote process, or simply any high-rep user who is able to accept edits.
How does this sound? I think, as Stack Overflow ages, resolving this problem in a Stack-Exchange-y way is crucial to keeping Google relevant as "the #1 interface".