DevOps Learning Path
3 minute read
These are the core skills we recommend everyone learn to execute CD.
Behavior-Driven Development
Every step in CD requires clear, testable acceptance criteria as a prerequisite. BDD is not test automation. BDD is the discussion that informs acceptance test driven development.
- Videos
- What is BDD Dave Farley co-author of Continuous Delivery - 16:28 min
- Acceptance Testing By Dave Farley co-author of Continuous Delivery - 14:49 min
- Recommended Reading
- BDD In Action by John Ferguson Smart
- Behavior-Driven Development with Cucumber: Better Collaboration for Better Software by Richard Lawrence, Paul Rayner
Continuous-Integration
Continuous integration is a requirement for CD. It requires very frequent integration of non-breaking code.
- Videos
- Top 10 Rules For Continuous Integration Dave Farley - 17 min.
- Continuous-Integration-Practices on Linkedin Learning. Instructed by Ernest Mueller and James Wickett - 4 min.
- Continuous-Integration on Linkedin Learning. Instructor by Laura Stone - 4 min.
- Recommended Reading
- Continuous Integration: Improving Software Quality and Reducing Risk by Paul M. Duvall, Steve Matyas, Andrew Glover.
Conway’s law
“Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.” - Melvin Conway
Loosely coupled teams create loosely coupled systems. The opposite is also true.
- Videos
- Don’t Forget Conway’s Law Sarah Novotny - 8:50 mins.
- Recommended Reading
- Conway’s Law and System Design by Sam Newman.
- How to Design Our Organization and Architecture with Conway’s Law in Mind co-author Gene Kim.
Domain-Driven Design
This is another key design tool both for organizational and system design. This is a critical skill for developing microservices.
- Videos
- What is DDD Eric Evans - 57:06 min.
- Software Architecture: Domain-Driven Design LinkedIn Training Course.
- Recommended Reading
- What Is Domain-Driven Design? by Vladik Khononov.
Pipeline Steps
Architecting a system of delivery is about designing efficient quality gates for the system’s context.
- Videos
- Understanding A DevOps Pipeline David Farley - 13:24 mins.
- Recommended Reading
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation Jez Humble and David Farley
Test-Driven Development (Design)
TDD highly correlates with application architecture that is easy to maintain and easy to upgrade.
- Videos
- Does TDD Lead to Better Software Design? Dave Farley co-author of Continuous Delivery - 18:32 min.
- Three Mindsets of TDD Dave Farley co-author of Continuous Delivery - 18:57 min.
- TDD and DDD with .NET Core and VSCode - 1 hour
- Recommended Reading
- Test Driven Development: By Example by Kent Beck.
Three Ways
The core principles that define DevOps:
- Consider the system of delivery as a whole
- Amplify feedback loops
- Continuously learn and improve the delivery system
- Videos
- The 3 Ways of The Phoenix Project co-author Gene Kim - 3:30 mins.
- Recommended Reading
- The Three Ways: The Principles Underpinning DevOps by Gene Kim
- The DevOps Handbook co-author Gene Kim
Value Stream Mapping
The primary process analysis tool used to help identify and attack constraints to delivery.
- Videos
- How we used Value Stream Mapping to accelerate DevOps adoption Marcus Robinson - 45:26 min.
- Recommended Reading
- Value Stream Mapping: How to Visualize Work and Align Leadership for Organizational Transformation - Karen Martin and Mike Osterling
Wastes
Our goal is to remove waste daily. We must first learn to recognize it.
- Videos
- The 7 Types of Waste in Software Development Alex Green - 10:34 mins.
- Recommended Reading
- Making Work Visible by Dominica DeGrandis.
- The Art of Lean Software Development by Curt Hibbs; Mike Sullivan; Steve Jewett.