Microsoft Takes Journey to DevOps Success
Hodges and Shah said DevOps practices and habits have been essential for Microsoft to improve delivering better services across the board. They also found that the organizational changes and cultural shifts required to embrace these practices have been quite significant. “Customers expect more and more frequent delivery and we just can't have any traditional roles getting in the way,” said Lori Lamkin, director of program management for Visual Studio Online. “We needed to apply the same things we learned from the world of agile planning into the world of DevOps.” In the past, Microsoft had three distinct roles on its “feature teams.” These were program manager, developer and tester. However, the company wanted to reduce delays in handoffs between developers and testers and focus on quality for all software created. To do so, Microsoft combined the traditional developer and tester roles into one role -- software engineer. Software engineers are now responsible for every aspect of making their features come to life and performing well in production, Hodges and Shah said. “We realized that what had worked two decades ago, having separate engineering systems in separate groups was now hurting us,” Guckenheimer said.To deliver the best set of services to its customers, Microsoft needed engineering and operations to work closely together throughout the entire lifecycle. So they brought the operations team and engineering team together. “The close coupling between the individuals who are writing the code and the individuals who are operating the service itself allows us to get capabilities into production much more rapidly,” the Hodges and Shah post said. Moreover, a new significant culture shift occurred. “Software engineer accountabilities transitioned from responsibility for not only building and testing but ultimately the health of production," the post said. “This accountability shift has two aspects. First, we want the feature teams obsessed with understanding our customers to get a unique insight into the problems they face, and how they can be raving fans with the experiences those teams are building. Second, we needed the feature teams and individual engineers to own what they were delivering into production. We are giving engineers the power, and we are giving them control and authority over all of the parts of the software process. You develop it, you test it, you run it. If something is wrong, you have the power to fix it.” Overall, DevOps has helped Microsoft to ship products faster and improve customer service. A major principle Microsoft has followed in its DevOps journey is getting fast feedback throughout every phase of the software lifecycle and using it to improve at every step. To help other organizations with their own DevOps journeys, Microsoft offers a DevOps Self-Assessment tool.
“We're saying that the developers and the operations people work closely together throughout the entire phase of development – all the way from design to deployment and production,” Shah noted.