Files
nexus/sreweekly/articles/259/03-increment-reliability-how-to-build-organizational-resilience.html
2026-09-12 17:23:01 +08:00

19 lines
28 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><html><head><meta charset=utf-8><title>How to Build Organizational Resilience - Increment</title><meta name=description content='Building organizational resilience into an engineering organization’s culture can help development teams manage software failures, incidents, and other technical issues.'><link rel=canonical href=http://localhost:3000/reliability/how-to-build-organizational-resilience/ ><link rel=apple-touch-icon-precomposed href=/img/icon-571805a1.png><meta property=og:title content='How to build organizational resilience – Increment: Reliability'><meta property=og:url content=http://localhost:3000/reliability/how-to-build-organizational-resilience/ ><meta property=og:description content='By encoding resilience into an organization’s culture, engineering teams can be better equipped to tackle the unknown and unexpected.'><meta property=og:image content='https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=1000'><meta name=twitter:card content=summary_large_image><meta name=twitter:image content='https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=1000'><meta name=twitter:site content=@IncrementMag><meta name=twitter:title content='How to build organizational resilience – Increment: Reliability'><meta name=twitter:description content='By encoding resilience into an organization’s culture, engineering teams can be better equipped to tackle the unknown and unexpected.'><link rel=alternate type=application/rss+xml title=Increment href=/feed.xml><meta name=viewport content='width=device-width,initial-scale=1'><link rel=preload href=/fonts/baton-turbo/400-30a55d66.woff2 as=font type=font/woff2 crossorigin=anonymous><link rel=preload href=/fonts/baton-turbo/500-1603c0e8.woff2 as=font type=font/woff2 crossorigin=anonymous><link rel=preload href=/fonts/tiempos-text/400-c4810745.woff2 as=font type=font/woff2 crossorigin=anonymous><link rel=preload href=/fonts/tiempos-head/700-383ede62.woff2 as=font type=font/woff2 crossorigin=anonymous><link rel=stylesheet type=text/css href=/css/bundle-289d885f.css><link rel=stylesheet type=text/css href=/css/issues/16-c2b7b183.css><script>// Don't fade art if it loads ~instantly
setTimeout(()=>{document.documentElement.classList.add('fadeArt')},250);</script><script defer src=/js/defer-737fbd90.js></script><script>const INCREMENT_META={issueNumber:16,issueSlug:'reliability',articleSlug:'how-to-build-organizational-resilience'};</script></head><body class='Issue_reliability Article_how-to-build-organizational-resilience'><nav class=PageNav><div class=u-Container><div class=column><h1 class=logo><a href=/ ><img src=/img/logo-ae2c55d5.svg alt=Increment></a></h1><a class=out-now href=https://store.increment.com/ style=color:#595959><div class='IssueTitle tiny'><div class='t-Caps meta tiny'><span>NEW</span></div><h3 class='t-IssueTitle title'>Buy the print edition</h3></div></a><ul class=nav><li><a href=/issues/ ><span>Issues</span></a></li><li><a href=/topics/ ><span>Topics</span></a></li><li><a href=https://store.increment.com/ ><span>Store</span></a></li><li><a href=/about/ ><span>About</span></a></li></ul></div></div></nav><div class=ArticlePage itemscope itemtype=http://schema.org/Article><script type=application/ld+json>{
"@context": "http://schema.org",
"@type": "Article",
"headline": "How to build organizational resilience",
"image": " https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w&#x3D;1000",
"datePublished": "Thu, 25 Feb 2021 19:00:00 GMT",
"dateModified": "Thu, 25 Feb 2021 19:00:00 GMT",
"publisher": {
"@type": "Organization",
"name": "Increment",
"logo": {
"@type": "ImageObject",
"url": "https://increment.com/img/logo.png"
}
},
"description": "By encoding resilience into an organization’s culture, engineering teams can be better equipped to tackle the unknown and unexpected.",
"mainEntityOfPage": "http://localhost:3000/reliability/how-to-build-organizational-resilience/"
}</script><header class='u-Container ArticleHeader'><div class='u-Container art'><div class=u-Art><div class=placeholder style=background:#f2f2f2></div><picture><source srcset='https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=2000 2000w, https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=1000 1000w, https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=500 500w, https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=100 100w' sizes=100vw><img class=j-SmoothLoad src='https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=1000' sizes=100vw alt='How to build organizational resilience'></picture></div></div><div class=column><div class=u-Grid><div class=main><h4 class='t-Byline byline large'><a href=#authors class=j-SmoothScroll itemprop=author><span>Ryn Daniels</span></a></h4><h1 class='t-TitleSerif large title' itemprop=name>How to build organizational resilience</h1><div class='t-BodySans large intro' itemprop=description>By encoding resilience into an organization’s culture, engineering teams can be better equipped to tackle the unknown and unexpected.</div></div><a class=issue href=/reliability/ ><span class='t-Caps tiny part-of'>Part of</span><div class='IssueTitle small' style=color:#863051><div class='t-Caps meta'><span>Issue 16</span> <span>February 2021</span></div><h2 class='t-IssueTitle title'>Reliability</h2></div></a></div></div></header><div class='u-Container ArticleContent'><article class='ContentBody column' itemprop=articleBody><div class=ArticleLayout><p>Resilience is a process: something you must actively perform, not something you check off a list once. It’s not the same as robustness, though the two are often confused. Computer systems can be robust against known failure modes. If we find bugs, we can fix them and write tests to catch those specific issues in the future. If we find ourselves forgetting a certain step in a process, we can automate or document it for next time. Robustness can help with failure modes that are already known or considered, but it’s only when we add the creativity and flexibility of humans that we achieve the resilience to respond to unknown unknowns.</p><p>In order to be resilient—to be able to prepare for and respond to those unknown failure modes—an organization needs three things. First, it needs the organizational learning skills to maintain and develop a body of shared knowledge. These skills—including systems thinking, team and individual learning, shared goals, and adaptability—prevent the wasted effort of addressing the same problems over and over. Second, an organization must have the tools, processes, and ambient psychological safety to communicate effectively within and across teams. Finally, it requires enough slack for engineers to be able to perform both proactive and reactive work as needed. Without sufficient slack, it’s easy to end up in a never-ending cycle of fighting fires, finding Band-Aid solutions, and dealing with growing technical debt. If people don’t feel safe owning up to mistakes or admitting they don’t know something, it’s harder to diagnose and fix issues. And without the ability to learn from past incidents, work becomes Sisyphean, with meaningful improvement feeling forever out of reach.</p><div class='Sidebar large'><blockquote><p>Many organizations use the word “culture” when talking about their shared principles, but this is largely theory; culture is what happens in practice.</p></blockquote></div><p>Resilience, then, must be encoded in culture. This requires an understanding of what culture is and how to change it. Many organizations use the word “culture” when talking about their shared principles, but this is largely theory; culture is what happens in practice. For our purposes, culture is the collection of behavioral norms, social scripts, incentive structures, and processes that implement a set of values for a group of people.</p><p>Consider the example of two organizations that share “uptime” as a cultural value. One organization might try to achieve its desired 9s by imposing strict rules, having binders full of checklists, and punishing or firing engineers who make mistakes or deviate from the approved processes. Another organization might document recommended processes but let engineers use their best judgement, relying on blameless postmortems to understand why people acted the way they did. Even if both of these organizations end up achieving the same amount of uptime, their cultures are very different.</p><p>Resilient culture doesn’t happen by accident. Without any goals or design processes, an organization’s culture will end up defined by those who have the loudest opinions or the most social capital. Organizations name, define, and document their values to try to prevent this, but—as illustrated above—defining values is only the first step. In order to ensure a specific cultural outcome, clear goals and a culture design process are needed.</p><p>Figuring out where to start can be challenging, and if your team or org has reached the point where it needs a significant cultural shift, it can feel like what needs to be overhauled is, well, everything. Start by looking for components of culture that can be directly manipulated, like designable surfaces. A designable surface is anything that can be changed in an attempt to reach a desired cultural outcome. Examples include career matrices and promotion processes, templates for procedures like incident response, custom ChatOps interactions, GitHub issue templates, and team structures. Multiple designable surfaces working together can have a significant impact on culture overall.</p><p>The culture design process should begin with establishing your organization’s definition of resilience, and setting and and understanding your team and company goals. For example, an SRE team’s charter might consist of three focus areas: infrastructure management, process ownership, and software development best practices.</p><p>The next step is to look at the areas where your goals or charter intersect with the resilience factors defined earlier. A structured way to approach this is to create a table with team goals on one axis and resilience factors on the other, filling out each of the intersections. You’ll want to answer two key questions for each intersection. The first is the goal state: What would a resilient organizational culture look like in this area? Your goal state doesn’t have to be picture-perfect—perfect, after all, can be the enemy of good—but rather one that everyone can agree is a significant improvement. The second is your current state: How do team members actually behave? Be as accurate as you can, especially if you find that actions differ from expectations.</p><p>Differences between how things are now and how you want them to be in a more resilient future should start to become apparent during this exercise. For example, resilience at the intersection of infrastructure ownership and organizational learning might require a set of clearly defined incident response and postmortem processes. If your team’s processes in these areas are inconsistent and undocumented, that’s an issue to address. The resilient intersection of software development best practices and communication could include code reviews and internal learning programs to share expertise between teams. Process ownership combined with slack could mean giving engineers time to work on side projects that reduce toil. There’s no one-size-fits-all solution. Don’t be afraid to brainstorm until you figure out what resilience looks like for you.</p><p>Once you’ve identified where you are and where you want to go, planning and prioritization can begin. If you’ve identified several necessary changes, using an impact effort matrix can help you figure out where to focus first. Each change should have a person or group who champions it, communicates its impetus and impact, and establishes a clear definition of success. This last point is why you need to first identify what resilience looks like: It’s easier to make lasting changes when you’re moving toward a positive goal rather than moving away from a negative state. And defining what constitutes “done” also makes it easier to share successes. That momentum, especially early in the culture change process, is critical to keeping plans on track.</p><p>Keep in mind that reaching a “done” state for an individual cultural change doesn’t mean you’re done working on resilience. This design process is a tool kit you can use to identify and respond to problems and challenges with timeliness and flexibility. Replacing one static culture with another might improve robustness, but it doesn’t lead to long-term resilience; enacting change to create a more dynamic culture, as part of an ongoing shift, allows your organization to respond to those unknown unknowns, both social and technical.</p><p>As your teams grow and change, so will your focuses and challenges. Going through the steps of defining and prioritizing resilience—and making these methods part of your regular organizational planning and life cycle processes—will enable you to build a growth-oriented culture that can keep learning, improving, and building resilience for years to come.</p></div></article></div><div class='u-Container ArticleFooter'><div class=column><div class='u-Grid ContentBody small content'><div class=authors id=authors><div><div class=photo><figure style='background-image:url(https://images.ctfassets.net/3njn2qm7rrbs/G6FgRCuGZjhAnbPSNMEAu/d308f88c1f70f281422e47c99f26eadc/Ryn_Daniels.jpeg?w=500)'></figure></div><div class=text><h4>About the author</h4><p><b>Ryn Daniels</b> is a site reliability engineer whose work focuses on infrastructure operability, sustainable on-call practices, and the design of effective and empathetic engineering cultures. They live in Berlin with a perfectly reasonable number of cats and currently work at HashiCorp on the Terraform Cloud team.</p><p><a href=https://twitter.com/rynchantress target=_blank>@rynchantress</a></p></div></div><div><div class=photo><figure style='background-image:url(https://images.ctfassets.net/3njn2qm7rrbs/oYUqqO3P0ZU0s0h0KO8gA/c58a1e261398e4b8d2621ffb826000fb/cover-2000-10020726.jpeg?w=500)'></figure></div><div class=text><h4>Artwork by</h4><p><b>Jon Stich</b></p><p><a href=https://www.jonstich.com/ target=_blank>jonstich.com</a></p></div></div></div><div class=topics><div class=text><h4>Topics</h4><p><a href=/topics/culture/ >Workplace &amp; Culture</a></p><p><a href=/topics/opinion/ >Essays &amp; Opinion</a></p></div></div></div></div></div></div><div class=SubscribeBox><a id=newsletter class=anchor href=#newsletter></a><div class='ContentBody inverted store'><div class=u-Container><div class='u-Grid column'><div class=box style=background:#4c70b1><div class=text><h2>Buy the print edition</h2><p class=j-TextBalance>Visit the Increment Store to purchase print issues.</p><p><a class='t-Caps u-Arrow' href=https://store.increment.com/ >Store</a></p></div><a href=https://store.increment.com/ class=magazine><figure class=j-MaskedImage data-fill=/art/19/19-cutout-1000-7ffb5dba.png data-mask=/art/19/fill-cms-1000-83522f38.png></figure></a></div></div></div></div><div class='ContentBody email'><div class=u-Container><div class='u-Grid column'><div class='j-EmailForm box' style='box-shadow:0 -5px 0 #4c70b1'></div></div></div></div></div><div class=ContinueReading><div class=u-Container><div class=column><h2 class='t-Caps xlarge'>Continue Reading</h2><ul class='u-Grid articles'><li class='ArticleBlock footer' style=color:#ef766e><a class=j-Preload href=/on-call/crafting-sustainable-on-call-rotations/ ><div class='IssueTitle tiny' style=color:#ef766e><div class='t-Caps meta'><span>1</span></div><h3 class='t-IssueTitle title'>On-Call</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Ryn Daniels</span></h4><h3 class='t-TitleSans title'>Crafting sustainable on-call rotations</h3></div><div class='t-BodySerif small intro'>Ryn Daniels shares strategies that everyone can use to build better, kinder, and more sustainable on-call rotations.</div></div></a></li><li class='ArticleBlock footer' style=color:#863051><a class=j-Preload href=/reliability/failure-is-okay/ ><div class='IssueTitle tiny' style=color:#863051><div class='t-Caps meta'><span>16</span></div><h3 class='t-IssueTitle title'>Reliability</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Heidi Waterhouse</span></h4><h3 class='t-TitleSans title'>Everything is broken, and it’s okay</h3></div><div class='t-BodySerif small intro'>Accepting that imperfect things still work is fundamental to preventing failures from becoming catastrophes.</div></div></a></li><li class='ArticleBlock footer' style=color:#863051><a class=j-Preload href=/reliability/technical-incident-command/ ><div class='IssueTitle tiny' style=color:#863051><div class='t-Caps meta'><span>16</span></div><h3 class='t-IssueTitle title'>Reliability</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Tanya Reilly</span></h4><h3 class='t-TitleSans title'>Embrace your inner incident commander</h3></div><div class='t-BodySerif small intro'>The way we fight fires affects how quickly we can resolve outages. Appointing an incident commander can help—and you (yes, you) can be&nbsp;one.</div></div></a></li><li class='ArticleBlock footer' style=color:#8e65bf><a class=j-Preload href=/teams/doing-a-little-bit-of-the-impossible/ ><div class='IssueTitle tiny' style=color:#8e65bf><div class='t-Caps meta'><span>11</span></div><h3 class='t-IssueTitle title'>Teams</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Anil Dash</span></h4><h3 class='t-TitleSans title'>Doing (a little bit of) the impossible</h3></div><div class='t-BodySerif small intro'>A commitment to trust, fairness, and inclusion is at the heart of a strong company—and healthy&nbsp;teams.</div></div></a></li><li class='ArticleBlock footer' style=color:#8e65bf><a class=j-Preload href=/teams/pay-fair/ ><div class='IssueTitle tiny' style=color:#8e65bf><div class='t-Caps meta'><span>11</span></div><h3 class='t-IssueTitle title'>Teams</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Lara Hogan</span></h4><h3 class='t-TitleSans title'>Pay fair</h3></div><div class='t-BodySerif small intro'>An introduction to correcting—and preventing—compensation&nbsp;inequity.</div></div></a></li><li class='ArticleBlock footer' style=color:#8e65bf><a class=j-Preload href=/teams/trust-the-process/ ><div class='IssueTitle tiny' style=color:#8e65bf><div class='t-Caps meta'><span>11</span></div><h3 class='t-IssueTitle title'>Teams</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Paul Ford</span></h4><h3 class='t-TitleSans title'>Trust the process</h3></div><div class='t-BodySerif small intro'>Though they run on a mixture of paper and lore, effective editorial organizations ship like clockwork. Can engineering teams learn from their enduring processes?</div></div></a></li><li class='ArticleBlock footer' style=color:#8e65bf><a class=j-Preload href=/teams/the-epistemology-of-software-quality/ ><div class='IssueTitle tiny' style=color:#8e65bf><div class='t-Caps meta'><span>11</span></div><h3 class='t-IssueTitle title'>Teams</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Hillel Wayne</span></h4><h3 class='t-TitleSans title'>The epistemology of software quality</h3></div><div class='t-BodySerif small intro'>Studies show that human factors most influence the quality of our work. So why do we put so much stake in technical solutions?</div></div></a></li><li class='ArticleBlock footer' style=color:#29386a><a class=j-Preload href=/remote/future-of-work-is-written/ ><div class='IssueTitle tiny' style=color:#29386a><div class='t-Caps meta'><span>15</span></div><h3 class='t-IssueTitle title'>Remote</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Juan Pablo Buriticá</span></h4><h3 class='t-TitleSans title'>The future of work is written</h3></div><div class='t-BodySerif small intro'>Exploring the opportunities of asynchronous communication and the (conscientiously) written&nbsp;word.</div></div></a></li><li class='ArticleBlock footer' style=color:#29386a><a class=j-Preload href=/remote/code-is-sourdough/ ><div class='IssueTitle tiny' style=color:#29386a><div class='t-Caps meta'><span>15</span></div><h3 class='t-IssueTitle title'>Remote</h3></div><div class=text><div class=head><h4 class='t-Byline byline'><span>Romello Goodman</span></h4><h3 class='t-TitleSans title'>Code is sourdough</h3></div><div class='t-BodySerif small intro'>For the author, going remote led to reflections on the similarities between codebases and sourdough&nbsp;starter.</div></div></a></li></ul><h3 class='t-Caps large'>Explore Topics</h3><ul class='t-BodySerif large topics'><li><a href=/topics/learn/ >Learn Something New</a></li><li><a href=/topics/scaling/ >Scaling &amp; Growth</a></li><li><a href=/topics/ask-an-expert/ >Ask an Expert</a></li><li><a href=/topics/interviews/ >Interviews &amp; Surveys</a></li><li><a href=/topics/guides/ >Guides &amp; Best Practices</a></li><li><a href=/topics/opinion/ >Essays &amp; Opinion</a></li><li><a href=/topics/culture/ >Workplace &amp; Culture</a></li></ul><h3 class='t-Caps large'>All Issues</h3><ul class=issues><li><a href=/planning/ ><div class='IssueTitle large' style=color:#4c70b1><div class='t-Caps meta'><span>Issue 19</span> <span>November 2021</span></div><h1 class='t-IssueTitle title'>Planning</h1></div></a></li><li><a href=/mobile/ ><div class='IssueTitle large' style=color:#439eab><div class='t-Caps meta'><span>Issue 18</span> <span>August 2021</span></div><h1 class='t-IssueTitle title'>Mobile</h1></div></a></li><li><a href=/containers/ ><div class='IssueTitle large' style=color:#443d79><div class='t-Caps meta'><span>Issue 17</span> <span>May 2021</span></div><h1 class='t-IssueTitle title'>Containers</h1></div></a></li><li><a href=/reliability/ ><div class='IssueTitle large' style=color:#863051><div class='t-Caps meta'><span>Issue 16</span> <span>February 2021</span></div><h1 class='t-IssueTitle title'>Reliability</h1></div></a></li><li><a href=/remote/ ><div class='IssueTitle large' style=color:#29386a><div class='t-Caps meta'><span>Issue 15</span> <span>November 2020</span></div><h1 class='t-IssueTitle title'>Remote</h1></div></a></li><li><a href=/apis/ ><div class='IssueTitle large' style=color:#00afbe><div class='t-Caps meta'><span>Issue 14</span> <span>August 2020</span></div><h1 class='t-IssueTitle title'>APIs</h1></div></a></li><li><a href=/frontend/ ><div class='IssueTitle large' style=color:#5ebe92><div class='t-Caps meta'><span>Issue 13</span> <span>May 2020</span></div><h1 class='t-IssueTitle title'>Frontend</h1></div></a></li><li><a href=/software-architecture/ ><div class='IssueTitle large' style=color:#40af9e><div class='t-Caps meta'><span>Issue 12</span> <span>February 2020</span></div><h1 class='t-IssueTitle title'>Software Architecture</h1></div></a></li><li><a href=/teams/ ><div class='IssueTitle large' style=color:#8e65bf><div class='t-Caps meta'><span>Issue 11</span> <span>November 2019</span></div><h1 class='t-IssueTitle title'>Teams</h1></div></a></li><li><a href=/testing/ ><div class='IssueTitle large' style=color:#e89e00><div class='t-Caps meta'><span>Issue 10</span> <span>August 2019</span></div><h1 class='t-IssueTitle title'>Testing</h1></div></a></li><li><a href=/open-source/ ><div class='IssueTitle large' style=color:#4a5ad3><div class='t-Caps meta'><span>Issue 9</span> <span>May 2019</span></div><h1 class='t-IssueTitle title'>Open Source</h1></div></a></li><li><a href=/internationalization/ ><div class='IssueTitle large' style=color:#c096ca><div class='t-Caps meta'><span>Issue 8</span> <span>February 2019</span></div><h1 class='t-IssueTitle title'>Internationalization</h1></div></a></li><li><a href=/security/ ><div class='IssueTitle large' style=color:#4dbac5><div class='t-Caps meta'><span>Issue 7</span> <span>October 2018</span></div><h1 class='t-IssueTitle title'>Security</h1></div></a></li><li><a href=/documentation/ ><div class='IssueTitle large' style=color:#f5684d><div class='t-Caps meta'><span>Issue 6</span> <span>August 2018</span></div><h1 class='t-IssueTitle title'>Documentation</h1></div></a></li><li><a href=/programming-languages/ ><div class='IssueTitle large' style=color:#d69336><div class='t-Caps meta'><span>Issue 5</span> <span>April 2018</span></div><h1 class='t-IssueTitle title'>Programming Languages</h1></div></a></li><li><a href=/energy-environment/ ><div class='IssueTitle large' style=color:#d6658e><div class='t-Caps meta'><span>Issue 4</span> <span>February 2018</span></div><h1 class='t-IssueTitle title'>Energy & Environment</h1></div></a></li><li><a href=/development/ ><div class='IssueTitle large' style=color:#53a88e><div class='t-Caps meta'><span>Issue 3</span> <span>October 2017</span></div><h1 class='t-IssueTitle title'>Development</h1></div></a></li><li><a href=/cloud/ ><div class='IssueTitle large' style=color:#707aed><div class='t-Caps meta'><span>Issue 2</span> <span>July 2017</span></div><h1 class='t-IssueTitle title'>Cloud</h1></div></a></li><li><a href=/on-call/ ><div class='IssueTitle large' style=color:#ef766e><div class='t-Caps meta'><span>Issue 1</span> <span>April 2017</span></div><h1 class='t-IssueTitle title'>On-Call</h1></div></a></li></ul></div></div></div><footer class=PageFooter><div class='u-Container ContentBody small'><svg style=display:none><symbol id=twitterIcon viewBox='0 0 32 32'><path d='M32.1 6c-1.2.5-2.5.9-3.8 1 1.4-.8 2.4-2.1 2.9-3.6-1.3.8-2.7 1.3-4.2 1.6a6.8 6.8 0 0 0-4.8-2c-3.6 0-6.6 3-6.6 6.6 0 .5.1 1 .2 1.5-5.5-.3-10.4-3-13.6-6.9-.6 1-.9 2.1-.9 3.3 0 2.3 1.2 4.3 2.9 5.5-1.1 0-2.1-.3-3-.8v.1c0 3.2 2.3 5.9 5.3 6.5-.6.2-1.1.2-1.7.2-.4 0-.8 0-1.2-.1.8 2.6 3.3 4.5 6.2 4.6-2.3 1.8-5.1 2.8-8.2 2.8-.5 0-1.1 0-1.6-.1C2.9 28 6.3 29 10 29c12.1 0 18.7-10 18.7-18.7v-.9c1.4-.9 2.5-2 3.4-3.4z' fill=currentColor /></symbol><symbol id=facebookIcon viewBox='0 0 32 32'><path d='M30.2 0H1.8C.8 0 0 .8 0 1.8v28.5c0 1 .8 1.8 1.8 1.8h15.3V19.6h-4.2v-4.8h4.2v-3.6c0-4.1 2.5-6.4 6.2-6.4 1.8 0 3.3.2 3.7.2v4.3h-2.6c-2 0-2.4 1-2.4 2.4v3.1h4.8l-.6 4.8H22V32h8.2c1 0 1.8-.8 1.8-1.8V1.8c0-1-.8-1.8-1.8-1.8z' fill=currentColor /></symbol><symbol id=rssIcon viewBox='0 0 32 32'><path d='M10.7 25.6c0 2.4-2 4.4-4.4 4.4S2 28 2 25.6s2-4.4 4.4-4.4 4.3 2 4.3 4.4zM6.1 2c-.6 0-1.3 0-2 .1-1.3.1-2.2 1.2-2.1 2.4.1 1.2 1.2 2.2 2.4 2.1.6 0 1.1-.1 1.6-.1 10.7 0 19.4 8.7 19.4 19.4 0 .5 0 1-.1 1.6-.1 1.2.8 2.3 2.1 2.4h.2c1.2 0 2.1-.9 2.2-2.1.1-.7.1-1.4.1-2C30 12.7 19.3 2 6.1 2zm-.7 9.6c-.4 0-.8 0-1.3.1-1.3.1-2.2 1.2-2.1 2.5.1 1.3 1.2 2.2 2.5 2.1h.9c5.7 0 10.4 4.7 10.4 10.4v.9c-.1 1.3.8 2.4 2.1 2.5h.2c1.2 0 2.2-.9 2.3-2.1 0-.4.1-.8.1-1.2-.1-8.4-6.9-15.2-15.1-15.2z' fill=currentColor /></symbol><symbol id=linkedInIcon viewBox='0 0 32 32'><path d='M29.6,0H2.4C1.1,0,0,1,0,2.3v27.4C0,31,1.1,32,2.4,32h27.3c1.3,0,2.4-1,2.4-2.3V2.3C32,1,30.9,0,29.6,0z M9.5,27.3H4.7V12 h4.8V27.3z M7.1,9.9c-1.5,0-2.8-1.2-2.8-2.8c0-1.5,1.2-2.8,2.8-2.8c1.5,0,2.8,1.2,2.8,2.8C9.9,8.7,8.6,9.9,7.1,9.9z M27.3,27.3 h-4.7v-7.4c0-1.8,0-4-2.5-4c-2.5,0-2.8,1.9-2.8,3.9v7.6h-4.7V12H17v2.1h0.1c0.6-1.2,2.2-2.5,4.5-2.5c4.8,0,5.7,3.2,5.7,7.3V27.3z' fill=currentColor /></symbol></svg><div class='column main'><section class=social><a href=https://twitter.com/incrementmag class=twitter><svg viewBox='0 0 32 32'><use xlink:href=#twitterIcon x=0 y=0></use></svg> <span>@incrementmag</span> </a><a href=https://facebook.com/incrementmag class=facebook><svg viewBox='0 0 32 32'><use xlink:href=#facebookIcon x=0 y=0></use></svg> <span>incrementmag</span> </a><a href=/feed.xml class=rss><svg viewBox='0 0 32 32'><use xlink:href=#rssIcon x=0 y=0></use></svg> <span>RSS Feed</span></a></section><section><h4>About</h4><p><em>Increment</em> is a print and digital magazine about how teams build and operate software systems at scale. <a href=/about/ >Learn more</a></p></section><section><h4>Work with us</h4><p>Interested in joining the team at Stripe? <a href=https://stripe.com/jobs>View job openings</a></p></section></div><p class='column copyright'><span>&copy; 2022 <em>Increment</em></span> <a href=https://stripe.com>Published by Stripe</a> <a href=https://stripe.com/privacy/media-policy>Privacy policy</a></p></div></footer></body></html>