Continuous Quality for Python: What, How and Why.
Sanket Saurav (~sanket) |
Background: Quality and security tooling has been around for as long as people are building software, and the modern software development workflow has required the tooling and the processes and tools to evolve with the ever-increasing complexity of the software. CQ is aimed at automating a large part of manual code reviews, so software robustness and quality can be gated while saving developers time. The talk is aimed at understanding this evolution from the origin, learning from how the tools and processes have evolved, and how they fit into the context of modern software development.
Continuous Quality or CQ is a software engineering practice in which isolated changes (or deltas) are immediately analyzed for the code’s quality and the properties of maintainability, and reported on before they are added to a code base. Just like CI and CD processes, CQ fits at the start of the software development workflow and helps in systematically ensuring quality of code base.
This talk gives an introduction to CQ for the uninitiated, and dives deep into the need for systemising quality processes in a software project. We'll take examples of quality workflows from some of the most popular open-source projects and draw actionable lessons that can be applied to our own projects directly. Finally, we'll see how to bootstrap a new project with CQ, and how to gradually add it to a large existing codebase without getting overwhelmed.
- Introduction to CQ, and it's need in modern software development
- Lessons from popular open-source communities: Django, Kubernetes, Elastic, Chromium
- Deciding quality workflows and key metrics for your team
- Setting up CQ on a new Python project
- Setting up CQ on a large existing codebase
Outcomes: Software developers (beginners and veterans alike) and engineering leaders can take away learnings about quality and security review processes from large-scale established projects, and get a fresh perspective of how they can apply these processes in their own projects.
There are no technical pre-requisites for the talk: anyone who has experience in writing Python would draw value out of it.