Ok as a programmer, anything I worked on before where I now know a better way to do it becomes "TERRIBLE" and "Oh my gosh, I can't believe I did it that way." This game was released in Beta 6 years ago. It encompasses multiple maps, modes, chat systems, server networking, over a hundred champions and roughly the same in items. The code base for this is probably VERY LARGE. When you start to make sweeping changes across systems to incorporate modern improvements, it can be a daunting task as there are tons of areas you have to hit, even assuming everything is in a true component based design model.
I don't think their code is TERRIBLE - if it was it would be like other games that have constantly unscheduled downtime. The fact that they can disable certain aspects of the game while keeping the rest live is a GOOD design and implementation. And with a game this size, there are an almost impossible number of combinations of things that would have to be tested in house before it gets released to the wild if you were to test them against every possible scenario. So you make a plan of attack, hit it the best you got and when millions of people play the game and a few find something wrong, you have the ability to deal with it.
I think Riot handles bugs much better than most other live game services and we are free to enjoy a product we are not required to pay for.
/thread