How Microsoft develops its Software