What are the key principles to improve DevSecOps?

SaaS organizations are at the forefront of application reliability, scalability, security, and customer satisfaction. Their expertise offers valuable insights for devsecops teams striving to enhance their practices. Drawing on experiences from transitioning from a SaaS CTO role to a business unit CIO at a Fortune 100 enterprise, this article explores 12 principles devsecops leaders can adopt from SaaS technology leaders to improve their processes and outcomes.

1. Adopt a Customer-First Mindset

A customer-first mindset is crucial for retaining customers and supporting business growth. This involves not only focusing on external customers but also treating internal employees as customers when developing internal applications. Claire Vo, Chief Product Officer of LaunchDarkly, emphasizes the importance of quick identification and remediation of customer issues. Engineers should engage directly with customers, use the product as customers do, and maintain high-quality standards.

Devsecops teams should schedule regular meetings with end-users to observe how they use applications and listen for ways to improve application performance. This approach ensures that the development process remains aligned with customer needs and expectations.

2. Connect Version Control to Agile User Stories

While most enterprises have adopted version control, there is often too much focus on branch management. David Brooks, SVP of Evangelism at Copado, suggests tracking changes based on user stories to support agile development. This approach facilitates test-driven development and automated merge conflict resolution, ensuring that development efforts are directly aligned with delivering user value.

Devsecops teams should connect workflows between agile tools and version control, standardize CI/CD pipelines, develop with feature flags, and leverage canary release strategies to streamline the development process and improve efficiency.

3. Release New Features to Alpha Groups

Investing in devsecops automation enables the release of features to small user groups for A/B testing. This approach supports continuous deployment while allowing teams to validate features and gather user feedback early in the development process. Elliot Wood, CTO and Co-founder of CallRail, highlights the importance of rapid, small-scale testing to minimize risk and improve feature quality.

Devsecops teams should implement alpha and beta testing programs, recruit participants, communicate goals, capture actionable feedback, and reward collaboration to ensure successful feature validation and user satisfaction.

4. Require Security by Design

Implementing security by design involves automating penetration testing, triggering code scanning in CI/CD pipelines, and protecting APIs from various vulnerabilities. Steve Touw, CTO at Immuta, notes that early integration of security practices reduces backend maintenance and vulnerability management efforts.

CIOs, CISOs, and delivery managers should define non-negotiable security requirements, tests, and metrics for automating paths to production, ensuring that security is embedded throughout the development lifecycle.

5. Recognize Unit Testing is Insufficient

While unit tests validate individual components, they are insufficient for ensuring overall application quality and user experience. Peter McKee, Head of Developer Relations at Sonar, stresses the importance of comprehensive functional testing to catch bugs that unit tests may miss.

Agile development teams should use tools to automate front-end user experience testing, assign responsibility for robust functional testing, and invest time in developing these skills to ensure high-quality software delivery.

6. Automate Tests from Subject Matter Experts

Quality assurance engineers need guidance from end-users to understand their workflows and testing needs. David Brooks suggests that subject matter experts perform exploratory testing and use tools to capture their steps, which can then be automated for continuous testing.

Devsecops teams should involve alpha and beta groups in the testing community, capture testing patterns using tools, develop a continuous testing strategy, and leverage synthetic data to scale test patterns effectively.

7. Validate Code for Security and Quality

With the rise of genAI code generators, reviewing code for vulnerabilities and quality issues has become increasingly important. Automated static code analysis, as recommended by Peter McKee, can uncover additional issues beyond what unit tests catch, enhancing software reliability and security.

Enterprises should integrate static code analysis into CI/CD pipelines to flag security and code quality issues early, reducing technical debt and ensuring robust, secure code before deployment.

8. Establish Nonfunctional Operational Requirements

Nonfunctional requirements, such as performance, reliability, and security standards, are crucial for guiding infrastructure management and development practices. David Coffey of IBM emphasizes the importance of these requirements in maintaining high availability and scalability.

Architects, operations, and security experts should draft standards for nonfunctional requirements and acceptance criteria, ensuring that agile development teams incorporate these standards into their user stories.

9. Channel SLOs and Alert Priorities Meaningfully

Defining service level objectives (SLOs) and error budgets helps prioritize operational improvements and set realistic performance expectations. Asaf Yigal of Logz.io points out that clear alert priorities can reduce stress for engineers and align their efforts with business success.

Product managers should be involved in setting SLOs, using customer segments and critical periods to define when performance issues have significant business impacts, ensuring that operational priorities are aligned with user satisfaction.

10. Implement Observability and Monitor Data Pipelines

Data pipelines are integral to modern applications, and delays or quality issues can compromise workflows. Ashwin Rajeeva of Acceldata recommends early validation of data quality and continuous monitoring to prevent disruptions.

Devsecops teams should implement comprehensive monitoring across the data supply chain, use automated checks and alerts to identify pipeline issues, and ensure data integrity and reliability.

11. Lock Down Admin Controls and External Access

SaaS companies rigorously secure administrative functions to protect customer data and application availability. Igor Jablokov of Pryon advises implementing dual admin controls, multifactor authentication, and restricting unnecessary external access.

Information security specialists should review the latest vulnerabilities and provide security checklists, training, and support to devsecops teams to lock down administrative controls and external access effectively.

12. Configure Hot Standby Environments

Deploying infrastructure as code, using cloud automation, and configuring multizone deployments are standard practices for ensuring high availability. Jablokov recommends having a hot standby in another cloud vendor to mitigate the risk of hyperscaler faults.

Devsecops teams should develop standard architectures and configurations that include high availability practices, ensuring robust cloud infrastructure and operational resilience.

Balance is Key

The principles and best practices outlined here serve as guidelines for devsecops teams to improve application reliability, performance, and security. The challenge lies in prioritizing operational investments while balancing them with functional requirements. Agile development teams that track operational metrics, debate priorities, and make informed investments are more likely to deliver superior experiences and operational performance. By adopting these principles, devsecops leaders can enhance their processes, ensure application reliability, and achieve greater customer satisfaction.

Conclusion

Adopting and implementing the 12 principles from SaaS leaders can significantly enhance DevSecOps practices within any organization. By focusing on a customer-first mindset, integrating agile methodologies with version control, and emphasizing security by design, organizations can build more reliable and secure applications. Advanced testing, continuous monitoring, and effective resource management are essential for maintaining high performance and operational efficiency. Ensuring data reliability, securing administrative controls, and configuring robust infrastructure further contribute to the overall stability and resilience of applications. Balancing these operational improvements with functional requirements through agile methodologies enables teams to deliver superior user experiences and achieve greater customer satisfaction. As DevSecOps continues to evolve, these principles will serve as a foundational guide for teams striving to enhance their processes, ensuring their applications are robust, performant, and secure.

Be the first to comment

Leave a Reply

Your email address will not be published.


*