InfoQ's research widget has been deprecated and is no longer available.
InfoQ is currently running a series of articles on "Patterns of DevOps Culture", highlighting some of the practices and patterns commonly found in organizations exhibiting a successful DevOps culture.
As part of that initiative we wanted to know which practices you believe contribute the most towards an environment of collaboration (across the board), sharing (continuous learning) and ownership (of both successes and failures). In other words, what moves the needle towards DevOps?
Here's the list we've gathered so far, in no particular order:
- Devs pair programming with Ops on joint tasks
- Devs responsible for application deployments (manual or automated)
- Devs have root access to production systems
- Automated machine provisioning (private or public cloud)
- Infrastructure as code (using configuration management tools such as Puppet, Chef, etc)
- Devs on-call (first line incident response)
- Devs monitoring application performance (and understanding system performance)
- Blameless post-mortems (including everyone involved in outages)
- Having ops engineer(s) embedded in the development/product team
- Having a dedicated team responsible for deployments and infrastructure management
- Self-service (automated) production-like environments (infrastructure-as-a-service)
- Including operational requirements in the sprint/backlog
- Devs and Ops joint daily stand-up meetings
- Devs and Ops joint retrospective meetings
- Shared goals and responsibilities for key metrics
- Highly visible, shared dashboards showing key metrics
- Kanban-style board including Dev and Ops work in progress
- Infrastructure code reviews (in any form - async or in person)
- Mentoring other teams' members (for e.g. Devs teaching programming practices to Ops)