Conventional wisdom and practice dictate that software teams separate development, testing, and operations functions. To use a reference from Top Gun, developers are akin to “Maverick,” the creative risk-taking leader played by Tom Cruise, while testers fall into the background as “Goose,” his reliable sidekick. This division of labor was ostensibly created to promote accountability for each type of activity. Instead, it caused management overhead.
Conventional wisdom is wrong. Cloud teams have developed a software engineering role that is responsible for not only writing but also testing and deploying features. The idea of relinquishing operational control to traditional developers can be daunting, so cloud teams build automated guardrails to ensure that testing and deployment are of high quality despite democratization of control. They have found that the productivity and quality gains of this organization design typically outweigh the risks. After all, who better to fix the code than the person who helped write it?
As developers take on more of a traditional testing role, a new “end-to-end quality engineering” role has emerged. Engineers in this role continually replicate and test the customer experience to ensure that the user interface, speed, response time, and overall quality are delighting customers. This role is crucial as customer environments become more complex and fragmented. Software teams need to ensure that their software works on public clouds, private clouds, on-premises servers, desktops, mobile devices, and multiple operating systems. The end-to-end quality engineers have this responsibility before, during, and after launch.
The product manager’s role is also fundamentally changing at cloud companies, as software engineers assume more responsibility for scheduling and managing development. The product manager is no longer responsible simply for “hitting a date” but also for the business and operational success of the program. He or she has to take on a more strategic, analytical, and technical role. The product manager defines hypotheses and features that can be tested, prioritizes their development, and continually monitors actual usage of those features. This manager is responsible for informing and training sales and marketing personnel, setting up partnership programs, developing a pricing framework, and monitoring pricing realization.
The role of data scientists is also becoming more prevalent at cloud companies. Their sole responsibility is to interpret the incoming stream of information. Unlike developers, they are not biased in favor of specific features and serve as honest brokers to determine which emerging trends will have the biggest impact. (See Exhibit 2.)