Clouds may move across the horizon in slow motion, but they are the jet rockets of software development. In today’s mobile, ubiquitous, and instantaneous world, cloud teams are running far ahead of traditional teams in writing and releasing code. The cloud has also enabled these teams to become innovative and efficient, and to deepen their ties with customers.
Traditional software teams have a lot to learn from cloud teams about unleashing the creativity of their code writers. In fact, so do any companies that build software-enabled products and services. In today’s landscape, in which software is embedded into everyday objects, that means virtually all companies.
After working with world-class cloud teams, we uncovered four principles that guide how they operate. These principles can help more traditional teams modernize their software-development practices.
- Smashing Functional Silos. Teams have end-to-end responsibility. Development, testing, operations, data instrumentation, and operational analytics all report to a common leader, creating a single point of accountability.
- Living Software. Many teams still treat each software release as a singular event and then move on to the next big thing. Cloud teams instead launch services with the explicit understanding that they will be continually updating their code. To accommodate this shift, software must be modular and loosely coupled.
- Embracing Automation. Traditional software development has too much downtime and manual checking and testing. Cloud teams invest heavily in automation to improve their efficiency and consequently the quality of their software.
- Connecting with Customers. For cloud teams, the customer is not an abstract concept but a real-time and constantly changing composite of actual behavior, usage, and preferences. These teams have invested heavily in metrics that provide real-time insights unavailable through more traditional customer-feedback methods, such as focus groups. These insights show teams how customers are using their products and services, allowing the teams to build software that meets customers’ exact needs and even delights them.
Collectively, these principles push decision making down into the organization, enabling software developers to own their code, understand their customers, and continually improve their service. They also eliminate the traditional trade-offs that have long marked software development. Cloud teams are innovative and organized; they are agile without sacrificing quality.
Venture capitalist Marc Andreessen likes to say that software is “eating the world.” Companies that fail to adopt these principles risk being eaten by those that do.