TL;DR – the current MMR system is fine in how it handles abandons, and if you never abandon you actually get free MMR.
I've been seeing a ton of posts here recently about how much it sucks losing MMR when a teammate abandons. The common solution people seem to post is to not lose mmr when an ally abandons. Ignoring any possible abuse, simple math proves that this is completely unnecessary.
There are 10 players in a dota game, each with the possibility to abandon. You may say, "but wait, I would never abandon a dota game, I'm a good community member".
Okay, so there are 9 players in a dota game with the possibility of abandoning, your 4 allies, and 5 opponents.
Therefore, there is a 44.44% chance that the abandon is on your team (4/9) and a 55.56% chance that it is an opponent (5/9).
Lets do some math.
Ally abandoned games = total games * abandon rate * 0.4444
Opponent abandoned games = total games * abandon rate * .5556
Total games –> any sample number of games
Abandon rate –> percentage of dota games with an abandon (I don't know the exact value, but it really doesn't matter, as I'll show later)
Let's play 100 games, and say 5% of games have someone abandon. For simplicity, we will assume the abandon team will always lose (we've all lost 5v4s, feelsbadman, but it doesn't matter, dota is a zero-sum-game and you should win about as many 4v5s as you lose 5v4s), and that mmr gain is always + or – 30.
MMR lost: 100 * 0.05 * 0.4444 * -30 = -66.67
MMR gain: 100 * 0.05 * 0.5556 * 30 = 83.33
Wow, every hundred games you get 16.67 free mmr!
BuT You cAN't gAiN mMr BY 16.67
Okay, play 180 games:
MMR lost: 180 * .05 * 0.4444 * -30 = -120
MMR gain: 180 * .05 * 0.5556 * 30 = 150
Every 180 games, it's a net free win.
But are you going to remember that during your last 180 games your allies abandoned 4 times, and your opponent 5 times? No, but just try to remember that in the long run, not abandoning gives you free MMR.
As for the abandon rate, I pulled 5% out of thin air. The actual value could be higher or lower, but it doesn't matter. The formulas are the same except for the ally/opponent abandon% which means you will always gain more MMR than you lose, it just changes the rate that it occurs (more abandons means faster MMR gain, fewer abandons means slower MMR gain)
Now, addressing the issues with not losing MMR when an ally abandons. Take the above example with 180 games.
You get 150 mmr from when your opponent abandons.
You no longer lose 120 mmr because of ally abandons.
You now get 270 completely FREE mmr. Every player who doesn't abandon would start to have inflated MMR. Or more likely, start playing harder opponents and lose more games (you can't "escape" your skill bracket without actually getting better).
While overly simplified, I just want to show that in the long run, your precious MMR is not negatively impacted by abandons. Statistically, you may get unlucky and have more ally abandons than opponent abandons, but after playing thousands of games (which a lot of us have) everything will balance out.