<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title>Chemaclass - devops</title><subtitle>Tech Lead sharing practical insights on software craftsmanship, TDD, leadership, Bitcoin, and AI. Blog posts, book summaries, and conference talks.</subtitle><link rel="self" type="application/atom+xml" href="https://chemaclass.com/tags/devops/atom.xml"/><link rel="alternate" type="text/html" href="https://chemaclass.com"/><generator uri="https://www.getzola.org/">Zola</generator><updated>2024-05-31T00:00:00+00:00</updated><id>https://chemaclass.com/tags/devops/atom.xml</id><entry xml:lang="en"><title>The Phoenix Project</title><subtitle>A Novel About IT, DevOps, And Helping Your Business Win</subtitle><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2024-05-31T00:00:00+00:00</published><updated>2024-05-31T00:00:00+00:00</updated><author><name>
Gene Kim</name></author><author><name>
Kevin Behr</name></author><author><name>
George Spafford</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-phoenix-project/"/><id>https://chemaclass.com/readings/the-phoenix-project/</id><summary type="html">This is a story about an impossible project in which the people around are constantly playing politics, busy fixing critical bugs and wasting constant efforts on quick patches instead of helping the business thrive.</summary><content type="html">&lt;p>This is a story about an impossible project in which the people around are constantly playing politics, busy fixing critical bugs and wasting constant efforts on quick patches instead of helping the business thrive.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>If IT fails, the business fails.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;strong>DevOps Principles&lt;/strong>: Flow, Feedback, and Continual Learning and Experimentation. These guiding concepts promote advancements in responsiveness, dependability, and teamwork.&lt;/p>
&lt;h4 id="summary">Summary&lt;/h4>
&lt;p>The book starts with the promotion of Bill as VP of IT, and with that the responsibility of delivering an imposible (Phoenix) project. The CEO warns him that if the project does not deliver in time, then the entire IT department will be outsourced and the current IT employees will be fired.&lt;/p>
&lt;p>Bill tries to understand the status quo, and finds out that the people are too busy firefighting constantly and dealing with too many responsibilities (in addition, they are understaffed). Everything is urgent and needs to be done asap. The deadline was already setup from above, and there is no planning or discussions with other departments. TL;DR: Corporate chaos, politics and bloodbath meetings.&lt;/p>
&lt;p>However, Bill gets to know one person in the company that helps him improve the status quo, not by telling him what to do but by asking him questions to help find the solution.&lt;/p>
&lt;p>For example, the first question: “What are the four types of work that IT does?” which is not answered immediately but during the story:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Business projects&lt;/strong>: these are the projects that directly affect business goals. They generate revenue and deliver value to customers.&lt;/li>
&lt;li>&lt;strong>Internal projects&lt;/strong>: these are regular tasks that keep the system working. Like system upgrades, security patches, etc. It tends to be invisible and can become a bottleneck for IT departments.&lt;/li>
&lt;li>&lt;strong>Changes&lt;/strong>: the result of the previous business and internal projects, to know what to change with and within them.&lt;/li>
&lt;li>&lt;strong>Unplanned work&lt;/strong>: this is the real productivity killer. This is related to all operational issues resulted from the previous three types of work.&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/6QNdL1I7OTM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Accelerate</title><subtitle>Building and Scaling High Performing Technology Organizations</subtitle><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-03-19T00:00:00+00:00</published><updated>2023-03-19T00:00:00+00:00</updated><author><name>
Nicole Forsgren</name></author><author><name>
Jez Humble</name></author><author><name>
Gene Kim</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/accelerate/"/><id>https://chemaclass.com/readings/accelerate/</id><summary type="html">The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Accelerate explores how software development teams using &lt;strong>Lean Software&lt;/strong> and &lt;strong>DevOps&lt;/strong> can measure their performance and the performance of software engineering teams impacts the overall performance of an organization.&lt;/p>
&lt;blockquote>
&lt;p>Note: DevOps is about integrating and automating software development (Dev) and IT operations (Ops), focusing on improving (and shortening) the systems development life cycle.&lt;/p>
&lt;/blockquote>
&lt;h2 id="key-capabilities">Key Capabilities&lt;/h2>
&lt;h3 id="continuous-delivery">Continuous Delivery&lt;/h3>
&lt;ul>
&lt;li>Use Version Control for all Production Artifacts&lt;/li>
&lt;li>Automate Your Deployment Process&lt;/li>
&lt;li>Implement Continuous Integration&lt;/li>
&lt;li>Use Trunk-Based Development Methods&lt;/li>
&lt;li>Implement Test Automation&lt;/li>
&lt;li>Continuous Delivery (CD)&lt;/li>
&lt;/ul>
&lt;h3 id="architecture">Architecture&lt;/h3>
&lt;ul>
&lt;li>Use a Loosely Coupled Architecture&lt;/li>
&lt;/ul>
&lt;h3 id="product-and-process">Product and Process&lt;/h3>
&lt;ul>
&lt;li>Gather and Implement Customer Feedback&lt;/li>
&lt;li>Make the Flow of Work Visible through the Value Stream&lt;/li>
&lt;li>Work in Small Batches&lt;/li>
&lt;li>Foster and Enable Team Experimentation&lt;/li>
&lt;/ul>
&lt;h3 id="lean-management-and-monitoring">Lean Management and Monitoring&lt;/h3>
&lt;ul>
&lt;li>Have a Lightweight Change Approval Processes&lt;/li>
&lt;li>Monitor across Application and Infrastructure to Inform Business Decisions&lt;/li>
&lt;li>Check System Health Proactively&lt;/li>
&lt;li>Improve Processes and Manage Work with WIP (Work-In-Process) Limits&lt;/li>
&lt;li>Visualize Work to Monitor Quality and Communicate throughout the Team&lt;/li>
&lt;/ul>
&lt;h3 id="cultural">Cultural&lt;/h3>
&lt;ul>
&lt;li>Support a Generative Culture&lt;/li>
&lt;li>Encourage and Support Learning&lt;/li>
&lt;li>Support and Facilitate Collaboration among Teams&lt;/li>
&lt;li>Provide Resources and Tools that Make Work Meaningful&lt;/li>
&lt;li>Support or Embody Transformational Leadership&lt;/li>
&lt;/ul>
&lt;h2 id="four-key-metrics">Four Key Metrics&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Change Lead Time&lt;/strong>
&lt;ul>
&lt;li>Time to implement, test, and deliver code for a feature&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Deployment Frequency&lt;/strong>
&lt;ul>
&lt;li>Number of deployments in a given duration of time&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Change Failure Rate&lt;/strong>
&lt;ul>
&lt;li>Percentage of failed changes over all changes (regardless of success)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Mean Time to Recovery&lt;/strong>
&lt;ul>
&lt;li>Time it takes to restore service after production failure&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/_d9cws_T9qk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Docker: SecDevOps</title><subtitle>From introduction to advanced concepts</subtitle><category term="docker" scheme="https://chemaclass.com/tags/docker/" label="Docker"/><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><published>2022-04-29T00:00:00+00:00</published><updated>2022-04-29T00:00:00+00:00</updated><author><name>
Fran Ramírez</name></author><author><name>
Elías Grande</name></author><author><name>
Rafael Troncoso</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/docker-secdevops/"/><id>https://chemaclass.com/readings/docker-secdevops/</id><summary type="html">A great book about Docker, from introduction to advanced concepts all covered by easy-to-follow examples.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>A great book about Docker, from introduction to advanced concepts all covered by easy-to-follow examples.&lt;/p>
&lt;p>Best practices about how to build docker images and keep a good security layer when running containers as well, from the docker daemon and all tech behind docker.&lt;/p>
&lt;blockquote>
&lt;p>The book is available only in Spanish: &lt;a rel="external" href="https://0xword.com/es/libros/103-docker-secdevops.html">0xWord&lt;/a>&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="en"><title>Team Topologies</title><subtitle>Organizing Business and Technology Teams for Fast Flow</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2022-03-31T00:00:00+00:00</published><updated>2022-03-31T00:00:00+00:00</updated><author><name>
Matthew Skelton</name></author><author><name>
Manuel Pais</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/team-topologies/"/><id>https://chemaclass.com/readings/team-topologies/</id><summary type="html">Team Topologies focuses on how to set up dynamic team structures and interaction modes that can help teams adapt quickly to new conditions, and achieve fast and safe software delivery.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Team Topologies focuses on how to set up dynamic team structures and interaction modes that can help teams adapt quickly to new conditions, and achieve fast and safe software delivery.&lt;/p>
&lt;h2 id="team-structure">Team structure&lt;/h2>
&lt;ul>
&lt;li>High cohesion: Group related things together.&lt;/li>
&lt;li>Loose coupling: There must be clear boundaries between the teams.&lt;/li>
&lt;li>Cognitive load: It’s like the RAM of the team. The team can burn down if you load with more than the team can handle.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>In order to avoid bottleneck teams, you need to make sure their cognitive load is not very high.&lt;/p>
&lt;/blockquote>
&lt;h2 id="conway-s-law">Conway’s Law&lt;/h2>
&lt;ul>
&lt;li>The organization structure will influence the architecture of the team.&lt;/li>
&lt;li>Conway’s Law says that organizations will design systems that copy their communication structure.&lt;/li>
&lt;li>In other words, there will be no focus on the optimal architecture for the project.&lt;/li>
&lt;li>First you need to define the architecture of the project, and then form the teams.&lt;/li>
&lt;/ul>
&lt;h2 id="team-first-thinking">Team-First Thinking&lt;/h2>
&lt;ul>
&lt;li>Who is in the team matters less than the team dynamics.&lt;/li>
&lt;li>When measuring performance, teams matter more than individuals.&lt;/li>
&lt;li>Team = group of 5-9 who work towards a shared goals as a unit.
&lt;ul>
&lt;li>Check &lt;a href="/blog/dunbar-number/">Dunbar number&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Forming a team takes from 2 weeks to 3 months.&lt;/li>
&lt;li>Cognitive load is the total amount of mental effort being used in the working memory.&lt;/li>
&lt;li>3 Types of cognitive load:
&lt;ul>
&lt;li>Intrinsic: Fundamentals of the problem space. Example: programming language.&lt;/li>
&lt;li>Extraneous: Environment related. Example: how to deploy.&lt;/li>
&lt;li>Germane: Special attention is required. Example: business domain.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Heuristics:
&lt;ul>
&lt;li>3 types of domain: Simple, complicated, complex.&lt;/li>
&lt;li>If the domain is too big, split it into subdomains.&lt;/li>
&lt;li>One team, either:
&lt;ul>
&lt;li>2-3 simple domains.&lt;/li>
&lt;li>1 complex domain.&lt;/li>
&lt;li>Avoid 2 complicated domains, better split the team.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Define a Team API:
&lt;ul>
&lt;li>Code: endpoints, libraries, clients, …&lt;/li>
&lt;li>Versioning.&lt;/li>
&lt;li>Documentation.&lt;/li>
&lt;li>Practices and principles.&lt;/li>
&lt;li>Communication tools.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="team-topologies">Team Topologies&lt;/h2>
&lt;blockquote>
&lt;p>Instead of structuring teams according to know-how or activities, organize teams according to business domain areas.&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Success of topology depends both on team members and surrounding environment, teams and interactions.&lt;/li>
&lt;li>Split responsibilities to breakdown silos.&lt;/li>
&lt;li>Types of dependencies: Knowledge, task, and resource.&lt;/li>
&lt;li>Four types of teams:
&lt;ul>
&lt;li>Stream-aligned: deliver features, projects, products to the market asap.&lt;/li>
&lt;li>Enabling: grow the capabilities for the Stream-aligned team(s).&lt;/li>
&lt;li>Complicated-subsystem: reduce the cognitive load of the Stream-aligned team(s).&lt;/li>
&lt;li>Platform: make the Stream-aligned team(s) autonomous.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="team-interactions">Team Interactions&lt;/h2>
&lt;ul>
&lt;li>Collaboration. Work closely between teams with different skill sets.&lt;/li>
&lt;li>X-as-a-Service. Clear ownership, small cognitive load.&lt;/li>
&lt;li>Facilitation. Helping to clear impediments, focus on quality interactions between other teams.&lt;/li>
&lt;/ul></content></entry></feed>