So maybe Microsoft DOES actually believe, in their isolated corporate culture, that their platform is strong enough to get away with the shit they're trying to pull. Gamers have no loyalty and everyone has already decided to jettison them. Some people are changing consoles, some people are going to PC gaming. Microsoft could save itself a lot of money and just scrap the entire Xbox line right now. If Sony offered an easy path for indie developers, the Xbox developer landscape would be a barren wasteland within a year.
2) Just because the code is awful doesn't mean it has no value -- No matter how bad it is and how difficult it is to read, if it works at all it has probably got years (maybe even decades) of bug fixes and feature requests. Until you have a handle on it, any little change could cause a catastrophic cascade of side-effects.
3) No, we don't need to rewrite it. See 2. A working program now is worth more than all the pie in the sky you can promise a year from now.
4) It takes 6 months to have a reasonably good grasp of any moderately complex in-house application. It could be a year before you get to the point where someone can describe a problem and you immediately have a good idea of where in the code the problem is occurring and what functions to check.
Maintenance programming is as much about detective work as anything else. The only clues you have about the previous programmer are his source files. Once you've read them for a while you can start to tell what he was thinking, when he was confused, when he was in a hurry. Most of the atrocious in-house applications have changed hands several times and each programmer adds their own layer of crap. You can redesign these applications a chunk at a time until nothing remains of the original code if it's really bad, but it's best to save really ambitious projects until you understand the code better. I heartily encourage the wholesale replacement of "system()" calls with better code immediately, though. In several languages I've run across these calls to remove files, when they could have simply called a language library call (Typically "unlink".) If the original programmer used system("rm...") you can pretty much assume that they were a bad programmer and you're in for a lot of "fun" maintaining their code.
Sure I could outsource production to China, but whenever I eat Chinese, I'm hungry again an hour later! (Dunno who I stole that from, but kudos!)
Interviewer: Pretty much like any other candidate I've interviewed!
I don't think you're seeing a gaming problem there. I've seen the same escaping-reality behavior with books and television. If your life isn't particularly rewarding or interesting, you'll seek it out somewhere else. You say he's seeking out a non-valuable sense of achievement, but has anyone ever provided him a particularly valuable one? The endemic problem you think you've identified might have more of a basis with our society as a whole than any particular symptom you've identified. Most people have pretty boring lives. Rather than complain about it, why not actually try to make your nephew's life more interesting?
When choosing your OS, you choose the best tool for the job. So who's worse, the guy who refuses to consider any other operating system, or the guy who installs the one that lets him use his computer for what he wants to do? If you want to play games and identify Linux and OSX as weak at gaming, it'd be kind of silly to install them. I like to run Linux in a work environment, but most places have windows-specific requirements for E-Mail and other applications. You can spend a lot of time trying to work around some of the limitations with wine, or you can just use Windows and install cygwin. Identifying the right tool for your particular job isn't a weakness. And demanding that everyone else use the tool you find to be best for your particular job isn't a strength.
Trap full -- please empty.