How machine learning is revolutionizing software development