OPS05-BP07 Implement practices to improve code quality
Implement practices to improve code quality and minimize defects. Some examples include test-driven development, code reviews, standards adoption, and pair programming. Incorporate these practices into your continuous integration and delivery process.
Desired outcome: Your organization uses best practices like code reviews or pair programming to improve code quality. Developers and operators adopt code quality best practices as part of the software development lifecycle.
Common anti-patterns:
-
You commit code to the main branch of your application without a code review. The change automatically deploys to production and causes an outage.
-
A new application is developed without any unit, end-to-end, or integration tests. There is no way to test the application before deployment.
-
Your teams make manual changes in production to address defects. Changes do not go through testing or code reviews and are not captured or logged through continuous integration and delivery processes.
Benefits of establishing this best practice: By adopting practices to improve code quality, you can help minimize issues introduced to production. Code quality facilitates the use of best practices like pair programming, code reviews, and implementation of AI productivity tools.
Level of risk exposed if this best practice is not established: Medium
Implementation guidance
Implement practices to improve code quality to minimize defects before they are deployed. Use practices like test-driven development, code reviews, and pair programming to increase the quality of your development.
Use the power of generative AI with Amazon Q Developer to improve developer productivity and code quality. Amazon Q Developer includes generation of code suggestions (based on large language models), production of unit tests (including boundary conditions), and code security enhancements through detection and remediation of security vulnerabilities.
Customer example
AnyCompany Retail adopts several practices to improve code quality. They have adopted test-driven development as the standard for writing applications. For some new features, they will have developers pair program together during a sprint. Every pull request goes through a code review by a senior developer before being integrated and deployed.
Implementation steps
-
Adopt code quality practices like test-driven development, code reviews, and pair programming into your continuous integration and delivery process. Use these techniques to improve software quality.
-
Use Amazon Q Developer, a generative AI tool that can help create unit test cases (including boundary conditions), generate functions using code and comments, implement well-known algorithms, detect security policy violations and vulnerabilities in your code, detect secrets, scan infrastructure as code (IaC), document code, and learn third-party code libraries more quickly.
-
Amazon CodeGuru Reviewer can provide programming recommendations for Java and Python code using machine learning.
-
Level of effort for the implementation plan: Medium. There are many ways of implementing this best practice, but getting organizational adoption may be challenging.
Resources
Related best practices:
Related documents:
-
Accelerate your Software Development Lifecycle with Amazon Q
-
The Ultimate Cheat Sheet for Using Amazon Q Developer in Your IDE
-
10 ways to build applications faster with Amazon CodeWhisperer
-
Best Practices for Prompt Engineering with Amazon CodeWhisperer
-
How DevFactory builds better applications with Amazon CodeGuru
Related videos:
-
Implement an API with Amazon Q Developer Agent for Software Development
-
Installing, Configuring, & Using Amazon Q Developer with JetBrains IDEs (How-to)
-
Mastering the art of Amazon CodeWhisperer - YouTube playlist
-
AWS re:Invent 2020: Continuous improvement of code quality with Amazon CodeGuru
-
AWS Summit ANZ 2021 - Driving a test-first strategy with CDK and test driven development
Related services: