We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Reliability and speed by 'push to main' mentality - Håvard Høiby - NDC Oslo 2024
Learn how pushing directly to main branch with feature flags, small increments, and "dumb code" can make your development process faster & more reliable.
- 
    Maintain only production environment, no staging/development environments - this reduces complexity and forces better practices 
- 
    Push directly to main/master branch from day one - enables faster integration and learning from production workloads 
- 
    Break changes into small, atomic increments rather than large PRs: - Reduces risk
- Makes rollbacks easier
- Enables faster feedback
- Simplifies code review
 
- 
    Use feature flags extensively: - Test new features in production
- Control rollout
- Easy rollback capability
- Decouple deployment from release
 
- 
    Employ expand/contract pattern for breaking changes: - Add new version alongside old
- Gradually migrate traffic
- Remove old version when safe
 
- 
    Embrace incidents and errors: - Build blameless culture
- Learn from mistakes
- Monitor application metrics over infrastructure
- Have clear incident response process
 
- 
    Write “dumb code”: - Keep it simple
- Minimize abstractions
- Make it easy to understand and modify
- Focus on explicit over clever
 
- 
    Enable developers to be autonomous: - Trust teams to deploy
- Give access to production tools
- Allow direct fixes without process overhead
- Empower decision making
 
- 
    Test based on impact and criticality: - More testing for critical paths
- Less ceremony for low-risk changes
- Use production data for testing
- Monitor real usage over synthetic tests
 
- 
    Optimize for speed of integration: - Minimize time from idea to production
- Remove artificial process barriers
- Learn from production quickly
- Continuously deliver small changes