While I do think this move is a valiant one, I don't believe that it will, in and of itself, build better practices and help Microsoft build better software. Open source is very hard to do right, and if you're a company that doesn't have open source in their DNA it could pose a huge challenge to building positive relationships with your developer community. If you're a big corporation like Microsoft, you have tons of people with their eyes on you at all times. Everyone can read and criticize your code.
Also, being open source means being open and transparent about release cycles and roadmaps, which takes a lot of effort and initiative. I do think Microsoft can do that if they build a solid team of technical community evangelists, but otherwise, they will be swimming against the stream.