Microsoft CTO Kevin Scott on the future of software engineering and the better world ahead