Get Feedback Early and Often
Gain feedback by frequent and early releases of functionality, rather than Big Bang releases.
Rationale
Whilst this represents a wider cultural shift, the engineering benefits are clear. Early and frequent releases through to Production provide feedback sooner, make code level integration easier, allow course corrections to be made earlier and provide business value more quickly. Problems are easier to identify and resolve in smaller changesets.
Implications
- Encourage all team members to help slice work into smaller units that can be tested and released independently.
- We encourage trunk-based development. Teams should adopt patterns such as Feature Flags and Branch by Abstraction to enable frequent deployments without resorting to long-lived branches.
- Prioritise keeping the software deployable over working on new features through constant investment.
- Requires regular assessment of feature flags and removal of the obsolete ones.
- Requires an automated, version-controlled configuration management strategy and delivery pipeline.
- No long-term development branches (and consequential complex merges) are needed.
- A common approach to controlling, measuring and evaluating outcomes of experiments is needed, particularly when systems are broken down into Small and Simple pieces.