Skip to content

DevOps

Concept · Chapter 13

DevOps combines culture, practices, and tools so development and operations work together across the entire software life cycle. The goal: deliver changes fast, frequently, and with high quality, so the organization can respond to market shifts and gather customer feedback quickly.

  • Move tasks earlier in the life cycle (leftward on the timeline).
  • Originated with testing (test earlier via automation), then generalized.
  • Operations should engage the development team from the start, not only at deployment time.
  • Continuous integration shifts integration/build left; continuous delivery shifts deployment left.

Acronym for DevOps values (originally CAMS; the L was added later):

ValueMeaning
CultureCollaboration and philosophy come first; break down team silos.
AutomationMake repeatable processes run automatically.
LeanOptimize flow and eliminate waste.
MeasurementDecide with data, not gut feeling.
SharingSpread information, tools, and lessons learned.
  • DevOps is fundamentally a culture: cross-functional teams, collaboration even between historically separated groups.
  • Teamwork: dev, ops, and QA communicate and integrate tightly.
  • Continuous improvement: learn from faults so they aren’t repeated.
  • Accountability: own mistakes, fix issues instead of blaming.
  • Quality is everyone’s job: dev shouldn’t outsource defect-finding to QA — especially as release cadence accelerates.
  • Empowerment: anyone, any role, can flag issues or stop a mistake.
  • Structural/organizational changes (team layout, processes) may be needed to enable the cultural shift.
  • Turn manual, error-prone steps into repeatable automated ones.
  • First step: understand current processes, find bottlenecks and defect-prone points, then pick tools.
  • Benefits: consistency, accuracy, frees people, runs off-peak, fast feedback on failure.
  • Don’t automate blindly: improve a bad process before automating it; weigh ROI, start with highest-value processes.
  • Applies well to unit testing, builds, and deployments.

Lean Software Development (LSD) adapts lean manufacturing to reduce waste (anything adding time/effort without business value). Seven principles:

  • Eliminate waste (unneeded features, code, delays).
  • Build quality in (write and automate tests early).
  • Create knowledge (reviews, docs, pairing, training).
  • Defer commitment (decide once enough information exists).
  • Deliver fast (incremental, reliable, frequent — not reckless).
  • Respect people (respectful communication and conflict handling).
  • Optimize the whole (remove bottlenecks system-wide).
  • You cannot know whether improvements/automation worked if you cannot measure. Data should be transparent and shared with dev, ops, and decision makers.
  • Share information, tools, data, and lessons learned so the whole organization improves and depends less on tribal knowledge.
  • Deploy faster, more frequently, with fewer failures.
  • Non-DevOps approaches don’t focus on continuous delivery, so value reaches customers slower; manual ops work wastes time and money.
  • Customers have low tolerance for outages — need fast fault detection and easy fixes to minimize outage count and duration.
  • Automating builds eliminates manual-process errors; greater dev/ops cooperation cuts deployment time and raises reliability.
  • Software Architect’s Handbook (Packt, 2018), Ch.13 “DevOps”, pp. 995-1005.