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

Open Source Project Management

  • Mentoring
  • Issue queue workflow
  • Governance
  • Conflict resolution
  • Cultural barriers Hofstede's cultural dimensions theory
  • Language barriers
  • Time management
  • How to handle with pull-request that needs more work?
  • Processes that work 5-10 people will not work when you have 1,000-5,000 people.
  • Focus on the Human element

Videos and podcasts

Other related videos