We talk a lot about creating high-quality (software) products or services, but it is not evan clear what do we mean by quality. Maybe what we should really talk about is creating value. But to whom? To the client? To the shareholder? To the employees?
On this page I am collecting some concepts and links related to the subject. In time I hope this will be transformed into something usable.
- Continuous Integration
- Continuous Deployment
- Deployment Rings
- Who can deploy code?
- Rollback
- A/B Testing
- Automated tests
- Monitoring
- Schema changes - how often, who can do it? Rollback?
- Developer velocity
- Response time (for bugs and feature requests)
- Project management (Waterfall, Agile?)
- Cloud hardware (services) vs your own servers?
- Engineers mentoring each other?
- Unified Engineering
- Culture
- DevOps
- Containers
- Microservices
- Feature flags or feature toggles
- Tribalism - who else in our vertical market is already using this?
- Telemetry
- Visibility of data from production
- Insights
- Centralized logging
- Data Science
- Version Control - do you keep your 3rd party modules versioned?
- Reproducable infrastructure
- Development: Velocity of shipping
- Operations: SLA - MTTR, uptime
- The Wall of Confusion (Development is just throwing wall over the wall to Operations)
- Development wants change, Operations want stability
- Communication
- Health-checks
- CAP Theorem also applies to human interaction within a company.
- value stream mapping
- Technical Debt
- testing pyramid