$2.8 trillion. That was the estimated cost impact of poor-quality software to organizations in the U.S. alone in 2018.[1]With 100 times more code being managed in 2020 than 10 years ago, the chances for software error and resulting costs are increasing exponentially and globally. The importance of software quality has never been higher.[2]
Software quality is one of the most important ingredients that has led to the incredible success of the Cisco Catalyst 9000 switching family, the fastest ramping product in Cisco history. With four million+ units deployed in mission-critical networks at more than 70,000 organizations globally, the Cisco IOS XE software stack and specific feature sets for the Catalyst 9000 have proven to be incredibly reliable.
It didn't happen by chance. Starting with software design and architecture, Cisco developers adhere to a quality mindset culture that spans from product architecture to customer experience.
In the Cisco Enterprise Switching team, we follow four fundamental tenets to deliver quality in products such as the Catalyst 9000 and related solutions: Quality@Source, Automation, Solution Focus, and Customer Engagement (Figure 1).
Figure 1. A Software Quality CultureQuality@Source starts with product design and architecture. Catalyst 9000 consists of five different product families of fixed, stackable, and modular switches such as the Cat9200, Cat9300, Cat9400, Cat9500 and Cat9600 with over 100 SKUs and 10+ different NPUs. Despite thousands of combinations, the Cisco development team built common Cisco IOS XE code with a single binary. It has significantly cut down the time it takes our customers to certify and deploy the Catalyst 9000 in their networks.
The development phase includes comprehensive code reviews, intersection analysis, pre-commit sanity checks, and unit testing to achieve baseline integrity. The code is built with serviceability in mind and is evolving with predictive analytics. It enables Cisco engineers to proactively analyze and fix issues before failure occurs. They can then take corrective action on the network or provide patches proactively.
In every release of Cisco IOS XE running on the Catalyst 9000, tens of new capabilities are added. To augment the quality maintained during the development phase, automated tests are run continuously to make sure that the quality of the baseline features is protected while new features are added. As new automated scripts are continuously added to the software repository, engineers measure the efficacy of the scripts to optimize runtime and effectiveness
During the Solution Focus phase, the team tests and validates code maturity by testing customer use cases and with stress, scale, and longevity tests that simulate the way features are deployed in real-world networks.
Due to a rich set of features and capabilities, Catalyst 9000 is deployed in thousands of networks with very different deployment architectures. For example: The network architecture of a very large university is very different than a network deployed in a hospital environment, and they are both very different than a large financial institution with thousands of branches.
The Catalyst 9000 team has built multiple customer vertical profiles based on our knowledge of these networks. These customer profiles contain use cases simulating large customer configurations that are closer to real-world deployment scenarios. Customer Validated Design profile configurations and use cases are made available to customers on the Cisco website for planning their lab certifications and deployments.
After solution focus testing, the code is tested in the field. The code is deployed in Alpha network which is used by developers and testers every day to do their work. It provides them with a real network simulation and provides feedback on how the product is functioning. After it has been tested on the Alpha network, the product is made available for Early Field Trial (EFT) to customers. Once feedback received from EFT is addressed, the product is ready for First Customer Shipment (FCS).
As World War I hero William A. Foster famously said: "Quality is never an accident; it is always the result of high intention, sincere effort, intelligent direction and skillful execution."
The Cisco Enterprise Switching Software Team truly believes in this philosophy and models it every day.
[1] "The Cost of Poor Quality Software in the U.S.: A 2018 Report," Consortium for IT Software Quality, 2018.
[2] "Devs are managing 100x more code, in more languages, for more platforms than ever," Sourcegraph, 2020.
Check out our Intent-Based Networking video channel.
Subscribe to the Networking blog