We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Continuous Integration: That’s Not What They Meant • Clare Sudbery • GOTO 2023
Discover the secrets of successful software development: continuous integration, trunk-based development, and what they really mean for your team's productivity and code quality.
- Continuous Integration is not aboutROUGH quality code, but about integrating small, frequent changes to the main branch, rather than feature branches.
- Trunk-based development is when the entire team commits to a shared main branch at least daily, making it a more effective way of doing software development.
- Feature branches introduce queues and slow down development.
- High-quality code is not the result of code reviews, but rather a byproduct of good development practices, such as small code changes and frequent testing.
- Code reviews should focus on the whole codebase, not individual lines of code.
- The quality of software decreases as the time between changes increases.
- Code reviewers are not obliged to review every line of code, but rather focus on the overall structure and design.
- Successful development requires a high-trust environment, where questions are encouraged and mistakes are tolerated.
- Trunk-based development encourages collaboration and reduces risk.
- Code reviews should not be used to shame or guilt developers, but rather to improve code quality.
- Automated testing is essential for reducing build times and increasing confidence in the codebase.
- Feature flags can be used to manage complex changes, but should not be overused.
- Trunk-based development makes it easier to refactor code, as changes are small and frequent.
- Reviews should focus on the changes made, not the change itself.
- Merge conflicts are minimized when the entire team pushes to the main branch regularly.
- Code reviews should not be used to judge developers, but rather to improve code quality.
- Continuous Integration and Trunk-based development can be applied to any software project, regardless of size or complexity.