7 ways to ensure the success of product-centric reliability

BrandPost By Ryan Kennedy, Director of Application Delivery
Sep 07, 20234 mins
Financial Services Industry

This blog post highlights 7 changes the Digital Payments team made to create a culture where product teams own the reliability of their offerings.

Discover meeting
Credit: Discover® Financial Services

As a fintech company, the reliability of our products and services is critical to ensuring that Discover® Financial Services customers can access their money, credit, and accounts when they need to. Like many other companies, Discover has adopted a product-centric approach where the responsibility for reliability sits with the product teams.

My team at Discover Financial Services is responsible for digital payments. In order to create a culture where product teams own the reliability of their offerings, the Digital Payments team made seven instrumental changes:

  1. Define, measure, and reveal product goals: We broke down and extended key reliability goals to each product area. Each product team is given a scorecard with metrics around risks, vulnerabilities, observability, and automation levels.
  2. Map product flows: Product flows can get out of sync over time, so taking time before we started our “ops-in-squads” model to evaluate our product flows and where there were gaps in reliability engineering helped us to be most effective. Going through this exercise with teams created a more in-depth understanding, which led to more success.
  3. Ensure chaos testing: Implementing chaos testing and game-day simulation helped us spot and fix observability problems and correct logging practices that were creating noise to mask true alerts. These activities created a great deal of energy and awareness around availability.
  4. Clearly define service level objectives: SREs worked with product teams to define SLOs for services and build observability to guarantee the SLOs are met. Teams are responsible for ensuring proper logging coverage, establishing monitoring practices, and creating alerts.
  5. Create Ops-Readiness Guidelines: Because each product team is responsible for the reliability of their products, we created a list of guidelines that articulate the expectations clearly around logging, service monitoring, alerting, deployment, transaction retries, recoverability plans, automated production validation, certificate rotation plan, chaos testing, and more.
  6. Plan for capacity management: One of the more critical changes we made was to better plan for capacity management and performance testing via quarterly capacity management reviews. These reviews bring the right people together to determine projected average and peak traffic patterns and volumes six to 12 months in advance for each customer. This helps ensure that systems are ready for any peak times.
  7. Make teams directly responsible for product support: We went from a centralized support system to making teams accountable for their product support. Actively having to support late-night calls related to product issues creates a stronger team focus on designing for reliability.


Conclusion
These seven changes were critical in helping the Digital Payments team create a culture where each product team owned the reliability of their products. This has resulted in teams that feel more empowered to enable reliability and in products that are more secure and compliant.

Visit Discover Technology to learn more about how Discover is adopting new processes to ensure reliability of its products.

Author:

Ryan KennedyRyan Kennedy is a Director of Engineering at Discover Financial Services with over 25 years of proven experience leading the development and operations of global cloud platforms. Ryan has a track record for building strong, autonomous engineering organizations and has most recently established a successful Site Reliability Engineering practice at Discover.  Ryan spent much of his career working in the Internet of Things space where he has introduced a number of innovations and holds a patent in real-time evaluations of telematics and IoT machine data.  Ryan graduated from the University of Illinois, Champaign-Urbana with a bachelor’s degree in Computer Engineering.