- Explain and get everyone to agree to one set of standards:
To build a culture of quality, explain the importance of high-quality software and set clear goals and standards that everyone agrees on. For example, establish a high threshold of unit testing coverage (70% – 80%) and add end-to-end tests as the definition of done for any task that goes out to production.
- Define and Enforce Coding Standards:
Standardize the way code is written across the team by defining and enforcing coding standards. Use the same code linting rules to maintain consistency in coding style, write small specialized functions to make testing easier, manage cyclomatic complexity, and use code sniffing tools (such as SonarCloud) for security and bug detection.
- Implement Continuous Integration and Continuous Delivery:
Continuous integration and continuous delivery (CI/CD) are crucial to building quality software. Test in production with feature flags and release features to a targeted group of people (such as the product team) before releasing them to everyone else. If a pull request (PR) is approved and the feature is behind a feature flag, it can go to production immediately.
- Monitor and Log Your Applications:
Good logs are essential to understanding what is happening in your application. Make sure logging is part of your coding best practices and that your logs are testable. Implement periodic end-to-end tests to ensure your services are up and running.
- Foster a No-Blame Culture with post-mortem and Playbooks:
When things go wrong, take a no-blame approach and focus on finding solutions. Get the team together to perform post-mortems and identify what went wrong and how to fix it. Create clear instructions (preferably in bullet points) for what to do when there is a production incident. This will be useful when a key person is not available.
Takeaways from your talk:
- Do simple things to achieve big results.
- People’s culture is important