Good Programming Practices
- Start with a good design. Update the design documents regularly. Create additional design documents before adding major new features or functionality.
- The program under development should be at all times functioning. The development process consists of adding new functionality without breaking existing functionality.
- Work has to be divided into small incremental steps that can be typically accomplished and code-reviewed in one day. Even large-scale rewrites should be made incremental.
- Every line of code written or modified undergoes peer review. The smallest team must contain at least two programmers so that they can code-review each other's changes.
- Always attempt to work top-down in:
- Design—start with high level objects.
- Implementation—create top-level objects using low-level stubs.
- Modification—change the top-level objects and the overall flow of control first. If necessary, use stubs, or fake new functionality using old implementation.