<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Engineering Strategy: 🤔 Strategy Examples]]></title><description><![CDATA[Engineering Strategy Examples]]></description><link>https://learnings.aleixmorgadas.dev/s/strategy-examples</link><image><url>https://substackcdn.com/image/fetch/$s_!Jclx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b983592-e8a9-4295-8dbb-61e4de81a493_1280x1280.png</url><title>Engineering Strategy: 🤔 Strategy Examples</title><link>https://learnings.aleixmorgadas.dev/s/strategy-examples</link></image><generator>Substack</generator><lastBuildDate>Tue, 21 Apr 2026 01:29:19 GMT</lastBuildDate><atom:link href="https://learnings.aleixmorgadas.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Aleix Morgadas]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[aleixmorgadas@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[aleixmorgadas@substack.com]]></itunes:email><itunes:name><![CDATA[Aleix Morgadas]]></itunes:name></itunes:owner><itunes:author><![CDATA[Aleix Morgadas]]></itunes:author><googleplay:owner><![CDATA[aleixmorgadas@substack.com]]></googleplay:owner><googleplay:email><![CDATA[aleixmorgadas@substack.com]]></googleplay:email><googleplay:author><![CDATA[Aleix Morgadas]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[When a supportive subdomain requires heavy investing]]></title><description><![CDATA[An example of a chat in a two-sided marketplace product]]></description><link>https://learnings.aleixmorgadas.dev/p/when-a-supportive-subdomain-requires</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/when-a-supportive-subdomain-requires</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Mon, 18 Aug 2025 07:48:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c6d5ae0c-090c-4084-b861-25313f428823_1800x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Two-sided marketplaces have a challenge:</p><div class="pullquote"><p><em><strong>How to provide enough value that leaving the platform isn&#8217;t an option</strong></em></p></div><p>We have a lot of marketplaces that have to balance the offer with the supply, while creating an added value for either or both sides to ensure people use the platform.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Engineering Strategy is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mZYP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mZYP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 424w, https://substackcdn.com/image/fetch/$s_!mZYP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 848w, https://substackcdn.com/image/fetch/$s_!mZYP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 1272w, https://substackcdn.com/image/fetch/$s_!mZYP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mZYP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png" width="1456" height="568" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:568,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119137,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learnings.aleixmorgadas.dev/i/171112548?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mZYP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 424w, https://substackcdn.com/image/fetch/$s_!mZYP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 848w, https://substackcdn.com/image/fetch/$s_!mZYP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 1272w, https://substackcdn.com/image/fetch/$s_!mZYP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6f5a5-89bc-4ffe-9d5a-334516ffba7f_1865x728.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here is a list of common marketplaces you might be used:</p><ul><li><p>Airbnb: Short-and-long-term homestays marketplace</p></li><li><p>Fiveer: Freelance marketplace</p></li><li><p>Amazon: Third party sellers can use Amazon as a platform to sell their products</p></li><li><p>Uber: Drivers provide rides to passengers.</p></li><li><p>JustEat: Restaurants deliver food to consumers</p></li><li><p>LetGo/Wallapop:  List and discover second-hand items near you.</p></li></ul><p>And a lot of them have a common business capability, <strong>the chat</strong>.</p><blockquote><p>Chat: Business capability facilitate the communication between both users to ensure they don&#8217;t leave the platform.</p></blockquote><p>Churn is always a problem when people leave the platform and start a direct relationship, and more when the CAC is higher than the LTV for a single transaction within the platform. When you need recurrence, which it is almost always nowadays.</p><p>So, the chat has become a critical capability as the whole product experience to ensure we keep the users within the platform, and not bypass it.</p><h1>The chat: Core or supportive capability?</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N3V0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N3V0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 424w, https://substackcdn.com/image/fetch/$s_!N3V0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 848w, https://substackcdn.com/image/fetch/$s_!N3V0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 1272w, https://substackcdn.com/image/fetch/$s_!N3V0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N3V0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png" width="1456" height="1218" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1218,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:274994,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learnings.aleixmorgadas.dev/i/171112548?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N3V0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 424w, https://substackcdn.com/image/fetch/$s_!N3V0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 848w, https://substackcdn.com/image/fetch/$s_!N3V0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 1272w, https://substackcdn.com/image/fetch/$s_!N3V0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F494789be-da74-4b2e-a049-0f5ca05d985d_2099x1756.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://github.com/ddd-crew/core-domain-charts">Core Domain Chart</a></figcaption></figure></div><p>The chat capability isn&#8217;t a business differentiator anymore.</p><p>It lives within the supportive, and still quite tailored to the business domain that using a generic off-the-shelf solution might not be an option.</p><p>But the chat capability have a huge rival. WhatsApp.</p><p>The constant upgrades on features on WhatsApp, like reactions, reading status, last time read, multimedia messages, stickers, the real time capabilities &#8230; All those features that people are used to, you don&#8217;t have the scale of Meta to invest on them. But you are expected to move into that direction (<a href="https://medium.com/@mcraddock/the-red-queens-race-wardley-mapping-for-competitive-advantage-in-a-relentlessly-evolving-world-0d5a16da58a5">Red Queen effect</a> on Wardley Maps).</p><p>So, you are in a though spot:</p><ul><li><p>Should we use an off-the-shelf solution that costs a lot of money that doesn&#8217;t adapt enough to our user needs?</p></li><li><p>Should we invest into a custom solution, acknowledging that we will have to keep investing as the messaging apps keep evolving?</p></li><li><p>Is &#8220;not developing a chat&#8221; an option? People will bypass our platform anyway.</p></li></ul><h2>Wardley Mapping a Chat</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aj3q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aj3q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 424w, https://substackcdn.com/image/fetch/$s_!aj3q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 848w, https://substackcdn.com/image/fetch/$s_!aj3q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 1272w, https://substackcdn.com/image/fetch/$s_!aj3q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aj3q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png" width="1456" height="753" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:753,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:987131,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learnings.aleixmorgadas.dev/i/171112548?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aj3q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 424w, https://substackcdn.com/image/fetch/$s_!aj3q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 848w, https://substackcdn.com/image/fetch/$s_!aj3q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 1272w, https://substackcdn.com/image/fetch/$s_!aj3q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070e4bc3-f251-48a0-a895-abc5835588f3_2736x1415.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Based on how I understand the landscape, visualized using a Wardley Map and a Core Domain Chart, suggests to us that custom-building it isn&#8217;t a good strategic decision.</p><p>Either relying on existing tools, or adopting an off-the-shelf solution, looks like the right decision to make.</p><p>Yet, the devil is in the details.</p><p>Any B2C marketplace has million of conversations and messages per month. And based on the current pricing models, it can cost millions per month to outsource this to a third party.</p><p>So, we have a business capability that&#8217;s cost of doing business, it is not a business differentiator, and we are in macroeconomic that makes it tougher to compete on margins that are shrinking.</p><p>It is valid to ask:</p><blockquote><p><em>AI is accelerating development, we can do more with less, our competition is doing it, shouldn&#8217;t we internalize this, and save us the cost of this external tool?</em></p></blockquote><h2>Let&#8217;s assume we decide to build-it in house</h2><p>Building an in-house copy of WhatsApp isn&#8217;t viable nor realistic. You won&#8217;t have the same requirements as WhatsApp in terms of million of concurrent users, for example.</p><p>But there is something that we can use in our advantage when we need to build internally a commodity. It is a well known domain:</p><ul><li><p>Certainty: Commonly understood (in terms of use)</p></li><li><p>Market: Mature market</p></li><li><p>Market perception: Ordered / trivial</p></li><li><p>User perception: Standard / expected</p></li><li><p>Understanding: Believed to be well-defined / stable / measurable</p></li></ul><p>On the other side, those properties make this domain to have higher expectations of usage.</p><p>So, in this case we aren&#8217;t experimenting, and aiming to reduce the cost of learning. We are developing a well understood domain. So, we need to focus on a methodology like 6-sixma or Lean to develop this business capability.</p><p>We can &#8220;know&#8221; how much it will cost us, and often it is a lot.</p><h2>How do we build it?</h2><p>We know the chat capability has specific business needs, but we also have a tech stack, and people skilled with certain tools, and methodologies.</p><p>So, how do we develop the chat?</p><ul><li><p>Using existing tech like Ruby on Rails and Postgres, or we opt for a known technology to work for chat-like systems like Elixir?</p></li><li><p>Do we invest in new talent to develop this system? Do we train existing talent, and take advantage of AI? Do we leverage existing tech stack instead?</p></li></ul><p>All decisions are about trade-offs.</p><p>And on those decisions, we need to add the domain specific knowledge we have about our users behaviors.</p><p>For example, in a B2C about selling second-hand items near you. You can have million of messages per month, but you also know that:</p><ul><li><p>Conversations aren&#8217;t long, and they have a short duration.</p></li><li><p>Conversations are co-located. A person in Spain won&#8217;t be talking to a person in South Korea to sell a second-hand item.</p></li></ul><p>Understanding this domain specific behaviors, we can shape our custom-build solution more tailored to our needs without reaching the level of WhatsApp for example.</p><h1>My decision-making path</h1><p>and how AI influenced how I would run experiments to verify the most viable solution.</p><ol><li><p>I would externalize as much as possible. There are a lot of hidden costs on internalizing commodities and products beyond the invoice and the end of the month.</p></li><li><p>In case I need to custom-build it. I would:</p><ol><li><p>Do a deeper research of viability using industry known approach.</p></li><li><p>In case it is needed and viable to be on specific tech, like Elixir in the chat example, I would experiment with this approach to fully understand the consequences. And I mean also in production.</p></li><li><p>Otherwise, I would default to current tech stack, and do our best to fulfill customer needs.</p><ol><li><p>This will help us to leverage existing talent and keep the tech stack as homogeneous as possible in case it is important for the company.</p></li></ol></li></ol></li></ol><h2>Why AI is changing this decision-making process?</h2><p>Because AI is trained on known data, known products, and everything that&#8217;s already present in the web. And generic and supportive subdomains, products and commodities fulfill these criteria.</p><p>AI can help us a lot on what&#8217;s not a business differentiator but cost of doing business. The LLMs can help us to extract those decisions made in the past that are relevant for our use case.</p><p>But this will also have consequences:</p><ul><li><p>Using LLMs will be about the past, not the present, nor the future. We will also be behind of the rest if we only rely on the LLMs.</p></li><li><p>Custom-building has a lot of hidden costs, a lot of them aren&#8217;t public, therefore LLMs cannot help us to anticipate those.</p></li><li><p>We might end up in a sunk-cost fallacy, where we keep investing instead of decide to go for an off-the-shelf solution.</p></li></ul><p>So, for one side, I consider that LLMs might be opening a space where more big companies will internalize those generic external services to reduce external cost. At the same time, this will start to increase all the hidden work to support those services.</p><h1>Why internalizing everything isn&#8217;t viable</h1><p>I provided this example for the chat, but you might consider applying the same decision to all third party services. That survey tool, that analytics tool, the CRM, &#8230;</p><p>And the truth is, those domains are huge, and I don&#8217;t consider reasonable to expect that a LLMs will be able to:</p><ol><li><p>Understand all the domain specific knowledge required.</p></li><li><p>Support you maintaining the systems.</p></li><li><p>Support you on those edge cases, and industry changes that will force you to keep investing on those systems.</p></li></ol><p>So, why do I consider a chat to be in the messy middle of the decision process to consider custom-building it?</p><p>Because, even though, from a capability point of view, I do consider it is a supportive one. In terms of the long term product strategy, you aim to reduce people moving to an external provider, and that&#8217;s why, in this case, it can make sense to make it internally, with all the consequences.</p><p>You might be investing millions, but you also can reduce the churn and increase the LTV enough that it makes sense. Remember that B2C are economies of scale, and at scale, the numbers can work.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Engineering Strategy is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Mobile onboarding evolution at Flo Health - Engineering Strategy]]></title><description><![CDATA[Open Engineering Strategy]]></description><link>https://learnings.aleixmorgadas.dev/p/mobile-onboarding-evolution-at-flo</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/mobile-onboarding-evolution-at-flo</guid><dc:creator><![CDATA[Eugene Sergueev]]></dc:creator><pubDate>Thu, 05 Jun 2025 06:01:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c4cedd9a-7eac-4daf-8622-7a99e24aebf2_900x628.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Introducing myself</h1><p>Hi, I&#8217;m <a href="https://www.linkedin.com/in/esergueev/">Eugene</a>, Director of Engineering at <a href="https://flo.health/">Flo Health</a>. Today, I want to share how we evolved our onboarding experience from a rigid, release-bound flow into a dynamic, server-driven platform that now powers rapid experimentation across mobile and web. This is a story about breaking Conway&#8217;s Law, building internal platforms with product thinking, and enabling teams to move fast&#8212;without breaking things.</p><h1>Introducing the company</h1><p>Before diving deep into details, I want to give you an overview of Flo&#8217;s domain, scale, and challenges. This information can help you understand why our onboarding is so complex and diverse.</p><p>Flo is a super app with various user segments: cycle tracking, getting pregnant, pregnancy tracking, sex life, socializing in secret chats, and many more. Moreover, we recently launched a Flo for Partners feature with 1+ million MAU in 2024, meaning we are no longer only a female health app.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lUjM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lUjM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!lUjM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!lUjM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!lUjM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lUjM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png" width="1400" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lUjM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!lUjM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!lUjM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!lUjM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb88fa0ca-5512-46ea-a0f2-31928ce04916_1400x787.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>What was the high-stakes problem?</h1><p>At Flo, onboarding isn't just a product feature - it&#8217;s a critical growth lever. As a product-led growth (PLG) company, our ability to convert new users into active, engaged members within their first few minutes in the app directly influences our retention, revenue, and impact.</p><p>Initially, we approached onboarding as a set of hardcoded screens - a simple solution that sufficed for a time. But as our ambitions grew, so did the complexity of our onboarding journeys and the urgency to iterate on them quickly. To scale experimentation, we introduced a domain-specific language (DSL) that allowed onboarding flows to be described more flexibly. However, this DSL was still embedded in the app codebase, locking every onboarding change to the mobile release cycle.</p><p>This created a high-stakes bottleneck.</p><ul><li><p><strong>Every experiment or fix was gated by a mobile release</strong>, making it impossible to react in real time to user behavior or localization issues.</p></li><li><p><strong>Errors took days to detect and fix</strong>, delaying learnings and negatively impacting conversion metrics.</p></li><li><p><strong>The complex onboarding created</strong> a cognitive and operational burden on engineers, PMs, and QA to maintain.</p></li><li><p><strong>Mobile engineers were disengaged</strong>, spending time updating massive DSL configs instead of solving high-impact user problems.</p></li></ul><p>In short, the very process designed to accelerate onboarding innovation became the blocker. And in a PLG company, slow onboarding iteration is not just a developer inconvenience - it&#8217;s a growth risk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jk5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jk5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!jk5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!jk5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!jk5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jk5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png" width="1400" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jk5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!jk5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!jk5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!jk5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f6da4d7-0931-4189-b778-64dc292c7d6c_1400x787.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Engineering Strategy</h1><p>As a business it was critical for Flo to grow onboarding revenue and incite higher engagement from our users. So to address the growing complexity, slow iteration cycles, and developer pain points in our onboarding system, we defined a strategy focused on decoupling onboarding logic from mobile releases and empowering product teams to move faster. Inspired by existing server-driven UI patterns used in multiple parts of the app, we began migrating onboarding flows to a server-driven model. This shift enables real-time updates, safer experimentation, and faster hypothesis validation - without waiting for a mobile release. As a second step, we introduced a visual editor, allowing non-technical stakeholders to create, manage, and test onboarding flows autonomously, further reducing engineering overhead and accelerating iteration.</p><h2>Analysis</h2><h3><strong>What Works Well in the Flow</strong></h3><ol><li><p><strong>Established DSL &amp; Contracts<br></strong>We already have a robust domain-specific language and clear contracts for rendering key onboarding screens, providing a solid foundation for further abstraction.</p></li><li><p><strong><a href="https://medium.com/flo-health/backend-driven-ui-at-flo-health-3b38ae8534b0">Backend-driven UI<br></a></strong>Our Backend-Driven UI system is mature enough to describe screen layouts and deliver UI configs via the server, reducing the need for mobile releases.</p></li><li><p><strong>Cross-Platform Consistency<br></strong>The DSL allows us to maintain consistent onboarding logic across iOS, Android, Web, reducing platform-specific divergence.</p></li><li><p><strong>Experimentation Culture is Strong<br></strong>The product team is hungry for faster iteration and has a clear sense of the right hypotheses to test - demand for rapid change is high and well-structured.</p></li></ol><h3><strong>What Blocks the Current Flow</strong></h3><ol><li><p><strong>Slow Mobile Release Cadence<br></strong>Mobile releases are on a two-week cycle, delaying onboarding experiments, fixes, and urgent updates (e.g., localization or attribution errors).</p></li><li><p><strong>Error Feedback Loop is Too Long<br></strong>It often takes more than 24 hours to detect misconfigurations in experiments due to non-real-time analytics and delayed rollout visibility.</p></li><li><p><strong>Engineering Time Spent on Config Work<br></strong>Mobile engineers are blocked doing low-leverage work like editing large onboarding JSON configs, which reduces team engagement and velocity.</p></li><li><p><strong>Mobile-Only Team Structure (Conway&#8217;s Law)<br></strong>A team composed entirely of mobile engineers naturally gravitates toward mobile-driven solutions, limiting exploration of server-driven or cross-platform strategies.</p></li><li><p><strong>Lack of Visual Flow Management<br></strong>Product managers and QA rely on Miro boards and ad hoc tools to track flow logic. There&#8217;s no unified source of truth or editor to visualize and modify onboarding journeys safely.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lC2w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lC2w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!lC2w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!lC2w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!lC2w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lC2w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png" width="1456" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lC2w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!lC2w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!lC2w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!lC2w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b8db195-a92a-44c2-8c9d-d5a1d23c5f24_1600x859.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Direction</h2><h3><strong>Things We Want to Do</strong></h3><ol><li><p><strong>Apply the Conway Maneuver: Add Backend Engineers<br></strong>To break out of mobile-centric thinking and enable backend-driven solutions, we expanded the team to include backend engineers. This shift allowed us to rethink onboarding as a distributed, server-powered capability&#8212;not just a mobile UI flow&#8212;and enabled quick validation of this new architectural approach.</p></li><li><p><strong>Use Download-at-Once Strategy for Config Delivery<br></strong>Following the Lean methodology, we selected the simplest and fastest approach: downloading the entire onboarding JSON (up to 300KB gzipped) at app start. In the first iteration, our backend service was a lightweight wrapper serving configs directly from Git. As a fallback, we include an embedded version of the main onboarding flow (without experiments) in the app bundle during each mobile release. This setup balances speed, reliability, and offline coverage.</p></li><li><p><strong>Launch via Controlled Experiments<br></strong>We introduced server-driven onboarding behind a feature flag, starting with Android EN users and gradually expanding exposure (5% &#8594; 100%). We defined success not as improvement but as <em>no statistically significant negative change</em> across key business and technical metrics&#8212;signaling a safe infrastructure shift.</p></li><li><p><strong>Enable Safe, Validated Server Releases<br></strong>Our backend performs structural validation of onboarding flows before serving them to clients. It checks for graph consistency, unreachable nodes, duplicate transitions, and cycles. Invalid configurations are blocked from release, ensuring high confidence in every server-side deployment.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j9IY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j9IY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!j9IY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!j9IY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!j9IY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j9IY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png" width="1400" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j9IY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!j9IY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!j9IY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!j9IY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b1b8b4b-7d9d-489e-b98e-bdcd632c3958_1400x787.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Things We Discarded or Don&#8217;t Want to Do</strong></h3><ol><li><p><strong>Introduce a New Team Prematurely<br></strong>We intentionally avoided creating a new team or scaling the org structure before validating the value of server-driven onboarding. Instead, we applied a lean approach&#8212;testing the hypothesis with minimal changes and leveraging existing team members to deliver the proof of concept.</p></li><li><p><strong>Build a Visual UI or Complex Backend Logic Early<br></strong>For the initial phase, we decided against building a visual editor or adding complex backend authoring tools. It was acceptable that all onboarding configurations would be written by engineers using the existing DSL. This kept the scope tight and allowed us to move quickly while focusing on validating the core approach</p></li></ol><h2>Coherent Actions</h2><p>After the successful proof of concept, it became clear that backend-driven onboarding was technically feasible and brought tangible business benefits&#8212;faster iteration cycles, more robust experimentation, and reduced engineering overhead on repetitive tasks.</p><p>Rather than treating onboarding as a standalone system, we chose to take a deeper, more strategic step: we established the <strong>Survey Engine</strong> as a dedicated <strong>platform team</strong>. Onboarding became just one of many internal customers of this platform. This shift allowed us to generalize the infrastructure and scale its impact across multiple user-facing surfaces like in-app quizzes, polls, and dynamic content.</p><p>Key coherent actions we took:</p><ul><li><p><strong>Established Survey Engine as a Platform Team<br></strong>The team&#8217;s mission expanded beyond onboarding. It now owns core capabilities such as configuration delivery, runtime rendering contracts, and safe rollout mechanisms- serving multiple product teams across the org.</p></li><li><p><strong>Provided Visual Tooling for Configuration Management<br></strong>The team built internal tools enabling product managers and content teams to visually create and manage onboarding flows, significantly reducing the need for engineering involvement in day-to-day experiments.</p></li><li><p><strong>Integrated Existing Capabilities into a Unified System</strong></p><ul><li><p><strong>CMS Integration</strong>: Enabled safe release and publishing of onboarding content.</p></li><li><p><strong>Experiment Service Integration</strong>: Allowed dynamic branching and targeted delivery of flows through experimentation.</p></li><li><p><strong>Localization via translation management system (TMS)</strong>: Made all experiments fully translatable from Day 1, eliminating a common delay in onboarding launches.</p></li></ul></li><li><p><strong>Introduced a New Role: Content Operations<br></strong>To streamline the workflow, we introduced a <strong>Content Operations</strong> role. This person acts as a bridge between product, design, and analytics - taking ownership of flow configuration, copy updates, and experiment setup.</p></li><li><p><strong>Redefined the Role of Engineers<br></strong>Engineers are now focused solely on developing new capabilities (e.g., new component types, data logic, validation rules), not maintaining onboarding flows. This shift both reduced cognitive load and increased engineering team engagement.</p></li></ul><p>Together, these actions established onboarding as a high-leverage, product-led capability- no longer a bottleneck, but a dynamic and adaptable system aligned with Flo&#8217;s experimentation culture.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uuy0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uuy0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!uuy0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!uuy0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!uuy0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uuy0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png" width="1400" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uuy0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 424w, https://substackcdn.com/image/fetch/$s_!uuy0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 848w, https://substackcdn.com/image/fetch/$s_!uuy0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 1272w, https://substackcdn.com/image/fetch/$s_!uuy0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc9696a-5404-47c8-9397-49ab279caec8_1400x787.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nyt0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nyt0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 424w, https://substackcdn.com/image/fetch/$s_!nyt0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 848w, https://substackcdn.com/image/fetch/$s_!nyt0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 1272w, https://substackcdn.com/image/fetch/$s_!nyt0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nyt0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png" width="1134" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7bec657-da49-47f8-939d-a9de8749beae_1134x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1134,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nyt0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 424w, https://substackcdn.com/image/fetch/$s_!nyt0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 848w, https://substackcdn.com/image/fetch/$s_!nyt0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 1272w, https://substackcdn.com/image/fetch/$s_!nyt0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bec657-da49-47f8-939d-a9de8749beae_1134x620.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong>Outcomes, Learnings &amp; Next Steps</strong></h1><p>The migration to the Survey Engine platform delivered clear, measurable impact:</p><ul><li><p><strong>Significant Uplift in ARPU and Subscription Conversion<br></strong>The shift to rapid, low-cost experimentation drove substantial business impact: average revenue per user (ARPU) increased by <strong>13.5%</strong>, and the conversion rate to subscription during onboarding rose by <strong>20%</strong>. These are critical metrics for PLG companies, highlighting the direct connection between experimentation velocity and monetization outcomes.</p></li><li><p><strong>Experiment Velocity Increased by 170%<br></strong>After moving onboarding to Survey Engine, we now launch an average of ~<strong>30 experiments per month</strong>. This made onboarding one of the most iterative and data-informed parts of the user journey.</p></li><li><p><strong>87% of Experiments Launch Without Engineering Involvement<br></strong>By enabling visual tooling and empowering product teams, <strong>87% of onboarding experiments are now launched without engineers</strong>, dramatically reducing the cost of iteration and freeing up engineering focus for core platform work.</p></li><li><p><strong>Cultural Shift in Product Thinking<br></strong>Product managers increasingly validate hypotheses directly with real users rather than relying solely on upfront user research. While user research remains valuable, the lower cost of experimentation has shifted the balance toward more hands-on testing in real contexts.</p></li><li><p><strong>Survey Engine Gained Broad Adoption Across the Org<br></strong>Thinking globally from the start&#8212;and building a platform rather than an onboarding-specific solution&#8212;allowed us to onboard <strong>~20 internal customers</strong>. Several teams have decommissioned legacy tools or stopped using third-party vendors, consolidating efforts around a shared, robust infrastructure.</p></li><li><p><strong>Unified Web and Mobile Onboarding Experience<br></strong>Completing the migration of <strong>web onboarding</strong> to Survey Engine enabled the merger of mobile and web onboarding teams. Product managers now focus not on individual platforms but on delivering a <strong>cohesive, cross-platform user journey</strong>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pfXf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pfXf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 424w, https://substackcdn.com/image/fetch/$s_!pfXf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 848w, https://substackcdn.com/image/fetch/$s_!pfXf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 1272w, https://substackcdn.com/image/fetch/$s_!pfXf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pfXf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png" width="1456" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pfXf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 424w, https://substackcdn.com/image/fetch/$s_!pfXf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 848w, https://substackcdn.com/image/fetch/$s_!pfXf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 1272w, https://substackcdn.com/image/fetch/$s_!pfXf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe61f3097-e881-4910-be3a-a15e40094bb6_1600x879.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Next Steps</strong></h2><ul><li><p><strong>Integrate AI as a Copilot for Content Creation<br></strong>To further accelerate time from idea to release, we are embedding <strong>AI capabilities into Survey Engine</strong> as a creative and operational copilot. This includes assisting with content generation, validation, and layout suggestions&#8212;especially important in sensitive domains where <strong>medical and legal credibility</strong> are paramount.</p></li><li><p><strong>Speed Up Experiment Delivery with AI-Powered Workflows<br></strong>We&#8217;ve already seen early success: in a recent use case, researchers fully created and launched a survey using just a <strong>PRD and prompt</strong> within Survey Engine&#8212;no engineer and designers' involvement required. This demonstrated the potential for AI to radically simplify and speed up the path from concept to live experiment.</p></li><li><p><strong>Content Safe and Credible Automation<br></strong>As AI takes on more of the content lifecycle, we&#8217;ll implement guardrails for <strong>automated validation</strong>&#8212;checking for medical accuracy, localization quality, and compliance with internal and external standards.</p></li></ul><h1><strong>Further Reading &amp; Technical Deep Dives</strong></h1><p>This post focused on the strategic and organizational aspects of our onboarding evolution at Flo Health. For readers interested in the technical implementation details, architectural decisions, and deeper engineering insights, we've published a comprehensive series that covers the full journey:</p><ul><li><p><strong><a href="https://medium.com/flo-health/mobile-onboarding-evolution-part-1-cfc9702835ce">Mobile Onboarding Evolution - Part 1: The Technical Foundation</a></strong> Dive deep into the technical architecture that enabled our server-driven onboarding platform.</p></li><li><p><strong><a href="https://medium.com/flo-health/mobile-onboarding-evolution-part-2-d7c324c348fe">Mobile Onboarding Evolution - Part 2: Migration &amp; Scaling</a></strong> Explore the practical challenges of migrating from client-side to server-driven flows at scale.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[A team grouping (tribe) with local optimization thinking. Making sense of complex socio-technical system]]></title><description><![CDATA[Fintech Engineering Strategy. Post VII]]></description><link>https://learnings.aleixmorgadas.dev/p/a-team-grouping-with-local-thinking</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/a-team-grouping-with-local-thinking</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Wed, 21 Feb 2024 07:04:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.</em></p><div><hr></div><p>Fintech Engineering Strategy Post Series</p><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team">Post I. A legacy, a deadline, and no team.</a></p></li></ul><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow">Post III. Merging two teams for fast flow.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture">Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow">Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics. Part I</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system">Post VI. Reducing the chaos before addressing the complex socio-technical system</a></p></li><li><p>Post VII. A team grouping (tribe) with local optimization thinking. Making sense of complex socio-technical system. [This post]</p></li></ul><div><hr></div><p>If you didn&#8217;t read the previous posts yet, I suggest you to because it is a continuation and I assume you have all the context. Check it here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;db691891-3a69-4f2f-b304-eebadfa4294e&quot;,&quot;caption&quot;:&quot;The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Reducing the chaos before addressing the complex socio-technical system&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Everything about Engineering Strategy and Leadership. I enjoy sharing my experiences.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-02-14T07:10:05.978Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:141452937,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>Moving into the next big thing, how did we end up in this situation in the first place?</h2><p>Then, it was time to tackle the next big thing. The tribe.</p><p>What&#8217;s happening at a tribe level that our socio-technical systems is that fragile? Which dynamics do we have that causes this situation over and over again?</p><p>It looked like the there was <strong>no root cause</strong>, but a set of things that were interrelated that caused the system to behave the way it was doing it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WIeR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WIeR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 424w, https://substackcdn.com/image/fetch/$s_!WIeR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 848w, https://substackcdn.com/image/fetch/$s_!WIeR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 1272w, https://substackcdn.com/image/fetch/$s_!WIeR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WIeR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png" width="1243" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1243,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:494749,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WIeR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 424w, https://substackcdn.com/image/fetch/$s_!WIeR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 848w, https://substackcdn.com/image/fetch/$s_!WIeR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 1272w, https://substackcdn.com/image/fetch/$s_!WIeR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0434cc89-dad5-4125-837b-8b8a51e62554_1243x870.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>How did we start tackling the complexity? How did we find some signals to tell us what was goining on? Well, it was a mix of things.</p><p>I considered that focusing on the social interactions, responsibilities, and employee experience could give us some good insights.</p><p>I&#8217;m gonna explain here how we combined Team Topologies, Context Mapping, Team Cognitive Load, Core-Domain Chart, and Wardley Mapping to uncover where to do a set of micro interventions to the socio-technical system.</p><p>As an outcome of the workshops we did, we came up with this way of describing the architecture that shown business purpose inspired on DDD Subdomain types.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5eede2b3-2ef3-4b15-88af-3b03ab1f5d15&quot;,&quot;caption&quot;:&quot;I have been analyzing and doing architecture diagrams since the very beginning of my career. Most of them focused on the technologies being used and how they communicate with each other. Few of them share the business purpose.Thanks for reading Aleix's Learnings! Subscribe for free to receive new posts and support my work.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;An architecture diagram that shows business purpose&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2022-12-06T11:16:49.903Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/h_600,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1930c9e7-01d3-45a9-960e-d351406ab155_4043x1783.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/an-architecture-diagram-that-shows&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:88945170,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:7,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>So, let&#8217;s start with the engineering strategy that I&#8217;m so proud of that I was able to do with a very talented people. It contains:</p><ul><li><p>A great implementation of a <a href="https://www.youtube.com/watch?v=xlikZ3_NNgw&amp;t=50s">Platform as a Product</a> approach based on Team Topologies.</p></li><li><p>How we <strong>measured Team Cognitive Load</strong> to bring focus and direction.</p></li><li><p>Investing in moving non-competitive services to supporting subdomains.</p></li><li><p>How a set leadership decisions created success for some teams but created a huge inertia on others to adopt the new approach.</p></li></ul><h1>Engineering Strategy</h1><h2>Purpose</h2><p>We weren&#8217;t able to have a sustainable flow of change. Every now and then we had some kind of a crisis that required that kind of <em>hero culture</em> to fix the stuff.</p><p>We weren&#8217;t a reliable tribe. Even though at team level we improved.</p><p>Our goal was to make the tribe reliable/resilient and create sustainable flow of change to support the different business initiatives.</p><p>We were able to put into production one product of three. So, how do we accomplish:</p><ol><li><p>Keep improving Product B based on customer feedback and needs. </p></li><li><p>Release Product A and C.</p></li></ol><h2>Context</h2><p>As a tribe, we were much exposed to external changes (either higher leadership, other tribe needs, competition moves, or just regulatory changes) that required fast interventions, which usually implied a leadership top-down decision.</p><p>Interestingly, I found that even though some teams might be performing at a maturer level, it doesn&#8217;t translate directly into a tribe being more mature.</p><p>We didn&#8217;t have a predictable roadmap, and we were much jumping on what product/business/sales/leadership said it was more important that week.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZaR1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZaR1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 424w, https://substackcdn.com/image/fetch/$s_!ZaR1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 848w, https://substackcdn.com/image/fetch/$s_!ZaR1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 1272w, https://substackcdn.com/image/fetch/$s_!ZaR1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZaR1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1289510,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ZaR1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 424w, https://substackcdn.com/image/fetch/$s_!ZaR1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 848w, https://substackcdn.com/image/fetch/$s_!ZaR1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 1272w, https://substackcdn.com/image/fetch/$s_!ZaR1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66f169ea-d309-48d1-9671-bc0a753f2ca8_1920x1108.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As middle-leadership team at tribe level, we were overburden, stressed, too involved in the teams day to day to understand what was happening,  and we were requiring staff engineers to coordinate tribe level initiatives and firefight all the time.</p><p>Stuff was more calm for some teams because they accomplished E2E ownership (remember B team just was supporting end customers and operations team, and they had a easier time now), but when it come to collaborating with other teams within the tribe, we had a lot of back and forth because backlogs were full and supported multiple stakeholders.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u_27!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u_27!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 424w, https://substackcdn.com/image/fetch/$s_!u_27!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 848w, https://substackcdn.com/image/fetch/$s_!u_27!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 1272w, https://substackcdn.com/image/fetch/$s_!u_27!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u_27!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png" width="1456" height="714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:714,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:295032,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u_27!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 424w, https://substackcdn.com/image/fetch/$s_!u_27!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 848w, https://substackcdn.com/image/fetch/$s_!u_27!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 1272w, https://substackcdn.com/image/fetch/$s_!u_27!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe1c9dee-99e4-4d39-838e-5b9583e64627_2259x1108.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As leadership of the tribe, we noticed that change happened from multiple places and it didn&#8217;t take into account how we organized the tribe. When some stakeholder needed a change, they were able to talk directly to some PMs to see if they had backlog capacity to deliver a feature, regardless if it was from their teams ownership.</p><h2>Understanding</h2><p>When I face a complex socio-technical system, I know that <strong>there is no root cause </strong>that explains what is happening. So, I would rather find the area that we could impact the most because chaning anything will require a high effort.</p><p>I also know that <em><a href="https://en.wikipedia.org/wiki/The_purpose_of_a_system_is_what_it_does">the purpose of a system is what it does</a></em>, which we had to modify to create the results that we wanted. It meant we needed to change how people worked together with the hope that it will translate into a better situation.</p><p>I focused on understanding the next areas:</p><ul><li><p>How change happen.</p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/an-architecture-diagram-that-shows">Architecture that shows the business purpose</a>.</p></li><li><p>Team Cognitive Load.</p></li><li><p>Teams interactions.</p></li></ul><p>with the hope that we could find the right place to introduce change incrementally.</p><h3>How change happen</h3><p>I sat down with the VP of Business to understand better the business model, and from there I continued to understand how an initative was created, how it materializes, and it ends on different teams.</p><p>The first realization is that the initative and how the teams were structured didn&#8217;t match.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4nvF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4nvF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 424w, https://substackcdn.com/image/fetch/$s_!4nvF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 848w, https://substackcdn.com/image/fetch/$s_!4nvF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 1272w, https://substackcdn.com/image/fetch/$s_!4nvF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4nvF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png" width="1456" height="260" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:260,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217079,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4nvF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 424w, https://substackcdn.com/image/fetch/$s_!4nvF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 848w, https://substackcdn.com/image/fetch/$s_!4nvF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 1272w, https://substackcdn.com/image/fetch/$s_!4nvF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c3a47a-9061-4454-90c5-4480ababc7c8_4518x807.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>For the business, we were a single product, for us, we were three different produts. </p><p>&#129327; Of course all this chaos!</p><p>At somepoint, we evolved from being a single product/team, into different teams and products because the complexity was that high that a single team was unable to deliver all the expectations.</p><p>The tribe evolved, but how the business understood the product didn&#8217;t.</p><p>Remember the architecture? Everything depending and talking to everything else?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZqJK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZqJK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 424w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 848w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1272w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png" width="564" height="538.0467032967033" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1389,&quot;width&quot;:1456,&quot;resizeWidth&quot;:564,&quot;bytes&quot;:2282124,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ZqJK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 424w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 848w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1272w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now it makes sense! It is how the business understand the domain and how the different initiatives are funded.</p><p>When you are a scale-up, with people rotation, with leadership rotation, and so on, it is normal that this memo got lost, and more in a company that relies a lot on spoken communication instead of writing communication. If a key people left, a lot of context is lost.</p><p>I&#8217;m sure this was known by someone but I didn&#8217;t speak with that person, or that person wasn&#8217;t there anymore.</p><p>I wrote that down as part of the engineering strategy we were designing.</p><p>Even though it was an interesting data point, I didn&#8217;t consider that we should start by changing how the whole organization understood our tribe/product. It involves too many people from different layers.</p><p>I was sure that we were able to find another point to start introducing change at a smaller scale.</p><h3>Architecture that shows business purpose</h3><p>We identified that how the business understood the domain/product and us wasn&#8217;t the same. Now, we wanted to understand two things:</p><ul><li><p>If how we understood the problem and the architecture was the same.</p></li><li><p>Untangle the use cases that touched multiple product/services.<br>When we know that a user request translates into multiple API calls, we have a potential distributed monolith.</p></li></ul><p>This is the first picture of our architecture that we created.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NyRY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NyRY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 424w, https://substackcdn.com/image/fetch/$s_!NyRY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 848w, https://substackcdn.com/image/fetch/$s_!NyRY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 1272w, https://substackcdn.com/image/fetch/$s_!NyRY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NyRY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png" width="1456" height="1295" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1295,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7221596,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NyRY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 424w, https://substackcdn.com/image/fetch/$s_!NyRY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 848w, https://substackcdn.com/image/fetch/$s_!NyRY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 1272w, https://substackcdn.com/image/fetch/$s_!NyRY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78e1b6b-0d9a-4405-b6d5-cf00240cbee8_6418x5708.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It provided good insights.</p><ul><li><p>Everything we do is core.</p></li><li><p>Everything else is either supportive (when we run in our cloud) or generic (when we consume it as a SaaS for example).</p></li><li><p>It shown the use cases!<br>We could see and E2E use case and how it navigated all the infrastructure. We didn&#8217;t have traces or any observability tool to tell us that, so we had to rely on people knowledge to build it.</p></li></ul><p>By asking for the architecture, it brought interesting conversations of why things were failing. </p><blockquote><p><em>We should do Event-Driven Architecture. We should decouple here and there. Let&#8217;s do micro-frontends</em>.</p></blockquote><p>People had opinions, and they were founded in their day to day pain. But the problem wasn&#8217;t in the architecture per se, but how we interacted with each other, how we introduced change, and so on that caused this problem.</p><p>I knew that if we stopped analysing there, a huge refactor or technology migration would happen but it wouldn&#8217;t fix our problems.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;01a45745-e2ae-4694-aa9c-ce45e5f210a4&quot;,&quot;caption&quot;:&quot;I have been analyzing and doing architecture diagrams since the very beginning of my career. Most of them focused on the technologies being used and how they communicate with each other. Few of them share the business purpose.Thanks for reading Aleix's Learnings! Subscribe for free to receive new posts and support my work.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;An architecture diagram that shows business purpose&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Everything about Engineering Strategy and Leadership. I enjoy sharing my experiences.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2022-12-06T11:16:49.903Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/h_600,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1930c9e7-01d3-45a9-960e-d351406ab155_4043x1783.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/an-architecture-diagram-that-shows&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:88945170,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h3>Team Cognitive Load</h3><p>People had pain and they were motivated to help reduce it. But which was their real pain? Should we listen to the loudest voices? Are we missing something? Is it a local problem or a tribe level problem? What should we fix first?</p><p>Thanks to the retrospectives, we had some data points on what was painful for teams, but each team had their own roadmap and it was hard to create a coordinated initiative.</p><p>Is there something that affects all the teams?</p><p>We wanted to provide some clarity on what was causing a bad developer experience that could help us to identify a shared problem cross teams.</p><p>We used the <a href="https://github.com/TeamTopologies/Team-Cognitive-Load-Assessment">Team Cognitive Load Assessment</a> survey by Team Topologies, and we adapted it to our context. We didn&#8217;t have a tool like <a href="https://www.teamperature.com/">Teamperature</a> back then, so it required a manual work for us, the leadership team.</p><p>What the Team Cognitive Load Assessment told us was:</p><ul><li><p>Building, testing, and deploying services was great.</p></li><li><p>Understanding the business needs was ok.</p></li><li><p>Operating the services was a mess.</p></li></ul><p>Ugh! The conversations were about changing the architecture to improve reliability, but the real problem is that we didn&#8217;t have the right observability and monitoring tools in place.</p><p>We were paying SaaS observability tool and self-hosted Elastic Search with Kibana&#8230; So&#8230; let&#8217;s dig here.</p><p>We asked people how they were able to understand what was going wrong in the system.</p><blockquote><p>- Devs: We use CloudWatch to see the logs, and then we go to the database to see why it is in the wrong state.<br>- Aleix: For all the services?<br>- Devs: Yes.<br>- Aleix: Why you don&#8217;t use <em>SaaS observability tool</em> or Kibana for this?<br>- Devs: <em>SaaS observability tool</em> is hard, we don&#8217;t know how to use it. And Kibana doesn&#8217;t work.<br>- Aleix: And when a problem happens with multiple systems?<br>- Dev: We ask the Staff Eng.</p><p> (Aleix goes to talk to the Staff Eng)</p><p>- Aleix: Hey! Are you aware of this problem?<br>- Staff Eng: Yes&#8230; we know but we don&#8217;t have time for training. The tool was decided by the global platform team but there was never a training.</p><p>(Aleix goes to the global platform team)</p><p>- Aleix: Hey! Are you aware of this problem?<br>- Platform dev: Yes, but we are now migrating to another tool because our <em>SaaS observability tool</em>  isn&#8217;t working.<br>- Aleix: but the problem is training, why not investing the migration time into training people?<br>- Platform devs: That&#8217;s not our focus now, we expect teams to learn the tool. And the new tool has a good learning materials for free</p></blockquote><p>The problem seems quite obvious, but I guarantee you that it is more common than you might expect. Choose a tool, do not train people on it, blame the tool, change the tool, don&#8217;t train people, repeat.</p><p>We identified a skill gap.</p><h3>Team Interactions</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZhGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZhGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 424w, https://substackcdn.com/image/fetch/$s_!ZhGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 848w, https://substackcdn.com/image/fetch/$s_!ZhGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 1272w, https://substackcdn.com/image/fetch/$s_!ZhGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZhGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png" width="1456" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:292031,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZhGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 424w, https://substackcdn.com/image/fetch/$s_!ZhGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 848w, https://substackcdn.com/image/fetch/$s_!ZhGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 1272w, https://substackcdn.com/image/fetch/$s_!ZhGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9f0dc97-3967-4b40-b1ea-028ccc9ceba7_2515x1865.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>By intoducing the Core Team, we also introduced the collaboration between all the teams when anything required a change to the <em>core services</em>.</p><p>The Core Team was doing two things:</p><ul><li><p>Delivering the Product A because no one else was there to do.</p></li><li><p>Introducing change on the shared services.</p></li></ul><p>Here I leave an example of how a Stream Aligned could evolve into Platform Team, but it wasn&#8217;t how it happened to us.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3f617070-3a25-4c43-b534-72721ad95500&quot;,&quot;caption&quot;:&quot;I recall a situation where a team behaved as a Stream Aligned Team and Platform Team Grouping, supporting external and internal customers and handling the situation with a manageable cognitive load, at least for some time. I want to share a common situation that multiple organization faces&#8212;the &#8230;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Interim Platform Team&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Everything about Engineering Strategy and Leadership. I enjoy sharing my experiences.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-07-22T08:00:19.289Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d7fd95-1c5d-400f-a6f8-ab05612fdfe1_2782x1437.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/interim-platform-team&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:135286346,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:1,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>Enough to start the direction</h2><p>At this point, I considered that we understood enough about our context and situation at hand. We could start making some hard decisions on how to proceed.</p><p>I will go in depth on the next post.</p>]]></content:encoded></item><item><title><![CDATA[Reducing the chaos before addressing the complex socio-technical system]]></title><description><![CDATA[Fintech Engineering Strategy. Post VI]]></description><link>https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Wed, 14 Feb 2024 07:10:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.</em></p><div><hr></div><p>Fintech Engineering Strategy Post Series</p><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team">Post I. A legacy, a deadline, and no team.</a></p></li></ul><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow">Post III. Merging two teams for fast flow.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture">Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow">Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics.</a></p></li><li><p>Post VI. Reducing the chaos before addressing the complex socio-technical system [This post]</p></li></ul><div><hr></div><p>I introduced the whole context in the previous post. In case you didn&#8217;t read it, now it a good moment to do so!</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1f695b08-59d1-4b10-821e-53eb4815f7f2&quot;,&quot;caption&quot;:&quot;The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Going to production killed fast flow. Understanding how company \&quot;culture\&quot; materializes on unaligned team dynamics. Part I&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-02-07T07:12:30.883Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:139861864,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tkp3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tkp3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 424w, https://substackcdn.com/image/fetch/$s_!Tkp3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 848w, https://substackcdn.com/image/fetch/$s_!Tkp3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 1272w, https://substackcdn.com/image/fetch/$s_!Tkp3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tkp3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png" width="578" height="453.54774774774774" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:871,&quot;width&quot;:1110,&quot;resizeWidth&quot;:578,&quot;bytes&quot;:475019,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Tkp3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 424w, https://substackcdn.com/image/fetch/$s_!Tkp3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 848w, https://substackcdn.com/image/fetch/$s_!Tkp3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 1272w, https://substackcdn.com/image/fetch/$s_!Tkp3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f60e9b2-4823-4fd9-8970-cdf25f0a8f02_1110x871.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Using the Cynefin Framework and identified that the team was in a chaotic domain, we had to <code>act-sense-respond</code>.</p><p>So, how do we move away from the loop of death?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xyhW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xyhW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 424w, https://substackcdn.com/image/fetch/$s_!xyhW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 848w, https://substackcdn.com/image/fetch/$s_!xyhW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 1272w, https://substackcdn.com/image/fetch/$s_!xyhW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xyhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png" width="622" height="287.5041208791209" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:673,&quot;width&quot;:1456,&quot;resizeWidth&quot;:622,&quot;bytes&quot;:158518,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xyhW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 424w, https://substackcdn.com/image/fetch/$s_!xyhW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 848w, https://substackcdn.com/image/fetch/$s_!xyhW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 1272w, https://substackcdn.com/image/fetch/$s_!xyhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81caad2a-7226-4b15-bd8a-709c44875970_1609x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When the teams dynamics aren&#8217;t helping but just making it worse?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oSJR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oSJR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 424w, https://substackcdn.com/image/fetch/$s_!oSJR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 848w, https://substackcdn.com/image/fetch/$s_!oSJR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 1272w, https://substackcdn.com/image/fetch/$s_!oSJR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oSJR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png" width="1456" height="1511" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1511,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:691204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oSJR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 424w, https://substackcdn.com/image/fetch/$s_!oSJR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 848w, https://substackcdn.com/image/fetch/$s_!oSJR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 1272w, https://substackcdn.com/image/fetch/$s_!oSJR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61319333-f3a8-4941-b79c-75cbfcec6e84_2259x2344.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Making though and focused decisions. One thing at a time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gX4d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gX4d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 424w, https://substackcdn.com/image/fetch/$s_!gX4d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 848w, https://substackcdn.com/image/fetch/$s_!gX4d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 1272w, https://substackcdn.com/image/fetch/$s_!gX4d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gX4d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png" width="1456" height="1339" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1339,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1090010,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gX4d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 424w, https://substackcdn.com/image/fetch/$s_!gX4d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 848w, https://substackcdn.com/image/fetch/$s_!gX4d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 1272w, https://substackcdn.com/image/fetch/$s_!gX4d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7780d3de-fba9-4462-ab7d-bc1550e80a95_2259x2078.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We focused on the area where the chaos is more intense. Operations and B teams.</p><p>I could try to align with Customer Success team, but I would had to create a relationship first with the leadership that isn&#8217;t part of our tribe, understand their objectives, and align on the purpose.</p><p>Too much.</p><p>We needed a solution that we could implement ourselves taking advantage of B team domain knowledge.</p><p>I joined the team in their day to day supporting activities for customer incident tickets, and I started to pitch the idea that we had to automate that process somehow.</p><p>We started with a document listing the steps needed to solve each ticket and we found that:</p><ul><li><p>Several tickets were similar but solved in different ways depending of which microservice or external provider failed.</p></li><li><p>How to fix the issue was API based most of the time + some checks at database level. </p></li><li><p>Most of the failure points were outside the team.</p></li></ul><p>Let&#8217;s investigate more.</p><blockquote><p>- Aleix: What&#8217;s preventing to fix this recurrent problem?<br>- B Team: This is a responsibility of core team now.</p><p>(Aleix goes to Core team)</p><p>- Aleix: Are you aware of this is happening?<br>- Core team: Yes, but we have a plenty things to do, we have one person supporting B team on this.<br>- Aleix: Cool! Did you find already the problem?<br>- Core team: Yes, it is an external provider that when it fails, it causes multiple of our microservices to become in an inconsistent state. So, we are helping B team to fix those problems manually until our provider fix their problem in their end.<br>- Aleix: You are also doing manual work? Did you consider make the service more resilient?<br>- Core team: Yes! We want to, but we don&#8217;t have the time to make it, we have a lot to do. Supporting B team, continuing the development of A product, help C team with some of their needs to go to production. We need more people!<br>- Aleix: I see! Thank you for your time!</p><p>(Aleix goes to operations)</p><p>- Aleix: Could you explain me your process to fix those production issues?<br>- Ops: Sure! A customer comes to us we don&#8217;t know why it is failing to them! and we have a policy that we need to reply within 24h to tell them that we are working on their problem.<br>- Aleix: Telling them which is the problem?<br>- Ops: Yes, if we know what&#8217;s happening, we can inform them how much it will take to fix the problem and help our customer to be calm because we are working on it.<br>- Aleix: Is there a difference between letting them know and fixing the problem?<br>- Ops: Oh yes, we have different SLAs depending on the issue. But because we don&#8217;t know, we have to ask the developers to share the information as soon as possible in case it is a critical situation.<br>- Aleix: And which is the normal case? Are they critical?<br>- Ops: Oh, no! They are usually problems that could take 3 days to be solved without any problem, we let them know and the customer is happy.<br>- Aleix: Thank you for your time!</p></blockquote><p>I don&#8217;t know if you recall before the all layoffs happened that the norm to fix any problem was to add more people &#129318;.</p><p>This was our norm too, and you could see that any problem we had, we just added more people. Customer success is unable to keep up with the tickets? Add more people! and so on and so forth.</p><p>By adding more people, you change the architecture due to Conway&#8217;s Law. And when you change people often, the architecture is a mess because it is unable to adapt at the rate that people do.</p><p>That&#8217;s was happening to us, a lot. Missing communication everywhere due to the fast growth challenges.</p><p>I was able to identify a <a href="https://www.merriam-webster.com/dictionary/low-hanging%20fruit">low hanging fruit</a>. Provide access to the operations teams to understand why a customer had a problem.</p><p>If we combine a way to inspect the state of a customer account and a little manual explaining which is the scenario they have, they could inform the customer of their problem without involving the dev team.</p><h2>Ops team is another product user</h2><p>A principle we introduced to the B team was <em>&#8220;we have at least two users, our end customer and operations team. Our service needs to help both needs&#8221;</em>.</p><p>By understanding operations team as another user persona, we were able to prioritize work for them from a product perspective. It wasn&#8217;t anymore a dev thing, but a Product-Eng thing. Product become aware of the operations needs, and we started to include them in our quarterly prioritization.</p><p>So, what we need to do?</p><p>The company had several internal dashboards in place which they required to talk with those teams because they weren&#8217;t self served. You need to talk with the team, share your needs, prioritize the dashboard to our product integration, and &#8230; too much time. Yet another collaboration!</p><p>We know that collaboration isn&#8217;t allowing fast flow, so, an alternative?</p><p>Let&#8217;s build a dashboard ourselves. Should it be pretty? No. Should it be secure? Yes. Should it do much? No. Is it aligned with the company principles? No, because we were building something that we shouldn&#8217;t do in the first place.</p><h2>Internal crappy dashboard that kind of works</h2><p>And that&#8217;s what we did! An internal crappy dashboard with Vue via CDN to take advantage of the existing APIs to show data to the operations team secured.</p><p>What did it do?</p><p>You add the customer ID, and it shows you its state. You go to our internal wiki page and you know how to reply to the customer.</p><p>At this point, the amount of tickets dropped in criticality. We no longer had to solve them in the same day. Now we had time between the ticket was open and we had to resolve it.</p><p>We got some air!</p><h3>Automating devs knowledge</h3><blockquote><p>- Aleix: Should we consider automating what you shared in the Wiki page at the Product B?<br>- B team: Well, we shouldn&#8217;t have to do this here&#8230; but it is true that we are suffering a lot.<br>- Aleix: What&#8217;s the problem of adding the logic here?<br>- B team: Is it duplication? Shouldn&#8217;t it go into the other services?<br>- Aleix: Yes, it is.<br>- B team: Isn&#8217;t it bad?<br>- Aleix: Well, it is the place that will take us less time to build, the other implies communication and collaboration with other teams. I think the effort is higher than just do it here.<br>- B team: I think it will just make our code worse.<br>- Aleix: Probably yes, it will feel wrong until we learn more about the problem. We shouldn&#8217;t touch the logic that&#8217;s serving our customers, but build it aside. Ready to be deleted at some point, even though that point might never happen because it is outside our team responsibilities. I&#8217;m taking care of this, but it will take longer than we would like to.<br>- B team: OK, we can start this way and see how it evolves.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zTsI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zTsI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 424w, https://substackcdn.com/image/fetch/$s_!zTsI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 848w, https://substackcdn.com/image/fetch/$s_!zTsI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 1272w, https://substackcdn.com/image/fetch/$s_!zTsI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zTsI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png" width="1456" height="1102" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1102,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:366147,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zTsI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 424w, https://substackcdn.com/image/fetch/$s_!zTsI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 848w, https://substackcdn.com/image/fetch/$s_!zTsI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 1272w, https://substackcdn.com/image/fetch/$s_!zTsI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72c6ee-8b6b-441c-a020-34e9cccdda97_1706x1291.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And that&#8217;s how Service B become aware of all the other services problems, but made the product resilient for the customer perspective.</p><p>The team had a very interesting idea, let&#8217;s create self-healing system by implementing the rules to help the system to reach a coherent state.</p><p>But we had a problem, not all the scenarios can be automated. Some requires opening a ticket to our provider support center.</p><p>What did we do? Implement the idea in small increments.</p><h3>The dashboard starts the automation</h3><p>Instead of a developer calling the REST API directly, we added specific pages into the dashboard to start the most common operations the devs team made, and now they were available for the operations team to do autonomously.</p><p>So now, instead of opening Postman, we opened a dashboard with a list of operations we could use for each scenario that our end customers needed support with.</p><p>At first, operations didn&#8217;t do it by themselves, and it is normal! If you need to support several customers each day, it is not the same opening tickets and a team of at least 2 developers supporting, than do it yourself.</p><p>We had to do several meetings, looms, improve our documentation, and improve the dashboard to make it more accessible for the ops team.</p><p>We were able to convince them to support the customers directly because we needed to free the developers for that operations work so they could fix the system.</p><h3>The service self-heals</h3><p>Lucky us, we got into the point where 2 developers weren&#8217;t spending their time to support end customers directly and start implementing the service improvements to make it more resilient. </p><p>The team implemented a nice state machine that could self-heal on the scenarios that were automatizable, and let us know via a Slack notification when it wasn&#8217;t possible.</p><p>Reaching this point was tedious, demanding, energy taking, and demotivating.</p><p>But when you reach the point that you can sustain the product, the issues in production that affect end customers drop to almost 0, it is a huge energy and moral boost.</p><p>You know you did a good job! And it was a multi-team effort to accomplish it. We celebrated this moment a lot.</p><h2>Afterwards learnings</h2><p>If I had to highlight some actions that helped us to move away from the chaotic situation, they are:</p><ul><li><p>Focusing on what you can control within the team to avoid team collaboration in a chaotic situation. You increase the chaos by involving people. Be sure you need to involve the people yes or yes before doing so.</p></li><li><p>Instead of aligning with multiple people about team responsibilities, I took the decision to make it at team level by de-prioritizing a lot of the planned product work in favor of stabilizing the system. I made that work as part of <em>product work</em> and multiple blockers were removed. I had a good and strong relationship with the PM of the B team, and this was key to have a common speech of why we were making those decisions.</p></li><li><p>Instead of following the internal approach to building dashboards (which they weren&#8217;t self served, and the DevEx wasn&#8217;t good enough), we started a crappy Dashboard that did the job. Fixing customer problems &gt; make it good at the first try.</p></li><li><p>By providing the dashboard for the operations people, we learned more about our domain and customer needs. By understanding and supporting the customer, we were capable of implement the right level of self-healing mechanisms later. Otherwise, we could had miss-implemented some of the use cases because we missed deeper domain knowledge. Because how a system failed is also part of the domain knowledge due to several regulatory specific policies.</p></li><li><p>Going fast on making the decisions and implementing the good enough increment to free up developers was <strong>essential</strong>.</p></li><li><p>I had to <strong>adopt a command and control leadership style</strong> to make the situation stable, and it helped everyone to focus on the bet.</p><ul><li><p>On a chaotic context, the important aspect is acting and moving away from it, that&#8217;s why this leadership style made sense. You can see more about adaptative leadership styles here.</p></li></ul></li></ul><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1e061a00-9559-4f17-a07d-cc7b8f845083&quot;,&quot;caption&quot;:&quot;I share this diagram with other leaders a lot. It shows that a team goes in different phases and so your leadership style should do. It's a common mistake to give autonomy to a team that needs direction. In this post, I explain the leadership style depending on the team state combining 4 stages of a team with&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why your leadership style should adapt to the team needs &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2022-01-15T13:24:34.796Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc32d079-241e-48ad-8bff-59a01a657061_2296x2082.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/how-your-leadership-style-should&quot;,&quot;section_name&quot;:&quot;Leadership&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:47083625,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h3>Product teams thinking of operations as a user persona impacted how we understood the teams responsibilities</h3><p>After leadership noted that a product team by itself was providing good support to customers via operations team, they questioned why we needed a specific CX team to build those dashboard in the first place.</p><p>This approach become part of how we were doing things from now and on.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;6c0d078c-c0c5-4b56-93f4-b9083e7fa1c8&quot;,&quot;caption&quot;:&quot;On this post, I use the term &#8220;Strategy&#8221; as what Richard Rumelt's defined on his book \&quot;Good Strategy / Bad Strategy\&quot;.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The outcome of the strategy becomes culture&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-01-14T11:03:43.254Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa934ee2c-2378-4578-8d56-ed2259094938_2707x1327.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/the-outcome-of-the-strategy-becomes&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:140614827,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:10,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>Moving into the next big thing, how did we end up in this situation in the first place?</h2><p>Then, it was time to tackle the next big thing. The tribe.</p><p>What&#8217;s happening at a tribe level that our socio-technical systems is that fragile? Which dynamics do we have that causes this situation over and over again?</p><p>It looked like the there was <strong>no root cause</strong>, but a set of things that were interrelated that caused the system to behave the way it was doing it.</p><p>In the next post I will go in depth on how I analyzed a complex socio-technical system and which bets I took and why.</p><p>Thank you for reading!</p>]]></content:encoded></item><item><title><![CDATA[Going to production killed fast flow. Understanding how company "culture" materializes on unaligned team dynamics]]></title><description><![CDATA[Fintech Engineering Strategy. Post V]]></description><link>https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Wed, 07 Feb 2024 07:12:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nBJs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.</em></p><div><hr></div><p><strong>Fintech Engineering Strategy Post Series</strong></p><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team">Post I. A legacy, a deadline, and no team.</a></p></li></ul><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow">Post III. Merging two teams for fast flow.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture">Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective.</a></p></li><li><p>Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics. [This post]</p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system">Post VI. Reducing the chaos before addressing the complex socio-technical system</a></p></li></ul><div><hr></div><p>On the previous post IV, I introduced that we 1) created a core team at tribe level 2) re-purposed the team to be a platform team. </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a6232f90-f70d-426a-8841-50006080a192&quot;,&quot;caption&quot;:&quot;The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-12-17T12:50:34.094Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:139743596,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>But why did we re-purposed the team to be a platform team? In which context did it happen?</p><h1>Context</h1><p>We simplified the architecture, implemented the feedback and insights found by the beta customers. <strong>We released the MVP.</strong> &#128588;</p><p>We reached a good team maturity at the same time the B2B2C product started to gain traction. The past decisions on focusing on this product to have a faster feedback loop started to pay-off.</p><p>The product value proposition was to help companies attract and retain talent by offering a better employee experience.</p><p>We onboarded few clients per month, which could mean between hundreds to thousands on employees. And with thousands of users per month, you start to see the system weaknesses. For the technical aspect, you see the service to start failing given several concurrent users. For the product/design aspect, you start seeing customers being unable to accomplish their main use case.</p><p>Customer tickets started to pile-up, developers were supporting the product constantly, and several manual processes that before weren&#8217;t painful, now was blocking all the fast flow.</p><p>Customer success team and Operations team were under pressure to resolve tickets to <strong>gain the customers trust and make sure they don&#8217;t churn</strong>. They hadn&#8217;t the right tools to make it happen, so they mainly created tickets for the Development Team <strong>to fix manually</strong>.</p><p>If the product-tech team is busy solving production issues, we weren&#8217;t improving the system. We weren&#8217;t able to escape the dynamics we created.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nBJs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nBJs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 424w, https://substackcdn.com/image/fetch/$s_!nBJs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 848w, https://substackcdn.com/image/fetch/$s_!nBJs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 1272w, https://substackcdn.com/image/fetch/$s_!nBJs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nBJs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png" width="1456" height="673" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:673,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141631,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!nBJs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 424w, https://substackcdn.com/image/fetch/$s_!nBJs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 848w, https://substackcdn.com/image/fetch/$s_!nBJs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 1272w, https://substackcdn.com/image/fetch/$s_!nBJs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf5d63d5-d08e-474f-b91b-7134074fc867_1609x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You know this virtuous cycle that deteriorates everything, architecture, code, team morale, customer trust, &#8230; which requires a bold decision to stop it.</p><p>In this post, which it needs to be spitted in multiple parts, I will go in depth on:</p><ul><li><p>Understanding how the socio-technical system produced this result.</p><ul><li><p>How leadership affected the whole team dynamics and how we had to change the whole tribe culture.</p></li></ul></li><li><p>How using Team Topologies principles with  <a href="https://martinfowler.com/bliki/ConwaysLaw.html">Inverse Conway Maneuver</a> while constantly measuring <a href="https://itrevolution.com/articles/cognitive-load/">Team Cognitive Load</a> helped us make sensible decisions.</p><ul><li><p>Starting the change from the people and then though tech.</p></li></ul></li><li><p>Understanding the technical landscape with Wardley Mapping and Domain Driven Design with Strategic Patterns.</p><ul><li><p>Why the microservices failed and why the current approach didn&#8217;t work.</p></li></ul></li><li><p>Directly challenge the company operating model on how it designed and decided the teams responsibilities.</p><ul><li><p>Two teams discontinued and one team become a Platform Team.</p></li></ul></li></ul><p>I&#8217;m sharing with you a six month journey on how we changed completely a tribe from low performing to high performing and be a reference within the organization.</p><p>I hope you enjoy this in depth engineering strategy at multiple levels as much as I did working with my peers making it a reality.</p><div class="paywall-jump" data-component-name="PaywallToDOM"></div><h1>Start sensing the grouping instead only the team</h1><p>I shared between the Post I and IV different strategies that worked at team level because it was the high-stake challenge for the organization and required my full attention.</p><p>You can see how I kept involved at team level in the next diagram. I was able to sense problems at tribe level but I decided to ignore them to focus on the high-stake problem first.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4NoP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4NoP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 424w, https://substackcdn.com/image/fetch/$s_!4NoP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 848w, https://substackcdn.com/image/fetch/$s_!4NoP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 1272w, https://substackcdn.com/image/fetch/$s_!4NoP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4NoP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png" width="1456" height="2261" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a471117-7b57-4194-bedf-92470f169729_2598x4034.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2261,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1867602,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4NoP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 424w, https://substackcdn.com/image/fetch/$s_!4NoP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 848w, https://substackcdn.com/image/fetch/$s_!4NoP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 1272w, https://substackcdn.com/image/fetch/$s_!4NoP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a471117-7b57-4194-bedf-92470f169729_2598x4034.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I don&#8217;t know if you remember, but I joined as Engineer Manager, but my attention was fully at team level. I had to start moving into tribe level challenges, and we were facing another <em>fire</em> &#128293; at team level.</p><p>With this peace and dynamic we wouldn&#8217;t move into a more stable context. We will move from fire to fire, creating an environment that&#8217;s tiring and burns out people.</p><p>The day to day was chaotic. We have production incidents due to systems being down with several customer tickets due to the system not being available.</p><p>At some point, I had to decide to lead things be on fire so we could make the improvements we all needed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DL9o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DL9o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DL9o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DL9o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DL9o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DL9o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;https://media.sketchfab.com/models/0a0d3d35a5d24b52b8cac2c006215425/thumbnails/9f241fc3e2664a5d9ed8d17918bc3e41/7532821624224d0ca7745204e904dce3.jpeg&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="https://media.sketchfab.com/models/0a0d3d35a5d24b52b8cac2c006215425/thumbnails/9f241fc3e2664a5d9ed8d17918bc3e41/7532821624224d0ca7745204e904dce3.jpeg" title="https://media.sketchfab.com/models/0a0d3d35a5d24b52b8cac2c006215425/thumbnails/9f241fc3e2664a5d9ed8d17918bc3e41/7532821624224d0ca7745204e904dce3.jpeg" srcset="https://substackcdn.com/image/fetch/$s_!DL9o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DL9o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DL9o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DL9o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd2ee97-b443-4a0c-bca1-9b1a7fe71f3c_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The good thing is that we had already some experience as a team working together, I was exposed enough to the company complexities, and I asked the team to sustain the situation while I had to focus on identifying the root cause. The team was mature enough that they didn&#8217;t depend on me on that chaotic and stresful situation.</p><p>So, I started sensing what was happening at tribe level.</p><p>There was something that seemed off. It looked like teams had problems, not the organization. The attention focused at team level, like the problem was there and so was the solution.</p><p>My helping with those fires and fixing them didn&#8217;t help. I was part of creating the hero culture. Those people that jump from fire into fire, and get good recognition for it. Who doesn&#8217;t like to be recognized to help on the hard moments?</p><p>That&#8217;s not a sustainable job. I started to think differently about the situation.</p><p>What if the teams were signaling deeper organization/company problems? If only one team underperforms is a team problem, if multiple teams underperform, it is an organization problem materialized at team level.</p><div class="pullquote"><p>See your teams problems as signals to identify a deeper organizational problems. The team isn&#8217;t the problem but a organization&#8217;s mirror of why things work or doesn&#8217;t work.</p></div><p>I was to identify that each team had a different problem at first, but they seemed to follow a pattern.</p><ul><li><p>Teams without products in production.<br>They need several months to release a product.</p></li><li><p>Teams with products in production.<br>They cannot iterate the product and stabilize it because of the operability is high and there is more need to keep adding functionality.</p></li></ul><p>There was something happening again with hand-offs, like I shared in the Merging two teams for fast flow post.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;49502d27-c476-41aa-a329-2106d360556f&quot;,&quot;caption&quot;:&quot;The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Merging two teams for fast flow&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-10-22T08:00:26.078Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:137929113,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings on Engineering Strategy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>And then, all the sudden another team appeared! Why? When? How? WHAT!?</p><p>I started to host calls with every team leader within the tribe and people that depended on us, like Operations teams.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K2vZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K2vZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 424w, https://substackcdn.com/image/fetch/$s_!K2vZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 848w, https://substackcdn.com/image/fetch/$s_!K2vZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 1272w, https://substackcdn.com/image/fetch/$s_!K2vZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K2vZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png" width="1456" height="1511" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1207170-511c-4847-b668-66815325928f_2259x2344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1511,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:660013,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K2vZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 424w, https://substackcdn.com/image/fetch/$s_!K2vZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 848w, https://substackcdn.com/image/fetch/$s_!K2vZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 1272w, https://substackcdn.com/image/fetch/$s_!K2vZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1207170-511c-4847-b668-66815325928f_2259x2344.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I discovered interesting things:</p><ul><li><p>Core team was supporting the Product A development because no one else was doing it while teams B and C needed internal systems improvements that were blocking them.</p><ul><li><p>Product B was using several of the internal services, some of which were unstable and their failures impacted the customer.</p></li></ul></li><li><p>Supporting the customer happened outside the tribe responsibilities.</p><ul><li><p>Product teams were seen still as feature factory outside the tribe (and probably within the tribe too&#8230;). Customer Success and Operations teams had the responsibility of providing a good customer experience and closing tickets as fast as possible.</p></li><li><p>They didn&#8217;t have the tooling to be autonomous, so they had to open tickets to the next layer until a developer was able to access the logs, the database, and call the right APIs in the right order to fix the customer problem.</p><ul><li><p>This happens when you have a non-resilient distributed monolith BTW.</p></li></ul></li></ul></li><li><p>Because the responsibility was for the Operations division, they had the authority to create teams to support better the customers, so, they didn&#8217;t have to ask anyone to add a new team to our tribe with one objective. Help the other Operations teams to do their job faster.</p><ul><li><p>BUT, how will they create a dashboard? They don&#8217;t have business nor development context. Will they integrate with our APIs that aren&#8217;t ready to make that? Will we have another user to support now? Why creating another handover instead of ourselves creating the Dashboard directly? Which we already started&#8230; Will they just add code to our repository?</p></li></ul></li></ul><p>At the beginning I remove handovers between internal teams. We created a team to deliver E2E, but it looks like the organization didn&#8217;t understand the same for supporting the customer. That was another team responsibility, you focus on delivering new things.</p><p>I naively expected to find an easier answer of what I needed to fix, but no, it was a complex human problem that materialized on the messy architecture we had.</p><p>I was seeing Conway&#8217;s Law in front of me, and the problematic resided outside the tribe.</p><p>I had to involve VP level people to understand better what was going on while the team in a chaotic situation, which they wouldn&#8217;t be able to sustain for too long.</p><p>So, we had to do two things:</p><ol><li><p>Understand the whole complex context to start betting on how to improve the situation.</p></li><li><p>Just act to move away from the chaotic situation.</p></li></ol><p>Following the Cynefin framework, we could say that we were in the next situation:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uen8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uen8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 424w, https://substackcdn.com/image/fetch/$s_!uen8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 848w, https://substackcdn.com/image/fetch/$s_!uen8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 1272w, https://substackcdn.com/image/fetch/$s_!uen8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uen8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png" width="1048" height="822" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:822,&quot;width&quot;:1048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:451773,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uen8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 424w, https://substackcdn.com/image/fetch/$s_!uen8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 848w, https://substackcdn.com/image/fetch/$s_!uen8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 1272w, https://substackcdn.com/image/fetch/$s_!uen8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25e167e-3252-4bbb-90d2-52603b7831e0_1048x822.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So&#8230; what to do?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kyy2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kyy2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kyy2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kyy2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kyy2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kyy2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg" width="500" height="756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:756,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kyy2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kyy2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kyy2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kyy2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa62b2a00-640a-4950-af88-6f583ced6d14_500x756.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s do both starting by reducing the chaos &#128516;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!koof!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!koof!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!koof!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!koof!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!koof!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!koof!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg" width="500" height="756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:756,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!koof!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!koof!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!koof!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!koof!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbaed4d-da06-4cf6-b61c-cd54e884363f_500x756.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the next post I will share the tactical actions we did to reduce the chaos, and how we let things be on fire for a long while.</p>]]></content:encoded></item><item><title><![CDATA[Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective]]></title><description><![CDATA[Fintech Engineering Strategy. Post IV]]></description><link>https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Sun, 17 Dec 2023 12:50:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.</em></p><div><hr></div><p><strong>Fintech Engineering Strategy Post Series</strong></p><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team">Post I. A legacy, a deadline, and no team.</a></p></li></ul><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow">Post III. Merging two teams for fast flow.</a></p></li><li><p>Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective. [This post]</p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow">Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system">Post VI. Reducing the chaos before addressing the complex socio-technical system</a></p></li></ul><div><hr></div><p>I&#8217;m concerned about the amount of misunderstood ports and adapters architectures (from now on P&amp;A arch.) out there, more specifically on the decision making process behind them.</p><p>The intention with this post is to give you tools and arguments to decide properly which architectural choices do you have and, instead, opt for an evolutionary approach when needed.</p><div class="pullquote"><p>Architectural choices are sociotechnical systems decisions.</p></div><p>I briefly introduced the decision we took of replacing Ktor by Spring Boot in this post, yet, I think I could go more into the details and nuances of the decision.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c6d2af7d-d9ca-4f9b-903c-883d7ccd7c8a&quot;,&quot;caption&quot;:&quot;The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building a product vision, a team, and replacing Ktor with Spring Boot incrementally&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-10-13T12:42:48.010Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:137585882,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>If you want the short version of the full post, you can <a href="https://twitter.com/aleixmorgadas/status/1734838728030371858">check this Tweeter thread</a>.</p><p>In the thread I say replacing ports and adapters in favour of MVC+S. Indeed, I would say that what we did was a very thin ports&amp;adapters where the ports and adapters were the ones that Spring Boot provides out of the box with spring-boot-web.</p><p>The thing is that a ports and adapters leveraging Spring Boot defaults looks like an MVC+Service, or 3'-layered architecture with an Application Service.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U-pE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U-pE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 424w, https://substackcdn.com/image/fetch/$s_!U-pE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 848w, https://substackcdn.com/image/fetch/$s_!U-pE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 1272w, https://substackcdn.com/image/fetch/$s_!U-pE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U-pE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png" width="1196" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1196,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:139708,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U-pE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 424w, https://substackcdn.com/image/fetch/$s_!U-pE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 848w, https://substackcdn.com/image/fetch/$s_!U-pE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 1272w, https://substackcdn.com/image/fetch/$s_!U-pE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa85a4db-5d1e-4867-886b-dbcb915e1e27_1196x826.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://twitter.com/aleixmorgadas/status/1734838728030371858">twitter.com/aleixmorgadas/status/1734838728030371858</a></figcaption></figure></div><h1>TLDR;</h1><p>Ports and Adapters architecture isn&#8217;t a best practice nor a sign of quality by itself. Indeed, it can even show a poor situational awareness and imply a high accidental complexity and incurred cost to the business.</p><p>This is due to it is misunderstood and each implementation is different. The possibility of introducing accidental complexity is high due to it relies a lot on the developer criteria. And we have the tendency to complicate things, right?</p><p>If an architecture rely on the developers to keep it simple, it will tend to get complicated rather than the oposite. </p><p>I don&#8217;t mean that we shouldn&#8217;t write sustainable code with a good test base and good practices like observability. I mean that applying all the &#8220;popular best practices&#8221; without understanding how they apply to our context is a receipt for failure. Applying patterns without the situational awareness shows a lack of seniority or a desire for a CV oriented career.</p><p><strong>Disclaimer</strong>: I did that mistake, and I took a long time to realize that the business is who keeps paying the consequences.</p><p>Learning them and applying specifically for the context at hand is what matters.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QzCq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QzCq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QzCq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QzCq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QzCq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QzCq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg" width="500" height="713" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:713,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QzCq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QzCq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QzCq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QzCq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae33a8ec-2fa3-4947-b2be-e54277db3c0e_500x713.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Today, I&#8217;m explaining you why we made some contra-intuitive decisions such as:</p><ul><li><p>Migrating from ports and adapters full decoupled from the framework to ports and adapters coupled to spring boot.</p></li><li><p>Moving from Ktor and Exposed to Spring Boot.</p></li><li><p>Moving from anti-corruption layers to decouple from external systems to conformist (accepting the upstream model).</p></li><li><p>Coupling to Spring Boot and to upstream systems.</p></li><li><p><strong>Introduce a Platform as a Product in the tribe lead by a Platform Team.</strong></p></li></ul><p>Which helped us to achieve stuff like:</p><ul><li><p>Removing +1.000 LoC cross multiple services.</p></li><li><p>Removing several cross layers duplicated tests.</p></li><li><p>Reduce the cycle time and improved the lead time for features.</p></li><li><p>Improve the reliability of the systems.</p></li><li><p>Reduce the cognitive load of teams</p></li><li><p>Improve the onboarding time from 4-5 months when people felt productive to less than two months.</p></li></ul><p>As side-effect, we made decisions based on the learnings we had that impacted the performance review, the career leader definition and the hiring process. In specific, it affected the senior+ developers job expectations. I&#8217;m also explaining why and what we did here.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://learnings.aleixmorgadas.dev/subscribe?"><span>Subscribe now</span></a></p><h1>The context</h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ae301d5c-2b82-433d-a0fa-48829e98f9a9&quot;,&quot;caption&quot;:&quot;The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Merging two teams for fast flow&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-10-22T08:00:26.078Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:137929113,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>We just merged two teams, and we started to gain team momentum. People were doing pairing, started to know each other, and we were progressing from forming to storming based on <a href="https://en.wikipedia.org/wiki/Tuckman%27s_stages_of_group_development">Tuckman's model</a>.</p><p>When things start to become less chaotic at human level, you can slow things down to understand the technical part.</p><p>At tribe level, we had an architecture like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8EYc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8EYc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 424w, https://substackcdn.com/image/fetch/$s_!8EYc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 848w, https://substackcdn.com/image/fetch/$s_!8EYc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 1272w, https://substackcdn.com/image/fetch/$s_!8EYc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8EYc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png" width="1456" height="1151" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1151,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2256536,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8EYc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 424w, https://substackcdn.com/image/fetch/$s_!8EYc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 848w, https://substackcdn.com/image/fetch/$s_!8EYc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 1272w, https://substackcdn.com/image/fetch/$s_!8EYc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F727d38c2-335b-4de5-813c-52dee1d6186e_2724x2154.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Warning</strong>: Notice that the diagram now it changed compared with the 2nd post series. A new team was created to handle the shared services. This is team was named core team. Later I share why the name <em>core</em> was bad, and why the approach had a good intentions yet was a bad implementation and why evolving into platform made sense.</p><p>If we look at each service, the architecture was ports and adapters. If we make a diagram to show the size of each layer, it would look like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wJK8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wJK8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 424w, https://substackcdn.com/image/fetch/$s_!wJK8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 848w, https://substackcdn.com/image/fetch/$s_!wJK8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 1272w, https://substackcdn.com/image/fetch/$s_!wJK8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wJK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png" width="372" height="372" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1272,&quot;width&quot;:1272,&quot;resizeWidth&quot;:372,&quot;bytes&quot;:99112,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wJK8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 424w, https://substackcdn.com/image/fetch/$s_!wJK8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 848w, https://substackcdn.com/image/fetch/$s_!wJK8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 1272w, https://substackcdn.com/image/fetch/$s_!wJK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ef0001-2de1-4297-a589-39f4c7774062_1272x1272.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We can notice a couple of things:</p><ol><li><p>Services have few domain logic.</p></li><li><p>Services have a lot of network logic. </p></li></ol><p>Domain logic poor-network rich logic service. And it made sense, we chosen an off-the-shelf solution that would handle a huge part of our business logic as it wasn&#8217;t a business differentiation but needed to run our business. So, we were calling a lot those external systems to handle the majority of use cases.</p><p>Two main questions raised:</p><ol><li><p>Why ports and adapters if we mainly pass payloads around and we have very specific business logic?</p><ol><li><p>The product complexity isn&#8217;t that high. It looks like an &#8220;state machine&#8221; plus smart component that connects specific.</p></li><li><p>But we are connecting to a lot of other systems that we don&#8217;t know if they will change the API or something. So, we want to protect ourselves from future changes regardless of the system. We apply this to all systems we integrate with.</p></li></ol></li><li><p>Why that many ACL? From what we are protecting from?</p><ol><li><p>When a team <em>requires</em> a change on the shared services owned by core team, it impacts all the other teams and we need to protect ourselves from those unanticipated changes. That gives us as a team the possibility to be autonomous to change things without breaking the others systems.</p></li><li><p>Each time we change a property in a system, we need to update the ACL of other systems we control. Usually, a change on one shared service, implies a change at least to two more services, ours and the BFF (backend for frontend), which we also did with Ktor and Ports and Adapters.</p></li></ol></li></ol><p>The conversation started at architectural level, but the problem wasn&#8217;t there. Focusing on the technology ignoring the human aspect of the problem would let us on the wrong direction.</p><p>The architecture and approach was a reflect of how the organization introduced change, who made decisions, and different incentives mechanisms.</p><p>In order to understand what was causing the outcome, I focused on the people.</p><p>I used:</p><ul><li><p><a href="https://github.com/ddd-crew/context-mapping/">Context Mapping</a> from Domain-Driven Design strategic patterns.</p></li><li><p><a href="https://github.com/ddd-crew/core-domain-charts">Core domain charts</a> to understand the domain complexity.</p></li><li><p>Job expectations.</p></li></ul><h1>Understanding</h1><h2><a href="https://github.com/ddd-crew/context-mapping/">Context mapping</a></h2><p>Context mapping helps you understand the teams relationship and how flow is handled by teams.</p><p>I went to the engineers and asked how they saw the context mapping of the tribe services from a teams perspective.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eBSs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eBSs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 424w, https://substackcdn.com/image/fetch/$s_!eBSs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 848w, https://substackcdn.com/image/fetch/$s_!eBSs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 1272w, https://substackcdn.com/image/fetch/$s_!eBSs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eBSs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png" width="1219" height="633" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:633,&quot;width&quot;:1219,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110436,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eBSs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 424w, https://substackcdn.com/image/fetch/$s_!eBSs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 848w, https://substackcdn.com/image/fetch/$s_!eBSs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 1272w, https://substackcdn.com/image/fetch/$s_!eBSs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e652e5c-efc1-41f6-827c-46fe7bac501d_1219x633.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The diagram makes sense my itself, but misses how change happens. </p><ul><li><p>Aleix: How do you introduce change to those shared services?</p></li><li><p>Team: We share the blocking dependency and then our tech lead and core team tech lead negotiates when the change can be ready.</p></li><li><p>Aleix: How often do you need to request changes?</p></li><li><p>Team: Weekly, we strongly depend on them due to they being the door to our external partner systems.</p></li><li><p>Aleix: And they are unable to make the change?</p></li><li><p>Team: We just do it ourselves if we need it with high priority.</p></li></ul><p>Let&#8217;s update the diagram with the new findings.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H6UK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H6UK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 424w, https://substackcdn.com/image/fetch/$s_!H6UK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 848w, https://substackcdn.com/image/fetch/$s_!H6UK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 1272w, https://substackcdn.com/image/fetch/$s_!H6UK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H6UK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png" width="502" height="278.2311320754717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1272,&quot;resizeWidth&quot;:502,&quot;bytes&quot;:125044,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H6UK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 424w, https://substackcdn.com/image/fetch/$s_!H6UK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 848w, https://substackcdn.com/image/fetch/$s_!H6UK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 1272w, https://substackcdn.com/image/fetch/$s_!H6UK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0bf3df5-1c41-47d2-a78b-a64b1fcbbb2b_1272x705.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We had a consumer-supplier relationship with the customer facing teams and the internal core team. Which means that the team C was having problems keeping up with the high demands of customer facing teams that caused them to not be able to improve the services.</p><p>I added the one box per team, remember that the core team had more than 5 services they owned that customer facing teams consumed and required changes to keep building their products.</p><h3>Analysis</h3><p>When you have a lot of anti-corruption layers and consumer-supplier team relationships it can be an smell that something is off.</p><p>As engineers, our main tool to protect from change is code. It can manifest as anti-corruption layers for example. Yet, the key problem of why they needed to protect themselves from constant changes is how change happened in the organization.</p><p>It happened at product manager and tech lead level.</p><p>This situation made each group of people to make their best to keep the delivery forward but making the whole organization slower.</p><h2><a href="https://github.com/ddd-crew/core-domain-charts">Core domain charts</a></h2><blockquote><p>When people is measured by their impact, they will work on the core business domains.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gRlS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gRlS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gRlS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gRlS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gRlS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gRlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg" width="1456" height="926" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:926,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt text&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt text" title="alt text" srcset="https://substackcdn.com/image/fetch/$s_!gRlS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gRlS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gRlS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gRlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26278302-f28a-487a-b8f5-7609dfa17ee6_2507x1595.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Aleix: Let&#8217;s list our domains and services that we own as a tribe.</p></li><li><p>Team: Sure, here it is!</p></li><li><p>Aleix: Thank you! Let&#8217;s introduce the DDD subdomain types.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EK6P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EK6P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 424w, https://substackcdn.com/image/fetch/$s_!EK6P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 848w, https://substackcdn.com/image/fetch/$s_!EK6P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 1272w, https://substackcdn.com/image/fetch/$s_!EK6P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EK6P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png" width="1456" height="734" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df8130db-0906-4a1b-8ded-af766de03468_2816x1420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:734,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:351219,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EK6P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 424w, https://substackcdn.com/image/fetch/$s_!EK6P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 848w, https://substackcdn.com/image/fetch/$s_!EK6P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 1272w, https://substackcdn.com/image/fetch/$s_!EK6P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf8130db-0906-4a1b-8ded-af766de03468_2816x1420.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Aleix: How would you define your services based on those types?</p></li><li><p>Team: (summarized) What we do is core, what we don&#8217;t do isn&#8217;t core.</p></li></ul><p>There is a lot of truth behind those words.</p><p>If your performance review is based on your business impact, you need to work on core stuff. Otherwise, how do you demonstrate your contribution to the business success?</p><ul><li><p>Team: We already did this exercise, we already applied DDD to our services.</p></li><li><p>Aleix: Applied DDD to the services? Could you elaborate that please?</p></li><li><p>Team: Yes. Our core services need to handle a lot of complexity, and we adopted a ports and adapters architecture to allow fast iteration and high quality software. That&#8217;s why we have created a microservice per domain. They focus to do their domain responsibility super well, and then we allow others to interact with each one so that we reuse domain logic.</p></li></ul><p>This is an argument that I heard too often. It looks OK at first, but indeed, from that argument to the reality there is a full world in the middle.</p><p>Let&#8217;s break the argument and analyse it separately to uncover the consequences.</p><p><em><strong>Our core services need to handle a lot of complexity</strong></em><strong>.</strong></p><p>There are no <em>core services</em>, there are core subdomains that might or might not be a service. They can be an application, a module within the monolith, an actual service.</p><p>I wouldn&#8217;t expect a product that&#8217;s forming to handle a huge amount of complexity at first. I assume they need to fulfill two properties first before you start sensing the high complexity you are promised for:</p><p>You should validate that the domain is core working with product and business to verify it is a competitive advantage for your organization. In order to verify that&#8217;s a competitive advantage, you need to accept a lot of rapid iteration (change often), and when you start sensing the direction, you start seeing how the complexity materializes.</p><p>If your understanding of a core domain is complexity, you will force it to be there by adding unnecessary complexity. Some people adds CQRS, ES, and P&amp;A arch. because they read on a blog post that&#8217;s the best way to handle complexity.</p><p><em><strong>We adopted a ports and adapters architecture to allow fast iteration and high quality software.</strong></em></p><p>That&#8217;s nonsense argument.</p><p>Ports and adapters architecture has certain good properties on a specific contexts, but they require training and experience from the team to not create more harm than good by miss applying those patterns blindly and creating unnecessary complexity. Causing more cognitive load on people for simpler use cases that a CRUD model works fine. I don&#8217;t even mention onboarding people.</p><p>Ports and adapters isn&#8217;t a sign of high quality software. You can create Big Ball of Mud with ports and adapters and other architectures for multiple reasons. Quality software is a combination of multiple things, an architectural style doesn&#8217;t guarantee quality by itself.</p><p><strong>That&#8217;s why we have created a microservice per domain</strong></p><p>&#128681; This sentence shows a low understanding of domain-driven design. A misunderstanding of what a domain is could lead into way to small microservices. How many times you found a microservices with an entity name? User microservice, Product microservice, Payments microservice.</p><p><strong>They focus to do their domain responsibility super well, and then we allow others to interact with each one so that we reuse domain logic.</strong></p><p>Those aren&#8217;t domains but entities, entities that start calling each other and you just created a distributed monolith.</p><p>Focus on understanding the domain, its bounded contexts, and its subdomains. Team-sized microservices is a good rule of thumb.</p><ul><li><p>Aleix: Did you consider alternative architectures like leveraging more Spring Boot out of the box features or bigger microservices to avoid all those network calls?</p></li><li><p>Team: Well, indeed no. In order to become senior developers, we need to show that we know how to do microservices and ports and adapters in an autonomous way. So, part of my performance review objectives was to show that I was able to deliver that core domain alone.</p></li></ul><h3>Analysis</h3><p>There were multiple things that caused microservices purification and ports and adapters everywhere.</p><ul><li><p>People performance review to be senior required to show that they needed to know ports and adapters and microservices.</p></li><li><p>People are measured by business impact, therefore everyone wants to work on core domains.</p></li><li><p>Core domains that need to handle high level of complexity, therefore they need to follow the senior best practices.</p></li></ul><p>The reason of all the accidental complexity was based on the wrong incentives. Plus, those incentives were deeply established within the engineering culture.</p><p>People expected high level of autonomy within the teams based on those architectural choices, but ignored how change happened within the organization and why they weren&#8217;t unable to be fully autonomous.</p><p>When exists a separation between the developers and who makes decisions, the architecture will be a reflect of that reality. Yet, because we only see our context, we will apply local maxima solutions that misses the overall context.</p><div class="pullquote"><p>Architecture is a signal of what&#8217;s happening, but we need to look somewhere else to understand which changes will need to be made to improve.</p></div><h2>Direction</h2><p>We revisit our between teams agreements to optimize for tribe velocity instead of team velocity due to our current nature of work.</p><p>We acknowledge that most of our use cases are proxies to an external partner, and we have a very specific use cases that show business complexity advantage. We optimize for this reality.</p><h2>Coherent Actions</h2><h3>Core team becomes a platform team</h3><p>The core team will become platform team with a clear purpose of improving the DevEx of integrating with those services by making them more stable and change them less frequently. Instead of big services, we will do a thin platform with well proven and supported use cases.</p><p>Removing the name core  from the team, allowed us to realize that those services weren&#8217;t core subdomains but supportive subdomains from a DDD point of view. Allowing people to change the expectations.</p><p>Instead of those services chaining a lot, they needed to be stable and just to a single purpose. Connect with the external provider, and do it in a way that helped others not be exposed to the external provider complexities.</p><p>We wanted to reduce cognitive load for the stream-aligned teams consuming from the platform. And in order to do that, we needed them to be sure they can trust the platform.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rk5M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rk5M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 424w, https://substackcdn.com/image/fetch/$s_!rk5M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 848w, https://substackcdn.com/image/fetch/$s_!rk5M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 1272w, https://substackcdn.com/image/fetch/$s_!rk5M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rk5M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png" width="520" height="553.394495412844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1508,&quot;width&quot;:1417,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:154466,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rk5M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 424w, https://substackcdn.com/image/fetch/$s_!rk5M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 848w, https://substackcdn.com/image/fetch/$s_!rk5M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 1272w, https://substackcdn.com/image/fetch/$s_!rk5M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1af8f6f2-4db4-4af4-bbe4-2ebc6bb61ff7_1417x1508.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The way we did it was the platform team to collaborate with the steam-aligned teams to understand their needs and create collaboration agreements that would fulfill both parts and improve trust.</p><h3>Conformist instead of anti-corruption layer for internals</h3><p>When the platform team understood the team needs. We moved from a fast changing internal platform APIs to stable ones. When the exposed model didn&#8217;t change often, we could take advantage of that stability to improve team velocity adopting that external model.</p><p>If we ensure backwards compatibility, stability, and other stuff. We can take advantage of that system to give speed to others.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jAQM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jAQM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 424w, https://substackcdn.com/image/fetch/$s_!jAQM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 848w, https://substackcdn.com/image/fetch/$s_!jAQM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 1272w, https://substackcdn.com/image/fetch/$s_!jAQM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jAQM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png" width="498" height="344.08516483516485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1006,&quot;width&quot;:1456,&quot;resizeWidth&quot;:498,&quot;bytes&quot;:187524,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jAQM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 424w, https://substackcdn.com/image/fetch/$s_!jAQM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 848w, https://substackcdn.com/image/fetch/$s_!jAQM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 1272w, https://substackcdn.com/image/fetch/$s_!jAQM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b9ec839-c216-4a31-a4a4-488d54c1295c_1715x1185.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Adopting a conformist approach to a stable system gives teams speed. The opposite isn&#8217;t true.</p><h3>Replace Ktor and Expose with Spring Boot</h3><p>Ktor had a lot of custom build stuff that were repeating cross services. Adding a new use case was easier in the old way than in the new way.</p><p>Introducing Spring Boot helped us to reduce the inertia to the new approach and embracing the coherent actions we were taking forward. It helped us establish, this is how we do it now.</p><h3>Ports and Adapters provided by Spring Boot with CRUD models and some domain models</h3><p>We will adopt <em>transactional model</em> in those use cases that aren&#8217;t domain rich but network intensive. We will create a rich domain model only on certain use cases.</p><p>We will use extensively Spring Boot build in features to improve resiliency and reduce custom build adapters.</p><p>By adopting a conformist approach between our customer facing services and platform services, we will reduce the ACL overhead we had.</p><p>Most of the internal models looked the same. We had analysed the DTOs at network, entity, and database and they had very minor changes.</p><p>We reduced the amount of DTOs between entity and database as they were CRUD models, and we kept the Response and entity parsing to ensure we didn&#8217;t break any of the existing API contracts.</p><p>So, we started to move away from ports and adapters for the new use cases in favor of MVC+S.</p><h3>Evolve the senior+ engineer expectations</h3><p>We stop promoting people only in case they show they can do a microservice with a ports and adapters architecture. That&#8217;s no longer an incentive for promotion. Instead, they need to show contextual awareness and aim for the right amount of complexity solution that will allow it to evolve as the business evolves. Evolutionary architecture skills become more relevant than creating complex systems for future (and unknown) business complexity from the beginning.</p><p>We did this on the next performance review to not affect the current ongoing expectations. No body wants to be pushing in one direction and the management changes the expectations at last moment and it affects people performance review. This change needed to be done with caution on when to introduce it.</p><h1>Learnings</h1><ul><li><p>Replacing Ktor by Spring Boot and coupling to the framework was our way to materialize the coherent actions we were taking. It was our way to signal to the engineering teams, this is the new way of doing things.</p></li><li><p>Replacing customized ports and adapters architecture by leveraging Spring Boot components helped people to reduce their cognitive load and learn from the courses available on Internet.</p></li><li><p>Acknowledge that not all our services were core, helped to reduce the people&#8217;s expectations of <em>this needs to be high quality, and what the company says it is quality is ports and adapters and microservices</em>.</p></li><li><p>Changing how you measure people&#8217;s performance is hard and it needs to be taking with care and understanding the people fears and needs.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Merging two teams for fast flow]]></title><description><![CDATA[Fintech Engineering Strategy. Post III]]></description><link>https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Sun, 22 Oct 2023 08:00:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.</em></p><div><hr></div><p><strong>Fintech Engineering Strategy Post Series</strong></p><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team">Post I. A legacy, a deadline, and no team.</a></p></li></ul><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally.</a></p></li><li><p>Post III. Merging two teams for fast flow. [This post]</p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture">Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow">Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system">Post VI. Reducing the chaos before addressing the complex socio-technical system</a></p></li></ul><div><hr></div><p>As Team A, we started to perform and deliver at a good pace.</p><p>We were proud of our rhythm of continuous improvement and continuous learning, and the <a href="https://dora.dev/">DORA metrics</a> started to be high-performing most of the time.</p><p>We stopped being an isolated team as the practices and methodologies got internalized by the team members, and we got exposed to the tribe's challenges.</p><p>The tribe had three products owned by three teams with the same name, let&#8217;s recall that we are naming them A, B, and C. We were the Team A, but the business bet wasn&#8217;t the product A.</p><p><strong>The business bet was the product B owned by team B. </strong>They got all the business attention and pressure.</p><p>The Team B shared some difficulties in delivering the product, like:</p><ul><li><p>Lack of order and unpredictable results.</p></li><li><p>Managing individuals.</p></li><li><p>Heroics.</p></li><li><p>Stress.</p></li></ul><p>A lot of similarities to what I shared with you in the <a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">previous post</a>. Why not apply the same thing in this context? Because context matters.</p><p>A key difference was that Product A was mainly company employees, while Product B was a mix of company employees and external consultancy. </p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;similar \\ difficulties + different\\ context \\neq same\\ solution&quot;,&quot;id&quot;:&quot;RSCXUCCIWE&quot;}" data-component-name="LatexBlockToDOM"></div><p>As we learned, we had some people leaving the team and we had the <em>opportunity to operate under the radar</em> until we adopted the methodologies.</p><p>It would have been a mistake to apply the same approach.</p><p>We needed to think as a tribe how to address this high-stake business challenge.</p><h2>Understanding the organization chart</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zNiv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zNiv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 424w, https://substackcdn.com/image/fetch/$s_!zNiv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 848w, https://substackcdn.com/image/fetch/$s_!zNiv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 1272w, https://substackcdn.com/image/fetch/$s_!zNiv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zNiv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png" width="1456" height="344" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:344,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:387782,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zNiv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 424w, https://substackcdn.com/image/fetch/$s_!zNiv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 848w, https://substackcdn.com/image/fetch/$s_!zNiv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 1272w, https://substackcdn.com/image/fetch/$s_!zNiv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe52e8f4-2e96-4cce-b701-a103f055176e_5234x1235.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The company was super big. It had a lot of products, user personas, and departments.</p><p>A tribe consisted of:</p><ul><li><p>Tribe leadership with Product, Business, Design, and Engineering.</p></li><li><p>Different team types:</p><ul><li><p>Product-Engineering</p></li><li><p>Operations</p></li><li><p>Customer-Success</p></li></ul></li><li><p>Teams were meant to deliver with as high autonomy as possible</p></li><li><p>Reporting lines were quite strict. It created information flow too fast between types of teams due to most information being passed either in leadership 1:1s within the same department or slower between &#8220;departments&#8221;, as they required a meeting with all people involved which were usually led by business.</p></li><li><p>Teams were able to gather all the context from different people and departments as the culture of seeking the context was super present and people were open to sharing the context as much as possible. This was the unofficial structure of how to gather information, by creating human relationships to support each other outside the formal communication channel. It worked quite well even though it created pressure within the organization of constant communication to have the whole context in a rapidly changing organization.</p></li></ul><h2>Understanding the flow of change</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w-zl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w-zl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 424w, https://substackcdn.com/image/fetch/$s_!w-zl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 848w, https://substackcdn.com/image/fetch/$s_!w-zl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 1272w, https://substackcdn.com/image/fetch/$s_!w-zl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w-zl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png" width="1456" height="1902" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1902,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1488170,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w-zl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 424w, https://substackcdn.com/image/fetch/$s_!w-zl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 848w, https://substackcdn.com/image/fetch/$s_!w-zl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 1272w, https://substackcdn.com/image/fetch/$s_!w-zl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbe3f44d-4cfe-4cff-85d3-58c6e2df3042_3831x5005.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Tribe-level leadership had a key role in pushing progress further. As the products required more teams, the coordination of the initiatives was part of the tribe leadership responsibilities, creating a dynamic on how to distribute work between teams that are needed to deliver a new product feature or a business capability.</p><p>As the cost of coordinating and collaborating between multiple teams was higher, we added more importance to planning. It created pressure on tribe leadership to <em>be more correct</em> and unable to collaborate as much as they would like with the teams to have a shared understanding. Making the relationship between tribe and team leadership a management-heavy activity.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!92ZZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!92ZZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 424w, https://substackcdn.com/image/fetch/$s_!92ZZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 848w, https://substackcdn.com/image/fetch/$s_!92ZZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 1272w, https://substackcdn.com/image/fetch/$s_!92ZZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!92ZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png" width="1456" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4e752fb-2668-4368-a739-2e49474ca020_1814x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!92ZZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 424w, https://substackcdn.com/image/fetch/$s_!92ZZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 848w, https://substackcdn.com/image/fetch/$s_!92ZZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 1272w, https://substackcdn.com/image/fetch/$s_!92ZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e752fb-2668-4368-a739-2e49474ca020_1814x342.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Here was the interesting behaviour, if an initiative doesn&#8217;t fit in a team backlog, it is pushed into another team&#8217;s backlog even though it&#8217;s not &#8220;completely&#8221; their domain.</p><p>As domains and responsibilities were blurry, it created a flexible backlog which helped business initiatives to be prioritized each quarter at the same time it started to create technical debt as a solution could be started by one team, and then it made a handover to another team. Ownership wasn&#8217;t there.</p><p>This worked when the domain complexity was reasonable, which helped with fast business iteration until the domain complexity wasn&#8217;t manageable anymore and slowed down the teams&#8217; velocity until the point that it was hard to deliver value.</p><h2>High-stake business challenge</h2><p>The business potential of Product B is huge. The need to release the product as soon as possible the business opportunity is there and other players are moving ahead.</p><h2>Vision</h2><p>We saw the engineering practices of Team A performing, we bet that investing in Team B to adopt them will help Product B to be generally available sooner.</p><p>We considered multiple approaches:</p><ul><li><p>An enabling team to help Team B with the capability gaps that we identified.</p></li><li><p>Split the domain into two teams.</p></li><li><p>Merge Team A into Team B, and freeze the Product A development.</p></li></ul><p>We decided to merge both teams and remove the handover from the tribe-level leadership so that Team B can be more autonomous E2E.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FTu_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FTu_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 424w, https://substackcdn.com/image/fetch/$s_!FTu_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 848w, https://substackcdn.com/image/fetch/$s_!FTu_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 1272w, https://substackcdn.com/image/fetch/$s_!FTu_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FTu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png" width="1456" height="1772" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1772,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1432709,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FTu_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 424w, https://substackcdn.com/image/fetch/$s_!FTu_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 848w, https://substackcdn.com/image/fetch/$s_!FTu_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 1272w, https://substackcdn.com/image/fetch/$s_!FTu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5114904-d6da-426b-960d-697218e1a0a6_4113x5005.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Why merge both teams and not the other options?</h3><ul><li><p><strong>Enabling Team</strong></p></li></ul><p>Team A was able to adopt new practices by being under the radar and not having a huge delivery pressure, giving the team the time and space to fail and learn. In a situation of high delivery pressure, it doesn&#8217;t have the best conditions for an Enabling Team and facilitation to succeed.</p><p>The tendency in this situation is to treat the enabling team as new team members to help with the delivery as more developers. Breaking the purpose of facilitation of an enabling team to fill the team capability gaps.</p><ul><li><p><strong>Split the domain into two teams</strong></p></li></ul><p>Splitting the domain would have added a lot of pressure on the leadership team and Team B. You need to collaborate first to:</p><ol><li><p>Understand the business and product context.</p></li><li><p>Understand the source code.</p></li><li><p>Decide which area to split into two for team responsibilities.</p></li><li><p>Coordinate the new collaboration with Team H (dependent on Team Product B) and the Operations Team. Increasing the pressure on leadership for coordination. (More managers here please!)</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2_1-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2_1-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 424w, https://substackcdn.com/image/fetch/$s_!2_1-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 848w, https://substackcdn.com/image/fetch/$s_!2_1-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 1272w, https://substackcdn.com/image/fetch/$s_!2_1-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2_1-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png" width="1456" height="1235" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1235,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1126720,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2_1-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 424w, https://substackcdn.com/image/fetch/$s_!2_1-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 848w, https://substackcdn.com/image/fetch/$s_!2_1-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 1272w, https://substackcdn.com/image/fetch/$s_!2_1-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93cfdc55-6220-4901-9a17-26438cd0c656_4573x3879.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The possibility of just being one big team because of the constant required coordination but with splitter dailies was a plausible reality.</p><p>We discarded both options in favor of merging teams.</p><h4>What about Product A development?</h4><p>We were able to negotiate with the business the priorities, and after assessing product B's potential vs product A potential, it was fine to freeze the development until we overcome this situation.</p><h3>Merging both teams</h3><p>By being part of the same team, we could introduce some dynamics that would improve fast knowledge transfer such as pairing or mob programming.</p><ul><li><p>Team B shares the business, product, and code knowledge with new team members from Team A.</p></li><li><p>Previous Team A members are able to share the practices and methodologies with Team B members.</p></li><li><p>With pairing, we can create a higher trust relationship between people so that we have a strong relationship in a high-pressure context.</p></li></ul><p>Win-win situation.</p><p>I also wanted to reduce the amount of coordination possible between teams at the cost of coordinating 12 team members.</p><p><strong>Why?</strong></p><p>Isn&#8217;t 12 people too much? We knew from past experience that some people left due to the new practices, we expected that this would happen and it would reduce the team size in the following weeks.</p><p>Indeed, it was what happened. At least 6 people left the company. It was key to introduce pairing to fast knowledge transfer, otherwise, the impact of that decision would have been huge within the organization. Impact on the delivery of the product, which was the key reason why we started this merge.</p><p>So, we improved internal knowledge transfer without the increase of cross-team coordination/collaboration. An essential point for a fast flow of change.</p><h2>Removing the leadership handover</h2><p>Changing organizational behavior that has been there for a long time is hard. It becomes part of the culture.</p><blockquote><p>&#8220;<em>We always did it this way&#8221;</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Erx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Erx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 424w, https://substackcdn.com/image/fetch/$s_!3Erx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 848w, https://substackcdn.com/image/fetch/$s_!3Erx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 1272w, https://substackcdn.com/image/fetch/$s_!3Erx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Erx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png" width="1456" height="1371" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1371,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:774944,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3Erx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 424w, https://substackcdn.com/image/fetch/$s_!3Erx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 848w, https://substackcdn.com/image/fetch/$s_!3Erx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 1272w, https://substackcdn.com/image/fetch/$s_!3Erx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d768d14-6769-42dc-abab-94faf1544898_3830x3607.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>At ThoughtWorks, I learned a way to make the decision process more collaborative and to help teams own the process E2E, using the <a href="https://caroli.org/en/livro/lean-inception-how-to-align-people-and-build-the-right-product/">Lean Inception</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Td9I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Td9I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Td9I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Td9I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Td9I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Td9I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg" width="338" height="417.28395061728395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:810,&quot;resizeWidth&quot;:338,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Td9I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Td9I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Td9I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Td9I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8254db37-c5c0-4f27-8216-2d747068c8f2_810x1000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Lean Inception has a lot of positive outcomes, the one I needed was <strong>aligning people to build the right product</strong>.</p><p>Instead of just receiving a backlog, Lean Inception focuses on building it collaboratively by having a conversation with all the important people in the room.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VASs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VASs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VASs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VASs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VASs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VASs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg" width="720" height="405" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:405,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VASs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VASs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VASs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VASs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf8e36c-18d5-4067-a2ca-067dc63207cc_720x405.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>Even though the product was quite defined, I considered Lean Inception to be a great fit for:</p><ol><li><p>Aligning people and knowledge transfer. Team A new joiners needed to ask people to the business experts.</p></li><li><p>Reduce scope. What&#8217;s done, what&#8217;s pending, and what&#8217;s essential to the first release.</p><ol><li><p>Moving from we need everything to iterate after releasing.</p></li></ol></li><li><p>Create a shared ownership of what is being decided.</p><ol><li><p>If I receive a backlog, my buy-in is lower compared to when I understand where it comes from and my opinion is heard.</p></li></ol></li></ol><p>One key reason why waiting to have it all was that the delivery speed was slow. If I&#8217;m able to release every few days, we can plan ahead and know that we are able to handle new requirements at a good pace. On the other hand, if we take months to deliver something, we don&#8217;t have the flexibility to release it now and fix it as we go.</p><p>Delivery speed gives the option to release sooner rather than later.</p><p>That&#8217;s why we adopted many of the Team A dynamics to improve the DORA metrics to create the environment that allows us to release without a &#8220;feature-complete product&#8221;. It gives confidence not only to the engineering team but also to the whole people involved in the product.</p><h2>The end flow of change based on that change was the next</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kgEY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kgEY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 424w, https://substackcdn.com/image/fetch/$s_!kgEY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 848w, https://substackcdn.com/image/fetch/$s_!kgEY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 1272w, https://substackcdn.com/image/fetch/$s_!kgEY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kgEY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png" width="1456" height="1896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff952070-2f6d-4232-b058-323751aab82e_3841x5003.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1170032,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kgEY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 424w, https://substackcdn.com/image/fetch/$s_!kgEY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 848w, https://substackcdn.com/image/fetch/$s_!kgEY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 1272w, https://substackcdn.com/image/fetch/$s_!kgEY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff952070-2f6d-4232-b058-323751aab82e_3841x5003.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The leadership didn&#8217;t behave as a platform or enabling team (yet), but they were part of the product definition within the team.</p>]]></content:encoded></item><item><title><![CDATA[Building a product vision, a team, and replacing Ktor with Spring Boot incrementally]]></title><description><![CDATA[Fintech Engineering Strategy. Post II]]></description><link>https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Fri, 13 Oct 2023 12:42:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tNm6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Fintech post series aims to share my personal experience as an engineer manager and later on as head of engineering, which were the challenges, the decisions, and the good and bad outcomes they had. The content has been adapted to keep the decisions without disclosing internal information.</em></p><div><hr></div><p><strong>Fintech Engineering Strategy Post Series</strong></p><ul><li><p><a href="https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team">Post I. A legacy, a deadline, and no team.</a></p></li></ul><ul><li><p>Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally. [This post]</p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow">Post III. Merging two teams for fast flow</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture">Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow">Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system">Post VI. Reducing the chaos before addressing the complex socio-technical system</a></p></li></ul><div><hr></div><p>After the first deadline, we had time to understand the product vision, build the team, and start making steps forward to reduce the technical debt in the areas that could impact the coming deliveries.</p><p>The first thing that happened was that people who joined us for the delivery went back to their teams, so we started opening two positions, which we filled with internal rotation from another team within the tribe so that they would have already the context and be familiar with the source code as permanent moves.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Aleix's Learnings is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tNm6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tNm6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 424w, https://substackcdn.com/image/fetch/$s_!tNm6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 848w, https://substackcdn.com/image/fetch/$s_!tNm6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 1272w, https://substackcdn.com/image/fetch/$s_!tNm6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tNm6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png" width="1456" height="1232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1232,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:467115,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tNm6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 424w, https://substackcdn.com/image/fetch/$s_!tNm6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 848w, https://substackcdn.com/image/fetch/$s_!tNm6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 1272w, https://substackcdn.com/image/fetch/$s_!tNm6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d05b497-f54c-4b35-a1b9-1724ac52f26a_2603x2203.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The product that we owned as team A, let&#8217;s call it product A, is a legacy at least 1-year-old, which was in production for a small set of users before being generally available for all user base.</p><p>The tribe had three products, let&#8217;s call them A, B, and C. The order in which things happen is relevant.</p><ol><li><p>The current tribe started as one team.</p></li><li><p>The team had the goal to build three products with an expectation of lower complexity by externalizing the high complexity to external partners.</p></li><li><p>At the beginning, <strong>the product A was the entry for all other products</strong>.</p></li><li><p>The products turned out to be more complex than expected.</p></li><li><p>The initial team left and three teams formed to drive those products forward.</p></li></ol><h2>Context</h2><h3>Team</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bt_m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bt_m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 424w, https://substackcdn.com/image/fetch/$s_!Bt_m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 848w, https://substackcdn.com/image/fetch/$s_!Bt_m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 1272w, https://substackcdn.com/image/fetch/$s_!Bt_m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bt_m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png" width="1456" height="462" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:462,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:162586,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Bt_m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 424w, https://substackcdn.com/image/fetch/$s_!Bt_m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 848w, https://substackcdn.com/image/fetch/$s_!Bt_m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 1272w, https://substackcdn.com/image/fetch/$s_!Bt_m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd19332e4-0124-423f-9b2d-e2e898a88d26_2281x724.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Architecture</h3><h4>Macro</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZqJK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZqJK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 424w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 848w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1272w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png" width="1456" height="1389" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1389,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2282124,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZqJK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 424w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 848w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1272w, https://substackcdn.com/image/fetch/$s_!ZqJK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77abb446-4747-47e5-a73a-9ed0cb35cb1a_2274x2170.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As you can guess, a change in any product will impact many shared services, creating the need for coordination between teams and adding processes to prevent a change in one product from breaking the other.</p><h4>Micro</h4><p>The service has a &#8220;ports and adapters architecture&#8221; using <a href="https://ktor.io/">Ktor</a> and (IIRC) <a href="https://github.com/JetBrains/Exposed">Exposed</a> for the persistence layer.</p><p>We can find a lot of duplicate code as DTOs between the presentation layer and the persistence layer, while the domain logic is almost anemic.</p><p>We need to follow the HTTP calls between services to understand the user journey as a whole.</p><p>There is a good enough test suite that covers the main use cases for each service.</p><h3>Team dynamics and characteristics</h3><p>The leadership and the team members that joined the team shared their pain points and I was able to see some areas of attention such as:</p><ul><li><p>Lack of order and unpredictable results.</p></li><li><p>Stress.</p></li><li><p>Managing individuals.</p></li><li><p>Heroics.</p></li><li><p>Onboardings require three months until people become confident about changing code.</p></li></ul><p>Using the Wardley Mapping Doctrine, I could identify some behavior as Phase 1.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GQMi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GQMi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 424w, https://substackcdn.com/image/fetch/$s_!GQMi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 848w, https://substackcdn.com/image/fetch/$s_!GQMi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 1272w, https://substackcdn.com/image/fetch/$s_!GQMi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GQMi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png" width="1456" height="606" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:606,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:290543,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GQMi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 424w, https://substackcdn.com/image/fetch/$s_!GQMi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 848w, https://substackcdn.com/image/fetch/$s_!GQMi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 1272w, https://substackcdn.com/image/fetch/$s_!GQMi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc6cb03-c1e8-4966-a401-3d6c8ae6fb6e_2592x1078.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://doctrine.wardleymaps.com/">Wardley Mapping - Doctrine</a></figcaption></figure></div><p>Using the Kanban Maturity Model, I could also identify the team as ML0 Oblivious.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DfGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DfGO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 424w, https://substackcdn.com/image/fetch/$s_!DfGO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 848w, https://substackcdn.com/image/fetch/$s_!DfGO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 1272w, https://substackcdn.com/image/fetch/$s_!DfGO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DfGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2119974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DfGO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 424w, https://substackcdn.com/image/fetch/$s_!DfGO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 848w, https://substackcdn.com/image/fetch/$s_!DfGO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 1272w, https://substackcdn.com/image/fetch/$s_!DfGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58f1828-cdcf-4ec3-9099-e40d0af5c967_2398x1366.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://berriprocess.com/en/kanban-maturity-model/">Link</a></figcaption></figure></div><h2>The business challenge</h2><p>We need to push the product forward to make it generally available. We need predictability and introduce change more easily.</p><h2>Engineering Strategy</h2><h3>Diagnosis</h3><p>We detect low-maturity engineering practices followed by several architectural decisions that are slowing down today given the team's knowledge. The team members are split as frontend and backend, creating the need for coordination and splitting the user stories as subtasks that require integration.</p><p>The business needs evolved and the product and engineering haven&#8217;t kept up due to the lack of people working on the product for a long time.</p><p>There are team behaviors based on the previous context that might not apply to today&#8217;s team needs.</p><h3>Direction</h3><p>We will start behaving as a team and moving away from individual heroics. We will work on creating processes and practices that would lead to the predictability of outputs.</p><p>The practices that we adopt are aligned with <a href="https://en.wikipedia.org/wiki/Extreme_programming">XP</a> and aligned with creating end-to-end ownership of the feature to be delivered by up-skilling team members to be full-stack developers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LqXa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LqXa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 424w, https://substackcdn.com/image/fetch/$s_!LqXa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 848w, https://substackcdn.com/image/fetch/$s_!LqXa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 1272w, https://substackcdn.com/image/fetch/$s_!LqXa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LqXa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/265ca58d-3270-495c-b008-3571673895aa_2398x1366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2111952,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LqXa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 424w, https://substackcdn.com/image/fetch/$s_!LqXa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 848w, https://substackcdn.com/image/fetch/$s_!LqXa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 1272w, https://substackcdn.com/image/fetch/$s_!LqXa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F265ca58d-3270-495c-b008-3571673895aa_2398x1366.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Coherent Actions</h3><h4>Isolate the team</h4><p>We will keep the team isolated from the rest of the tribe deliveries so that we can focus on adopting the right practices and mature the team before we&#8217;re exposed to organizational goals.</p><h4>Adopt Spring Boot over Ktor and Exposed</h4><p>We need faster onboarding and lower maintenance for our services. We expect by adopting Spring Boot to be able to adopt off-the-shelf capabilities such as resilient mechanisms and integrations with commodity solutions like observability, queue systems, and testing frameworks.</p><h4>Change the job descriptions and hiring process</h4><p>Move the job descriptions from backend/frontend specializations into a product engineering job description, and adapt the hiring process for the new job expectations.</p><h4>Start adopting the full-stack mindset and upskill team members</h4><p>We need to train people inside the team for the technologies that they aren&#8217;t familiar with and help them own a user story end to end instead of waiting on the integration between components. We expect a lower lead for chances and cycle time.</p><p>The training needs to be followed with slack time to practice with the current code base. Pairing is encouraged between people of different skills to boost knowledge transfer.</p><h4>Remove established processes until things break</h4><p>We are a new team, and we can decide how can we work within the company principles and guidelines. When in doubt, challenge the status quo. It is better to find the system&#8217;s problems by making things fail fast versus moving slower and detecting system flaws later.</p><p>Those problems can be at different levels like application, continuous integration, monitoring systems, and how do we plan work. Long story short, the socio-technical system that produces the value.</p><h4>Adopt DORA metrics</h4><p>We will measure the impact of our decisions with DORA metrics. Those will be available as weekly metrics so that we can assess how fast we are <strong>improving</strong>. The goal is the speed of improvement, not the current state of the DORA metrics.</p><h2>Outputs and Outcomes</h2><h3>Desired</h3><p>We improved multiple parts of the doctrine as best practices. Yet, we had a lot of work to master Phase I of the <a href="https://learnwardleymapping.com/doctrine/">Wardley Mapping Doctrine</a>. The good part is that we created awareness and the speed of improvement was impressive.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-gqb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-gqb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 424w, https://substackcdn.com/image/fetch/$s_!-gqb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 848w, https://substackcdn.com/image/fetch/$s_!-gqb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 1272w, https://substackcdn.com/image/fetch/$s_!-gqb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-gqb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png" width="1456" height="606" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:606,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:294524,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-gqb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 424w, https://substackcdn.com/image/fetch/$s_!-gqb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 848w, https://substackcdn.com/image/fetch/$s_!-gqb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 1272w, https://substackcdn.com/image/fetch/$s_!-gqb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F789f8d68-0ac6-4c04-9e65-5aa9574fc076_2592x1078.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We also started behaving as ML1 Team-Focused using the Kanban-Maturty Model. We still had delays, defects, and re-work. We started behaving as a team, but we still had some individual heroics in some cases.</p><p>The behaviors were relayed to me in order to create new behaviors and dynamics. We needed to keep practicing them so that they became part of the team culture.</p><p>We strategically wanted the team to have a different maturity level and practices different from other teams within the tribe in order to start the maturity in one team and then start propagating this <em>engineering culture</em> to other teams incrementally.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m2Fc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m2Fc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 424w, https://substackcdn.com/image/fetch/$s_!m2Fc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 848w, https://substackcdn.com/image/fetch/$s_!m2Fc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 1272w, https://substackcdn.com/image/fetch/$s_!m2Fc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m2Fc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2119846,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m2Fc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 424w, https://substackcdn.com/image/fetch/$s_!m2Fc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 848w, https://substackcdn.com/image/fetch/$s_!m2Fc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 1272w, https://substackcdn.com/image/fetch/$s_!m2Fc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd891e94-3dee-47dd-8660-25149f345d9c_2398x1366.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Incrementally migrated from Ktor to Spring Boot in Production</h4><p>We discussed multiple ways to migrate from Ktor to Spring Boot.</p><ol><li><p><strong>All at once.</strong> Blocking new features for at least one month.</p></li><li><p><strong>Start a new microservice and co-live both for some time</strong>. We will implement the new features in the new one, and then slowly migrate previous features to the new microservice.</p></li><li><p><strong>Adopt Spring Boot in the existing Ktor service</strong>, and migrate the features to Spring Boot only when necessary.</p></li></ol><p>We did some spikes and we finally chose the third option. Ktor and Spring Boot are in the same repo, the same service. This way, we could reuse the whole code and no need to create new infrastructure and route the features depending on what&#8217;s implemented and what&#8217;s not.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z3eG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z3eG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 424w, https://substackcdn.com/image/fetch/$s_!z3eG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 848w, https://substackcdn.com/image/fetch/$s_!z3eG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 1272w, https://substackcdn.com/image/fetch/$s_!z3eG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z3eG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png" width="1456" height="1478" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1478,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184519,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z3eG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 424w, https://substackcdn.com/image/fetch/$s_!z3eG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 848w, https://substackcdn.com/image/fetch/$s_!z3eG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 1272w, https://substackcdn.com/image/fetch/$s_!z3eG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F562cb637-0e7a-4ebc-8391-8eea39ae8c68_1596x1620.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This way, we were able to reuse all the source code. We exposed Spring Boot, and using Feature Flags, we decided if one use case was implemented and handled by Spring Boot or we call the Ktor running in the same machine, in localhost, to perform the old behaviour.</p><p>We accomplished that we didn&#8217;t care if a use case wasn&#8217;t migrated because it wasn&#8217;t a problem as the technical debt and the cost of running both services in the same Docker was minimal.</p><h3>Undesired</h3><h4>People leaving</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mykU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mykU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 424w, https://substackcdn.com/image/fetch/$s_!mykU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 848w, https://substackcdn.com/image/fetch/$s_!mykU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 1272w, https://substackcdn.com/image/fetch/$s_!mykU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mykU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png" width="1456" height="940" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:940,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:372693,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mykU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 424w, https://substackcdn.com/image/fetch/$s_!mykU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 848w, https://substackcdn.com/image/fetch/$s_!mykU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 1272w, https://substackcdn.com/image/fetch/$s_!mykU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2b48343-9cab-4336-9397-7a47958258a9_2281x1472.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The person with the most mobile experience left the company, along with a backend developer. Both were internal rotations, so, a lot of context was lost.</p><p>Shortly after their departure, a new product engineer joined the team.</p><h4>Sharing how to evolve incrementally didn&#8217;t stop other teams from performing a full rewrite from Ktor to Spring Boot</h4><p>We did learning and documented the process so that other teams could benefit from this incremental approach. Unlucky us, some teams chose to do a full migration to Spring Boot and freeze the product delivery until the migration was done.</p><h2>Learnings</h2><ul><li><p>Isolating a team and giving time for learning was key to adopting a full-stack mindset.</p></li><li><p>When people are hired in one role/specialty, and then you adopt a new approach, they might either be on board or just start looking for a workspace that suits their needs.</p></li><li><p>Sharing an incremental approach in a sync meeting and documenting seemed enough to help others follow the example, but it didn&#8217;t happen. Each team had its own approach to accomplishing a coherent action.</p><ul><li><p>Here I have mixed feelings of what happened. On one side, we accomplished the tribe goal of adopting Spring Boot, Good! On the other side, those approaches needed a feature freeze until it was completed. The risk of a full migration up-front approach was way higher than an incremental approach and could cause a way longer delay in the delivery. What happens if the migration takes longer? What happens if we don&#8217;t deliver value for more than one month? The business was already concerned with the delivery speed. Missing the migration expected deadline would create a toll on the trust of the engineering team to accomplish deliverables, creating resistance to change in the future.<br>IMHO, an unnecessary risk given an alternative such as an incremental approach.</p></li></ul></li><li><p>The new joiner onboarding time and complexity was already lower due to the adoption of Spring Boot.</p><ul><li><p>The dynamics in place were already team-oriented instead of individual hero-oriented. This, for the person, was already the norm, and no resistance to those new methodologies compared to existing team members who decided to leave.</p></li><li><p>The hiring process took into account the new behaviors that we were looking for, which contributed to a faster adoption of the new behaviors and engineering culture that we were looking for.</p></li></ul></li><li><p>Changing the hiring process and job descriptions was way more energy-consuming than expected. I had to coordinate the new job expectations with higher leadership and it required a lot of back and forth since those expectations were outside my impact zone.</p><ul><li><p>Having a highly collaborative People department was key for the success of implementing a new hiring process and job expectations within a time frame of one month. Kudos to the best People professional I worked with.</p></li></ul></li></ul>]]></content:encoded></item><item><title><![CDATA[A legacy, a deadline, and no team.]]></title><description><![CDATA[Fintech Engineering Strategy. Post I]]></description><link>https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/a-legacy-a-deadline-and-no-team</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Mon, 02 Oct 2023 06:30:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r-j6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Fintech Engineering Strategy Post Series</strong></p><ul><li><p>Post I. A legacy, a deadline, and no team. [This post]</p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/building-a-product-vision-a-team">Post II. Building a product vision, and a team, and replacing Ktor with Spring Boot incrementally.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/merging-two-teams-for-fast-flow">Post III. Merging two teams for fast flow</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/replacing-ports-and-adapters-architecture">Post IV. Simplifying a Ports and Adapters architecture and remove anti-corruption layers made sense from a sociotechnical perspective.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/going-to-production-killed-fast-flow">Post V. Going to production killed fast flow. Understanding how company culture materializes on unaligned team dynamics.</a></p></li><li><p><a href="https://learnings.aleixmorgadas.dev/p/reducing-the-chaos-before-complex-system">Post VI. Reducing the chaos before addressing the complex socio-technical system</a></p></li></ul><div><hr></div><p><strong>You will find an Engineering Strategy that:</strong></p><ul><li><p>Team level impact, suitable for people in a <strong>Tech Lead</strong> position.</p></li><li><p><strong>Limits Work in Progress</strong> to boost velocity.</p></li><li><p>Tough deadline with <strong>high uncertainty</strong> and leadership attention to deliver on time.</p></li><li><p>Build a team from 0 with internal rotation.</p></li><li><p>Removing bureaucracy during a high risk delivery by implementing <strong>novel approaches to fast delivery</strong>.</p></li></ul><div><hr></div><p>This post assumes you are familiar with the Engineering Strategy structure. Please, read the Designing an Engineering Strategy post series if you find yourself unfamiliar with the structure <em>Diagnosis &#8594; Direction &#8594; Coherent Actions</em> to describe an Engineering Strategy.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;dee7b634-bf6a-4831-80d8-65fe6e20a9d0&quot;,&quot;caption&quot;:&quot;I divided the topic into four posts/emails. Part I. What the heck is Strategy? [This post] Part II. Understanding the high-stake problem. Part III. Giving direction and coherent action. Part IV. Executing an Engineering Strategy Engineering Strategy Template&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Designing an Engineering Strategy. Part I&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/330b9fd7-f199-4dc6-88c7-cb85ff10abe1_250x250.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2022-01-19T11:00:42.551Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fpbs.substack.com%2Fmedia%2FFJJDSUnWUAExUly.jpg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/designing-an-engineering-strategy&quot;,&quot;section_name&quot;:&quot;Engineering Strategy&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:47161896,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:9,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Aleix's Learnings&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4614c2be-8fe7-4d1e-bf2f-49633bf2245b_400x400.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p>March 2021, I join a FinTech as Engineer Manager in their offices at the lovely and sunny Valencia, Spain.</p><p>A FinTech based on S&#227;o Paulo, Brazil with an office in Spain. It offers loans with the lowest rate on the market.</p><p>It had multiple things that made it attractive when I decided to join:</p><ul><li><p>Big and complex domain. FinTech, loans, and applied to multiple verticals such as loans based on payroll, cars, houses, and business services. I joined the latest business unit.</p></li><li><p>Growing product-engineering team.</p></li><li><p>Working for a company outside Spain which I could learn a new language.</p></li><li><p>Good company values and employee benefits.</p></li><li><p>Proved business model.</p></li><li><p>Enough time on the market so that there&#8217;s an existing software in place that will need to be evolved and maintained (legacy).</p></li><li><p>I join as a engineer manager with influence on:</p><ul><li><p>Engineering.</p></li><li><p>People.</p></li><li><p>Organization.</p></li></ul></li><li><p>Space to make mistakes and learn from them.</p></li></ul><p>With those points on the table, I considered the company to be a great company to push myself outside my comfort zone.</p><h2>The context</h2><p>I start on March 1st of 2021 and I start my onboarding. I recall having my calendar full already for the first three days with sessions like company values, ways of working, the first three months expectation, and so on.</p><p>My manager wasn&#8217;t in the office, she was in Brazil. Indeed, no one of my team was in the office, I&#8217;m the first for this team.</p><p>I recall one of the first conversations, the summary could be something like:</p><ul><li><p>You are hired for a product that hasn&#8217;t been released to the public but it needs maintenance and adjustments from time to time because it&#8217;s regulated by the Central Bank of Brazil.</p></li><li><p>The team was disassembled almost a year ago.</p></li><li><p>The main developers and product manager who developed the product from grown-up left the company almost a year ago.</p></li><li><p>A couple of developers have the context of the application because we had to do some fixes the past quarter as an <em>exceptional thing.</em></p></li><li><p>We have an <strong>important delivery in two months due to new regulations</strong>.</p><ul><li><p>We don&#8217;t know what needs to be delivered because we don&#8217;t have the full picture of what&#8217;s done and what&#8217;s missing.</p></li><li><p>We have Business Experts and a Product Manager that&#8217;s working to capture those requirements and will be delivered to you.</p></li></ul></li><li><p>You need to hire your team, and onboard them.</p></li></ul><p><strong>TLDR;</strong> You have a deadline. We don&#8217;t know what needs to be delivered yet. You don&#8217;t have a team, you need to hire people and onboard them, while being familiar with a code base that the people who wrote it is no longer here.</p><p>I loved the challenge. Let&#8217;s see what we done to overcome the situation.</p><h2>Engineering Strategy</h2><h3>Context</h3><p>My leader added me to several meetings to meet the business experts that could provide me as much as context as needed while supporting me on a different fronts like hiring, understanding the business requirements, and find the people that knew something about the software in place.</p><h4>Organization and product structure</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6KW3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6KW3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 424w, https://substackcdn.com/image/fetch/$s_!6KW3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 848w, https://substackcdn.com/image/fetch/$s_!6KW3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 1272w, https://substackcdn.com/image/fetch/$s_!6KW3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6KW3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png" width="982" height="247" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:247,&quot;width&quot;:982,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110800,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6KW3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 424w, https://substackcdn.com/image/fetch/$s_!6KW3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 848w, https://substackcdn.com/image/fetch/$s_!6KW3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 1272w, https://substackcdn.com/image/fetch/$s_!6KW3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febd7549a-78b3-477b-a0b6-2691be033e2c_982x247.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m part of the Team A, and I co-live in a tribe with three other teams. Each team is responsible for a product.</p><h4>Architecture</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r-j6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r-j6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 424w, https://substackcdn.com/image/fetch/$s_!r-j6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 848w, https://substackcdn.com/image/fetch/$s_!r-j6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 1272w, https://substackcdn.com/image/fetch/$s_!r-j6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r-j6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png" width="1137" height="1085" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1085,&quot;width&quot;:1137,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1015622,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r-j6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 424w, https://substackcdn.com/image/fetch/$s_!r-j6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 848w, https://substackcdn.com/image/fetch/$s_!r-j6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 1272w, https://substackcdn.com/image/fetch/$s_!r-j6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dc713d-92e6-4189-9496-492966bf7f98_1137x1085.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The architecture diagram is messy and incomplete because the point is to show the coupling and services ownership.</p><h4>DevEx</h4><ul><li><p>Deployment on backend is fully automated and don&#8217;t require human intervention.</p></li><li><p>Delivery experience on mobile require deeper expertise on how it works to deliver features in the next app publishing process to the Google Play and Apple Store.</p></li><li><p>Both components have tests.</p></li></ul><h3>Diagnosis</h3><ul><li><p>The product is heavy regulated and requires Brazilian regulation experience to understand and the new regulatory measures by the Central Bank of Brazil, what what is missing in our product to fulfill those regulatory requirements. Which means, all the product information is in Portuguese.</p></li><li><p>The software is a mobile application based in React Native.</p></li><li><p>The backend is a set of microservices in Kotlin and Ktor that talks with each other via HTTP APIs.</p></li><li><p>The product is part of a set of initiatives that got more priority and it created technical debt on how the different products co-live in the mobile application and the logic is implemented cross microservices.</p><ul><li><p>We can see the coupling of the services based on the past product prioritization.</p></li><li><p>We cannot fix the technical debt as part of the delivery.</p></li></ul></li></ul><h3>Direction</h3><p>We will focus on high visibility of the initiative state and communicate often with the main stakeholders. We will limit the work in progress and we will keep a small team with high cohesion on the delivery by doing pairing to limit the risk of integrating the mobile and backend later than sooner.</p><h3>Actions</h3><ul><li><p>Build a team with internal people, preference if they already worked with the source code before.</p></li><li><p>Limit the work in progress to one, if not possible due to blocking external dependencies, two is OK.</p></li><li><p>Limit people working in the initiative to limit the onboarding pressure.</p></li><li><p>Pairing for fast knowledge transfer.</p></li><li><p>Removing PR at least two approval requirements.</p></li><li><p>Do not change technologies nor aim to reduce technical debt as part of the delivery.</p></li><li><p>Start by mobile user journey and adapt the backend to support the new requirements.</p></li></ul><h2>Outputs and outcomes</h2><h3>Desired</h3><ul><li><p>The delivery risk was more about the unknown state of the product than the new requirements that needed to be implemented.</p><ul><li><p>A lot of the pressure went away when the PM collected the new requirements within the first two weeks and we were able to plan accordingly.</p></li></ul></li><li><p>An internal mobile developer joins the team to support the mobile part based on Brazil.</p></li><li><p>A recent hire joins the team based on Spain.</p></li><li><p>An internal experienced product manager joins the team.</p></li><li><p>8 of the 11 new features are delivered on time, the remaining with low priority low risk are delivered on the following week after the deadline.</p></li><li><p>We become more familiar with the source code.</p></li></ul><h3>Undesired</h3><ul><li><p>The mobile developer returns to their initial team and the mobile knowledge is lost in the team.</p></li><li><p>Reaching the milestone shows that the product has lower priority, we lack a product vision, documentation, and understanding the past decisions.</p></li></ul><h2>Learnings</h2><ul><li><p>Having a supporting leader is crucial.</p></li><li><p>Having a supporting network with other teams and people is crucial.</p></li><li><p>The higher the delivery pressure is, you will have more <em>resources available</em> to fix the problem ASAP but it can cause more harm than good.</p><ul><li><p>Here, based on the experience I had, limiting the work in progress and not onbording new people creates better results than the opposite.</p><ul><li><p>High cohesive team over a lot of individuals with the temporarily mission of delivering some features so they can come again to their usual teams.</p></li></ul></li></ul></li><li><p>Remove delivery blockers as soon as you find them.</p><ul><li><p>Being part of a high risk delivery, novel practices such as removing PR bureaucracy are good time to introduce due to pressure of <em>&#8220;just deliver it ASAP, do what you need to do&#8221;</em>.</p><ul><li><p>The developer that did internal rotation wondered why that&#8217;s possible to change the status quo within one week and stay with the new approach.</p><ul><li><p>They went from, <em>this isn&#8217;t possible</em> to <em>we did it in a record time</em>.</p></li></ul></li></ul></li></ul></li><li><p>Communicating often, async and sync, and showing progress early creates trust with leadership and team.</p></li><li><p>If the new requirements would have been unachievable with the current team of four people, we could have known during the first two weeks of delivery. Leaving us with a month and a half to take more drastic decisions, but lucky us it wasn&#8217;t the case.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Post Product Market Fit - Open Engineering Strategy]]></title><description><![CDATA[When Product Stage Evolves but Engineering doesn't]]></description><link>https://learnings.aleixmorgadas.dev/p/post-product-market-fit-open-engineering</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/post-product-market-fit-open-engineering</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Tue, 21 Jun 2022 10:00:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/h_600,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This post is special for me, it&#8217;s the first post about <a href="https://github.com/aleixmorgadas/awesome-engineering-strategy#open-engineering-strategies">#OpenEngineeringStrategy</a> that I do in collaboration! I love seeing people joining this Open Engineering Strategy movement &#128522;&#129395;</p><p>Today&#8217;s post is made in collaboration with <a href="https://twitter.com/elmendalerenda">Miguel &#193;ngel Fern&#225;ndez</a>, a Product Engineer at <a href="https://qatium.com/">Qatium</a>.</p><p>Miguel &#193;ngel and I have been in touch after I published several posts on Engineering Strategy and wondered if someone would like to attend a Workshop about it.</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:50471275,&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/designing-engineering-strategy-workshop&quot;,&quot;publication_id&quot;:356759,&quot;publication_name&quot;:&quot;Aleix's Learnings&quot;,&quot;publication_logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/beb0a18e-393f-4020-8332-abe36c8dd198_512x512.png&quot;,&quot;title&quot;:&quot;Designing Engineering Strategy Workshop&quot;,&quot;truncated_body_text&quot;:&quot;Why At beginning of this year, when I was Designing the Engineering Strategy for the Tribe at Creditas, where I work, I realized that the approach I learned during trial and error could be helpful for others. That&#8217;s why I collected my learnings as a post series here &#128071;&quot;,&quot;date&quot;:&quot;2022-03-16T18:33:12.277Z&quot;,&quot;like_count&quot;:0,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d5e47edd-ba71-49f8-bd4b-c3ad97aff41b_1000x1000.png&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;profile_set_up_at&quot;:&quot;2021-05-11T19:15:13.689Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:278740,&quot;user_id&quot;:15961258,&quot;publication_id&quot;:356759,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:356759,&quot;name&quot;:&quot;Aleix's Learnings&quot;,&quot;subdomain&quot;:&quot;aleixmorgadas&quot;,&quot;custom_domain&quot;:&quot;learnings.aleixmorgadas.dev&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Sharing my learnings on Engineering Strategy and Leadership&quot;,&quot;logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/beb0a18e-393f-4020-8332-abe36c8dd198_512x512.png&quot;,&quot;author_id&quot;:15961258,&quot;theme_var_background_pop&quot;:&quot;#67BDFC&quot;,&quot;created_at&quot;:&quot;2021-05-08T09:05:07.893Z&quot;,&quot;rss_website_url&quot;:null,&quot;email_from_name&quot;:&quot;Aleix Morgadas&quot;,&quot;copyright&quot;:&quot;Aleix Morgadas&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false}},{&quot;id&quot;:864218,&quot;user_id&quot;:15961258,&quot;publication_id&quot;:921364,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:921364,&quot;name&quot;:&quot;Open Engineering Strategy&quot;,&quot;subdomain&quot;:&quot;openengineeringstrategy&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;The news letter to learn from others about Engineering Strategy&quot;,&quot;logo_url&quot;:null,&quot;author_id&quot;:15961258,&quot;theme_var_background_pop&quot;:&quot;#B599F1&quot;,&quot;created_at&quot;:&quot;2022-06-05T12:43:43.892Z&quot;,&quot;rss_website_url&quot;:null,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Aleix Morgadas&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false}}],&quot;twitter_screen_name&quot;:&quot;aleixmorgadas&quot;,&quot;is_guest&quot;:false}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:null,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://learnings.aleixmorgadas.dev/p/designing-engineering-strategy-workshop?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!cl1Y!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb0a18e-393f-4020-8332-abe36c8dd198_512x512.png"><span class="embedded-post-publication-name">Aleix's Learnings</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Designing Engineering Strategy Workshop</div></div><div class="embedded-post-body">Why At beginning of this year, when I was Designing the Engineering Strategy for the Tribe at Creditas, where I work, I realized that the approach I learned during trial and error could be helpful for others. That&#8217;s why I collected my learnings as a post series here &#128071;&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 years ago &#183; 3 comments &#183; Aleix Morgadas</div></a></div><p>We chatted so l could understand better his workshop expectations. We were able to exchange some ideas and thoughts about our experiences in Engineering Strategy. I loved that conversation! We both faced similar situations and we were lost as everyone else in this field :D</p><p>Last week, we chatted about the current situation he is facing at Qatium, and how to drive an Engineering Strategy from there.</p><p>Miguel &#193;ngel came with a deep analysis of the current situation, the company pains, the developer pains, where the product is, and how engineering is facing some challenges to adapt to the new product reality. I can tell that a meaningful reflection was made before the call, I played a rubber duck/facilitator role in that conversation.</p><h1>What's Qatium?</h1><p>Qatium is a water management platform that allows water utilities to improve their water network performance. Clearly speaking, we help water companies to reduce the water and energy that is lost on the way from the supply to the tap. If you are curious you can find more information at <a href="https://qatium.com/">qatium.com</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dms.licdn.com/playlist/C5605AQG-VbIhix9Kdw/mp4-720p-30fp-crf28/0/1654869812759?e=1656280800&amp;v=beta&amp;t=c5NT2TlsA56x_wFp3O7v2naUq3lfJA00TCqfFbVG7Og" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!avEJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 424w, https://substackcdn.com/image/fetch/$s_!avEJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 848w, https://substackcdn.com/image/fetch/$s_!avEJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 1272w, https://substackcdn.com/image/fetch/$s_!avEJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!avEJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png" width="430" height="428.45045045045043" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1106,&quot;width&quot;:1110,&quot;resizeWidth&quot;:430,&quot;bytes&quot;:794936,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://dms.licdn.com/playlist/C5605AQG-VbIhix9Kdw/mp4-720p-30fp-crf28/0/1654869812759?e=1656280800&amp;v=beta&amp;t=c5NT2TlsA56x_wFp3O7v2naUq3lfJA00TCqfFbVG7Og&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!avEJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 424w, https://substackcdn.com/image/fetch/$s_!avEJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 848w, https://substackcdn.com/image/fetch/$s_!avEJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 1272w, https://substackcdn.com/image/fetch/$s_!avEJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4f787d0-734f-4ac1-baee-9b2a1f1cf552_1110x1106.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://dms.licdn.com/playlist/C5605AQG-VbIhix9Kdw/mp4-720p-30fp-crf28/0/1654869812759?e=1656280800&amp;v=beta&amp;t=c5NT2TlsA56x_wFp3O7v2naUq3lfJA00TCqfFbVG7Og">See Video</a></figcaption></figure></div><h1>Which is the High-Stake Problem?</h1><p>The product/business found the market fit and started moving to a prepare for scale phase while the engineering stayed approaching solutions with the market-fit mindset.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!avno!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!avno!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 424w, https://substackcdn.com/image/fetch/$s_!avno!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 848w, https://substackcdn.com/image/fetch/$s_!avno!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 1272w, https://substackcdn.com/image/fetch/$s_!avno!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!avno!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png" width="1456" height="863" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:863,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!avno!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 424w, https://substackcdn.com/image/fetch/$s_!avno!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 848w, https://substackcdn.com/image/fetch/$s_!avno!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 1272w, https://substackcdn.com/image/fetch/$s_!avno!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7113a8a3-36f9-4589-9fe2-6973dbb71f17_1600x948.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We identified the need to adapt the dev team mindset to the new&nbsp;</p><h1>Engineering Strategy</h1><p>We decided to go for a classical strategy analysis as explained in the book good strategy/bad strategy, where the first step y stop and listen to what is happening in the organization, collect facts, and refine into insights</p><h2>Analysis</h2><p>After a few weeks of collecting facts, these are a few samples of what we saw. Nothing special or different from other organizations as you see.</p><ul><li><p>Integration tests are too slow</p></li><li><p>An increasing number of bugs</p></li><li><p>Increasing cognitive load</p></li><li><p>A pile of architectural debt accumulated</p></li><li><p>Large lead time in features without uncertainty</p></li><li><p>Performance problems in different areas</p></li></ul><p>Thinking about the whole range of facts is what led us to discover the high stake problem. The high stake is no more than a scientific hypothesis, so let&#8217;s go and test it</p><h2>Direction</h2><p>Our hypothesis was that the code was working for seeking a market fit, which means that the code is prepared for accepting features not related to each other and with a high degree of uncertainty. Once we started developing cohesive features and receiving more load is when we started with the problems. Inspired by the techniques described in Strategic Monolith and microservices we decided to plan a Context Remapping. That was new for us because seeking product-market fit leaves little space to actually sit down and think which are the best next features, the fact is you don&#8217;t know.</p><p>Now with a clear direction for the product we could actually anticipate and plan the system for specific extensions, anticipate performance problems, and even reduce the cognitive load by applying the Inverse Conway Manoeuvre.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q_5B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q_5B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 424w, https://substackcdn.com/image/fetch/$s_!Q_5B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 848w, https://substackcdn.com/image/fetch/$s_!Q_5B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 1272w, https://substackcdn.com/image/fetch/$s_!Q_5B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q_5B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png" width="771" height="607" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:607,&quot;width&quot;:771,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q_5B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 424w, https://substackcdn.com/image/fetch/$s_!Q_5B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 848w, https://substackcdn.com/image/fetch/$s_!Q_5B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 1272w, https://substackcdn.com/image/fetch/$s_!Q_5B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe334c2f3-d308-43b7-b906-b1c6dae13e14_771x607.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This was one of the diagrams we used to remap the context. There is no secret to showing how to structure the code, that should match our roadmap, that by the way is open: <a href="https://qatium.com/roadmap/">https://qatium.com/roadmap/</a></p><h2>Coherent Actions</h2><p>With a direction present, it is time for describing actions. Through small daily efforts, we should be able to test if our hypothesis was correct or not in a short period of time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3oeK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3oeK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 424w, https://substackcdn.com/image/fetch/$s_!3oeK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 848w, https://substackcdn.com/image/fetch/$s_!3oeK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 1272w, https://substackcdn.com/image/fetch/$s_!3oeK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3oeK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png" width="391" height="294" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/cc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:294,&quot;width&quot;:391,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3oeK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 424w, https://substackcdn.com/image/fetch/$s_!3oeK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 848w, https://substackcdn.com/image/fetch/$s_!3oeK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 1272w, https://substackcdn.com/image/fetch/$s_!3oeK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc3f3564-79d0-47c0-bc89-61cf90ba5b8e_391x294.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Reflections</h1><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/aleixmorgadas/status/1530152188798017536&quot;,&quot;full_text&quot;:&quot;\&quot;The Software that brought you all those learnings isn&#8217;t the same as the one that will help you scale the business\&quot;\n\nBetween verifying a Product Market Fit and Scaling, there's a sweet stage for the whole business (including software) to be prepared for scaling\n\n1/ &quot;,&quot;username&quot;:&quot;aleixmorgadas&quot;,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri May 27 11:41:25 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FTwvRBbXwAI0eCT.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/sVOdlhKVs1&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:3,&quot;like_count&quot;:4,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div><hr></div><h1>Can I participate in the <a href="https://openengineeringstrategy.com/">Open Engineering Strategies</a>?</h1><p>Yes! I started a section about this at <a href="https://github.com/aleixmorgadas/awesome-engineering-strategy#open-engineering-strategies">github.com/aleixmorgadas/awesome-engineering-strategy#open-engineering-strategies</a> &#129395;</p><p>If you want me to help you and co-author a post here, let me know at:</p><ul><li><p><a href="https://twitter.com/aleixmorgadas">twitter.com/aleixmorgadas</a>, DMs are open or</p></li><li><p>hello@aleixmorgadas.dev</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://openengineeringstrategy.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CTHM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 424w, https://substackcdn.com/image/fetch/$s_!CTHM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 848w, https://substackcdn.com/image/fetch/$s_!CTHM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 1272w, https://substackcdn.com/image/fetch/$s_!CTHM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CTHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png" width="807" height="228" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/fd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:228,&quot;width&quot;:807,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35614,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://openengineeringstrategy.com/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CTHM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 424w, https://substackcdn.com/image/fetch/$s_!CTHM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 848w, https://substackcdn.com/image/fetch/$s_!CTHM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 1272w, https://substackcdn.com/image/fetch/$s_!CTHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd46f3f3-d5ca-4378-b138-b8b575bf350c_807x228.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><a href="https://github.com/aleixmorgadas/awesome-engineering-strategy#open-engineering-strategies">github.com/aleixmorgadas/awesome-engineering-strategy#open-engineering-strategies</a></figcaption></figure></div><h1>Meme for you</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-0ig!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-0ig!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-0ig!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-0ig!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-0ig!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-0ig!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg" width="500" height="616" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:616,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-0ig!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-0ig!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-0ig!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-0ig!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8decb35d-2fba-4fe8-b9bd-926f3ad46503_500x616.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Community Startup - Video Open Engineering Strategy 📹]]></title><description><![CDATA[Two days ago, I started a series of posts to explain Engineering Strategies I worked on in the past.]]></description><link>https://learnings.aleixmorgadas.dev/p/community-startup-video-engineering</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/community-startup-video-engineering</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Tue, 17 May 2022 13:00:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BkDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Two days ago, I started a series of posts to explain Engineering Strategies I worked on in the past.</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:54972464,&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/community-startup-engineering-strategy&quot;,&quot;publication_id&quot;:356759,&quot;publication_name&quot;:&quot;Aleix's Learnings&quot;,&quot;publication_logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/beb0a18e-393f-4020-8332-abe36c8dd198_512x512.png&quot;,&quot;title&quot;:&quot;Community Startup - Open Engineering Strategy&quot;,&quot;truncated_body_text&quot;:&quot;We all talk about strategy, but very few we can share them publicly. The main reason is that a Strategy contains business risks, opportunities, and other critical information that your competitors might use. It&#8217;s normal that those documents not to be available publicly.&quot;,&quot;date&quot;:&quot;2022-05-15T07:38:52.312Z&quot;,&quot;like_count&quot;:1,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d5e47edd-ba71-49f8-bd4b-c3ad97aff41b_1000x1000.png&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;profile_set_up_at&quot;:&quot;2021-05-11T19:15:13.689Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:278740,&quot;user_id&quot;:15961258,&quot;publication_id&quot;:356759,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:356759,&quot;name&quot;:&quot;Aleix's Learnings&quot;,&quot;subdomain&quot;:&quot;aleixmorgadas&quot;,&quot;custom_domain&quot;:&quot;learnings.aleixmorgadas.dev&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Sharing my learnings on Architecture, Management and Open Source&quot;,&quot;logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/beb0a18e-393f-4020-8332-abe36c8dd198_512x512.png&quot;,&quot;author_id&quot;:15961258,&quot;theme_var_background_pop&quot;:&quot;#67BDFC&quot;,&quot;created_at&quot;:&quot;2021-05-08T09:05:07.893Z&quot;,&quot;rss_website_url&quot;:null,&quot;email_from_name&quot;:&quot;Aleix Morgadas&quot;,&quot;copyright&quot;:&quot;Aleix Morgadas&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false}},{&quot;id&quot;:595349,&quot;user_id&quot;:15961258,&quot;publication_id&quot;:662219,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:662219,&quot;name&quot;:&quot;4KeyMetrics's newsletter&quot;,&quot;subdomain&quot;:&quot;4keymetrics&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;News About 4keymetrics.dev&quot;,&quot;logo_url&quot;:null,&quot;author_id&quot;:15961258,&quot;theme_var_background_pop&quot;:&quot;#B599F1&quot;,&quot;created_at&quot;:&quot;2022-01-03T08:07:38.840Z&quot;,&quot;rss_website_url&quot;:null,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Aleix Morgadas&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false}}],&quot;twitter_screen_name&quot;:&quot;aleixmorgadas&quot;,&quot;is_guest&quot;:false}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:null,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://learnings.aleixmorgadas.dev/p/community-startup-engineering-strategy?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!cl1Y!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb0a18e-393f-4020-8332-abe36c8dd198_512x512.png"><span class="embedded-post-publication-name">Aleix's Learnings</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Community Startup - Open Engineering Strategy</div></div><div class="embedded-post-body">We all talk about strategy, but very few we can share them publicly. The main reason is that a Strategy contains business risks, opportunities, and other critical information that your competitors might use. It&#8217;s normal that those documents not to be available publicly&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 years ago &#183; 1 like &#183; Aleix Morgadas</div></a></div><p>Explaining an Engineering Strategy is context-specific and hard to express in text. That&#8217;s why I recorded myself doing a video-based explanation of the previous post!</p><p><strong>I will love to have your feedback if this is useful for you! &#129505;</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BkDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BkDC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 424w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 848w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BkDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png" width="1456" height="698" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:698,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:936854,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BkDC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 424w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 848w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://www.loom.com/share/d27642de9fee4631a4d83da64ccec9ba">https://www.loom.com/share/d27642de9fee4631a4d83da64ccec9ba</a></figcaption></figure></div><p>Please, share your thoughts in the post &#128522;</p>]]></content:encoded></item><item><title><![CDATA[Community Startup - Open Engineering Strategy]]></title><description><![CDATA[Goal: Prove Product Market Fit with an MVP]]></description><link>https://learnings.aleixmorgadas.dev/p/community-startup-engineering-strategy</link><guid isPermaLink="false">https://learnings.aleixmorgadas.dev/p/community-startup-engineering-strategy</guid><dc:creator><![CDATA[Aleix Morgadas]]></dc:creator><pubDate>Sun, 15 May 2022 07:38:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://github.com/aleixmorgadas/awesome-engineering-strategy" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!saMf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 424w, https://substackcdn.com/image/fetch/$s_!saMf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 848w, https://substackcdn.com/image/fetch/$s_!saMf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 1272w, https://substackcdn.com/image/fetch/$s_!saMf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!saMf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png" width="172" height="34.25423728813559" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:94,&quot;width&quot;:472,&quot;resizeWidth&quot;:172,&quot;bytes&quot;:37936,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://github.com/aleixmorgadas/awesome-engineering-strategy&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!saMf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 424w, https://substackcdn.com/image/fetch/$s_!saMf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 848w, https://substackcdn.com/image/fetch/$s_!saMf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 1272w, https://substackcdn.com/image/fetch/$s_!saMf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0af1e744-8d51-4adc-83ce-d276a2c2f8e7_472x94.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption"><a href="https://github.com/aleixmorgadas/awesome-engineering-strategy">https://github.com/aleixmorgadas/awesome-engineering-strategy</a></figcaption></figure></div><p>We all talk about strategy, but very few we can share them publicly.</p><p>The main reason is that a Strategy contains business risks, opportunities, and other critical information that your competitors might use. It&#8217;s normal that those documents not to be available publicly.</p><p>Another reason is that we might not know how to do strategy, and we don&#8217;t want to look stupid.</p><p>I questioned myself for a long time.</p><blockquote><p>Am I doing strategy right? How others are doing this? why do they look so confident? I&#8217;m missing something.</p></blockquote><p>The truth was, we all were making it up as we go &#129315;</p><p>That&#8217;s why I did my post series about <a href="https://learnings.aleixmorgadas.dev/p/designing-an-engineering-strategy?s=w">Designing an Engineering Strategy</a>. I wanted to share the method I&#8217;m using after failing on Strategy for several years.</p><p>Today, I want to share a real application of the Designing an Engineering Strategy for a product I worked with.</p><h1>Context</h1><p>The product isn&#8217;t available due to we didn&#8217;t prove <a href="https://en.wikipedia.org/wiki/Product/market_fit">Product Market Fit</a> with the MVP, and the decision was to discontinue it &#128542;</p><p>Yet, the Strategy we took it&#8217;s relevant to share with others in similar situations &#129505;</p><p>&#9888;&#65039; I&#8217;ll not use the specific case of the company and product because I want to make it a little more abstract to fit more use cases; otherwise, I would need to explain the whole company context, and we will be missing the point.</p><h1>Business Hypothesis</h1><p>As with any early-stage startup, you have a lot of assumptions and very few facts. You need to be comfortable with the uncertainty and take risks to find the information to help you know if you&#8217;re going in the right direction.</p><p>A well-known approach to do it is by using an MVP, and an MVP needs to provide:</p><ul><li><p><strong>A business-hypothesis</strong>. What do we want to prove? What do we want to learn?</p></li><li><p><strong>A user-persona</strong>. To whom we are doing this?</p></li><li><p><strong>A set of features</strong>. What will we deliver to fulfill the user needs?</p></li><li><p><strong>Metrics to prove the business hypothesis</strong>. Which numbers do we need to have to prove that our business hypothesis is right?</p></li></ul><p>Let&#8217;s consider the next generic business hypothesis that could suit several community/social-network startups:</p><blockquote><p>We consider that exists the need for a place for the community to talk about and share their experiences for X topic <strong>(assumption)</strong>.</p><p>By providing a web application that suits the user needs <strong>(MVP)</strong>, we will measure (numbers made up):</p><ul><li><p>At least N accounts registered</p></li><li><p>5% Accounts Create Content</p></li><li><p>15% engagement by other&#8217;s users</p></li><li><p>S% internal searches</p></li></ul><p>(<strong>business hypothesis validation)</strong></p></blockquote><h1>High-Stake Business Problem</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!36j4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!36j4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 424w, https://substackcdn.com/image/fetch/$s_!36j4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 848w, https://substackcdn.com/image/fetch/$s_!36j4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 1272w, https://substackcdn.com/image/fetch/$s_!36j4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!36j4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png" width="1295" height="1428" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1428,&quot;width&quot;:1295,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:538851,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!36j4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 424w, https://substackcdn.com/image/fetch/$s_!36j4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 848w, https://substackcdn.com/image/fetch/$s_!36j4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 1272w, https://substackcdn.com/image/fetch/$s_!36j4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9af582bd-119e-4411-a40a-ee95239aed11_1295x1428.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>From Business Hypothesis to Engineering Strategy</h1><p>As I share in <a href="https://learnings.aleixmorgadas.dev/p/designing-an-engineering-strategy-0a9?s=w">Designing an Engineering Strategy Part II</a>, in creating an Engineering Strategy, you need to understand the business first.</p><p>To understand the business needs, we ran a <a href="https://www.caroli.org/en/book/lean-inception-how-to-align-people-and-build-the-right-product/">Lean Inception Workshop</a> with all the team. Lean Inception says:</p><blockquote><p>Think Big,<br>Start Small,<br>Learn Fast.</p></blockquote><p>Lean Inception is a good method to <strong>align people and build the right product</strong>. After the workshop, you have a good understanding of why you want to build this product, what needs to be done, and what we need to measure to prove the business hypothesis.</p><p>After that point, we were able to Design our Engineering Strategy!</p><h2>Analysis</h2><h3>ProductTech Team Size</h3><ul><li><p>1 Product Owner</p></li><li><p>1 Product Designer</p></li><li><p>2 Full Stack Developers</p></li></ul><p>There was no intention to scale up the team until Product Market Fit was accomplished or we had a good insight that we were going in the right direction to start a bigger founding round.</p><h3>Need for fast experimentation</h3><p>We identified several assumptions meanwhile the Lean Inception Workshop, which translates to we need to be flexible on the solution, we shouldn&#8217;t go deep into the business domain until we prove the need, and we need to adapt fast as we learn along with the users.</p><h3>Technologies</h3><p>The team was comfortable working with React, Django, PostgreSQL, and AWS. No need to change the technology stack.</p><p>&#128679; We had a previous product built on that stack, thinking of reusing the same monolith for a new product. This could help us reduce the Time to Market by not redeploying a new service but reusing the previous.</p><p>We took into account maintainability. We don&#8217;t want to create as much as systems that later will lock us down to them and be slower due to premature early decisions.</p><h3>Measuring</h3><p>We had Google Analytics in place for the inbound marketing and user behavior. We considered using <a href="https://mixpanel.com/">Mixpanel</a> to have a more curated analysis of our users and be able to learn from them faster.</p><h3>Understanding the Landscape with WardleyMapping</h3><p>To understand our landscape, we thought about the user needs and how they are being solved in the industry.</p><p>We were able to place them in a Wardley Map, and we identified that most of the social part of the product was already solved by SaaS products. We wanted to identify what&#8217;s not solved and needs to be custom-built and what we can externalize.</p><p>Lucky for us, we found that the more tedious part, we could use <a href="https://getstream.io/">GetStream</a> for our solution. &#128640;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g8i3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g8i3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 424w, https://substackcdn.com/image/fetch/$s_!g8i3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 848w, https://substackcdn.com/image/fetch/$s_!g8i3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 1272w, https://substackcdn.com/image/fetch/$s_!g8i3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g8i3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png" width="1456" height="876" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:876,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:317922,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g8i3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 424w, https://substackcdn.com/image/fetch/$s_!g8i3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 848w, https://substackcdn.com/image/fetch/$s_!g8i3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 1272w, https://substackcdn.com/image/fetch/$s_!g8i3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed5269-5c49-49a8-8dbe-fd0dfe841012_2004x1206.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://github.com/aleixmorgadas/wardley-maps/blob/main/startups/community-startup/product.owm">Wardley Map</a></figcaption></figure></div><h3>DDDing with Bounded Contexts and Subdomains</h3><p>Combining multiple tools to understand our product can drive better outcomes. That&#8217;s why we also used some patterns of DDD to understand our Business Domain.</p><p>Using DDD, we identified a similar scenario with Wardley Mapping. Probably you&#8217;re already biased toward a problem understanding, but it&#8217;s good to have another perspective and challenge assumptions.</p><p>We used the <a href="https://github.com/ddd-crew/core-domain-charts">core-domain-charts technique</a> to identify the higher business differentiator and the supportive models.</p><p>An MVP should aim to be as simplest as possible. That&#8217;s why we have only two subdomains &#128516;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UISQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UISQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 424w, https://substackcdn.com/image/fetch/$s_!UISQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 848w, https://substackcdn.com/image/fetch/$s_!UISQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!UISQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UISQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:789036,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UISQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 424w, https://substackcdn.com/image/fetch/$s_!UISQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 848w, https://substackcdn.com/image/fetch/$s_!UISQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!UISQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa579b5e9-91d2-437e-af5d-4bdeae1a3ff2_2160x1130.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://github.com/ddd-crew/core-domain-charts">core-domain-charts</a></figcaption></figure></div><p>At the end of the analysis, we concluded that we have the company bounded context with two subdomains:</p><ul><li><p><strong>User Profile</strong>. Our core domain where we have more business differentiation</p></li><li><p><strong>SocialFeed</strong>. Our supportive domain that we need to offer the community/social network capabilities, but they don&#8217;t offer any business differentiator nowadays. We need to externalize this one as much as we can.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!odFk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!odFk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 424w, https://substackcdn.com/image/fetch/$s_!odFk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 848w, https://substackcdn.com/image/fetch/$s_!odFk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 1272w, https://substackcdn.com/image/fetch/$s_!odFk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!odFk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png" width="1446" height="856" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1446,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:224617,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!odFk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 424w, https://substackcdn.com/image/fetch/$s_!odFk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 848w, https://substackcdn.com/image/fetch/$s_!odFk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 1272w, https://substackcdn.com/image/fetch/$s_!odFk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F63087f5b-6ca5-473b-9b36-9374d92e8679_1446x856.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Direction</h2><p>Our Engineering Strategy direction is:</p><blockquote><p>Make heavy use of external providers and solutions to leverage our product without creating custom solutions where we cannot compete; neither by business diferenciation nor at cost.</p><p>Our MVP needs to be constant adaptation based on:</p><ul><li><p>Learning meanwhile delivering with our users.</p></li><li><p>Deploy rapid adaptations as we learn from our users.</p></li></ul></blockquote><h2>Coherent Actions</h2><h3>Heavy use GetStream</h3><p>Building a social network-like solution might consume all the company resources. We must not take that path. We&#8217;re not innovating the social network ecosystem. <strong>We are filling the need for a community to have a space to talk about X topic.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Jz8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Jz8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 424w, https://substackcdn.com/image/fetch/$s_!9Jz8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 848w, https://substackcdn.com/image/fetch/$s_!9Jz8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 1272w, https://substackcdn.com/image/fetch/$s_!9Jz8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Jz8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png" width="468" height="82" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:82,&quot;width&quot;:468,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Chat &#8211; getstream.io&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Chat &#8211; getstream.io" title="Chat &#8211; getstream.io" srcset="https://substackcdn.com/image/fetch/$s_!9Jz8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 424w, https://substackcdn.com/image/fetch/$s_!9Jz8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 848w, https://substackcdn.com/image/fetch/$s_!9Jz8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 1272w, https://substackcdn.com/image/fetch/$s_!9Jz8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F426c74b9-d413-4b74-969c-a8480ba07681_468x82.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><a href="https://getstream.io/">getstream.io</a></figcaption></figure></div><ul><li><p>We will leverage our product features up to the getstream features.</p></li><li><p>We will not customize their product.</p></li></ul><h3>Deploy aggressively, recover fast and externalize brutally</h3><p>We need the shortest deployment cycles and infrastructure maintenance, so the developer team focuses on the product and not infra.</p><ul><li><p>Heavy use AWS products.</p><ul><li><p>ECS Fargate to deploy our monolith</p></li><li><p>RDS as managed PostgreSQL service</p></li><li><p>DynamoDB and Lambda to record events. <a href="https://github.com/aleixmorgadas/dynamodb-as-eventstore">See code here</a></p></li></ul></li><li><p>Automate repetitive work as much as we can.</p><ul><li><p>GitHub Actions with Continuous Delivery Pipeline</p></li><li><p>Terraform for IaC</p></li></ul></li><li><p>Heavy use of Django and Django Restframework build-in solutions</p></li><li><p>In case of doubt, do a CRUD without logic until proven to be needed</p></li></ul><h3>Feature Flags for rapid experimentation</h3><p>Use a Feature Flag system, like split.io, to leverage rapid experimentation safely.</p><h3>Measure</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WY_A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WY_A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 424w, https://substackcdn.com/image/fetch/$s_!WY_A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 848w, https://substackcdn.com/image/fetch/$s_!WY_A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 1272w, https://substackcdn.com/image/fetch/$s_!WY_A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WY_A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png" width="396" height="185.0778947368421" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:444,&quot;width&quot;:950,&quot;resizeWidth&quot;:396,&quot;bytes&quot;:123724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WY_A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 424w, https://substackcdn.com/image/fetch/$s_!WY_A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 848w, https://substackcdn.com/image/fetch/$s_!WY_A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 1272w, https://substackcdn.com/image/fetch/$s_!WY_A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11ba5e7c-8c30-42e9-bee4-c41bdd557fd1_950x444.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><a href="https://mixpanel.com/">mixpanel</a></figcaption></figure></div><p>Measure as much as we can about user behavior with Mixpanel. Each interaction that can help us validate our business hypothesis must be measured.</p><h1>How did it go?</h1><p>We couldn&#8217;t prove or dismiss our business hypothesis based on user engagement. BUT! We proved that running a custom solution to serve a niche community was more expensive than anticipated.</p><p>In terms of timings:</p><ul><li><p>September 2020. Lean Inception + Development Started</p></li><li><p>October 2020. Functional beta</p></li><li><p>November 2020. Product lunched &#128640;</p></li><li><p>February 2021. Product discontinued</p></li></ul><p>IMHO, it was a success to know and learn that much in that short period of time. Imagine if you don&#8217;t:</p><ul><li><p>Externalize the Social Feed User Needs</p></li><li><p>You build everything in-house, requiring more developers, time, and funding</p></li><li><p>You don&#8217;t measure and challenge your business-hypothesis</p></li></ul><p>That&#8217;s why Strategy is so important! Focus on the high-stake situation! Which, in our case, was building something that nobody needed.</p><h1>Books and Resources</h1><h2>Excalidraw Version</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QaPJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QaPJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 424w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 848w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 1272w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png" width="1456" height="750" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:750,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1284726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QaPJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 424w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 848w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 1272w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85003239-2fca-4bd9-8687-cdcca42ee643_3022x1556.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://app.excalidraw.com/l/6PqALd3FFny/8ZCDhqXJkG1">https://app.excalidraw.com/l/6PqALd3FFny/8ZCDhqXJkG1</a></figcaption></figure></div><h2><a href="https://www.loom.com/share/d27642de9fee4631a4d83da64ccec9ba">Video Explained</a></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BkDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BkDC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 424w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 848w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BkDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png" width="1456" height="698" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:698,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:936854,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BkDC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 424w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 848w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!BkDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaca8d29-8524-40ac-ab1c-cd8e075fb4a2_2210x1060.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://www.loom.com/share/d27642de9fee4631a4d83da64ccec9ba">https://www.loom.com/share/d27642de9fee4631a4d83da64ccec9ba</a></figcaption></figure></div><h2>Designing an Engineering Strategy</h2><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:47161896,&quot;url&quot;:&quot;https://learnings.aleixmorgadas.dev/p/designing-an-engineering-strategy&quot;,&quot;publication_id&quot;:356759,&quot;publication_name&quot;:&quot;Aleix's Learnings&quot;,&quot;publication_logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/beb0a18e-393f-4020-8332-abe36c8dd198_512x512.png&quot;,&quot;title&quot;:&quot;Designing an Engineering Strategy. Part I&quot;,&quot;truncated_body_text&quot;:&quot;I divided the topic into four posts/emails. Part I. What the heck is Strategy? [This post] Part II. Understanding the high-stake problem. Part III. Giving direction and coherent action. Part IV. Executing an Engineering Strategy&quot;,&quot;date&quot;:&quot;2022-01-19T11:00:42.551Z&quot;,&quot;like_count&quot;:3,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:15961258,&quot;name&quot;:&quot;Aleix Morgadas&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d5e47edd-ba71-49f8-bd4b-c3ad97aff41b_1000x1000.png&quot;,&quot;bio&quot;:&quot;Applying Software into different Domains. he/him&quot;,&quot;profile_set_up_at&quot;:&quot;2021-05-11T19:15:13.689Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:278740,&quot;user_id&quot;:15961258,&quot;publication_id&quot;:356759,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:356759,&quot;name&quot;:&quot;Aleix's Learnings&quot;,&quot;subdomain&quot;:&quot;aleixmorgadas&quot;,&quot;custom_domain&quot;:&quot;learnings.aleixmorgadas.dev&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Sharing my learnings on Architecture, Management and Open Source&quot;,&quot;logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/beb0a18e-393f-4020-8332-abe36c8dd198_512x512.png&quot;,&quot;author_id&quot;:15961258,&quot;theme_var_background_pop&quot;:&quot;#67BDFC&quot;,&quot;created_at&quot;:&quot;2021-05-08T09:05:07.893Z&quot;,&quot;rss_website_url&quot;:null,&quot;email_from_name&quot;:&quot;Aleix Morgadas&quot;,&quot;copyright&quot;:&quot;Aleix Morgadas&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false}},{&quot;id&quot;:595349,&quot;user_id&quot;:15961258,&quot;publication_id&quot;:662219,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:662219,&quot;name&quot;:&quot;4KeyMetrics's newsletter&quot;,&quot;subdomain&quot;:&quot;4keymetrics&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;News About 4keymetrics.dev&quot;,&quot;logo_url&quot;:null,&quot;author_id&quot;:15961258,&quot;theme_var_background_pop&quot;:&quot;#B599F1&quot;,&quot;created_at&quot;:&quot;2022-01-03T08:07:38.840Z&quot;,&quot;rss_website_url&quot;:null,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Aleix Morgadas&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false}}],&quot;twitter_screen_name&quot;:&quot;aleixmorgadas&quot;,&quot;is_guest&quot;:false}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:null,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://learnings.aleixmorgadas.dev/p/designing-an-engineering-strategy?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!cl1Y!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb0a18e-393f-4020-8332-abe36c8dd198_512x512.png" loading="lazy"><span class="embedded-post-publication-name">Aleix's Learnings</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Designing an Engineering Strategy. Part I</div></div><div class="embedded-post-body">I divided the topic into four posts/emails. Part I. What the heck is Strategy? [This post] Part II. Understanding the high-stake problem. Part III. Giving direction and coherent action. Part IV. Executing an Engineering Strategy&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 years ago &#183; 3 likes &#183; Aleix Morgadas</div></a></div><h2>Lean Inception</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-dYN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-dYN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-dYN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-dYN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-dYN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-dYN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg" width="347" height="500" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:347,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!-dYN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-dYN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-dYN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-dYN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5129ae7b-2ac3-42d2-a7d8-84600f201151_347x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://amzn.to/3MhsKQO">Lean Inception: How to Align People and Build the Right Product</a></figcaption></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ytRe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ytRe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 424w, https://substackcdn.com/image/fetch/$s_!ytRe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 848w, https://substackcdn.com/image/fetch/$s_!ytRe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 1272w, https://substackcdn.com/image/fetch/$s_!ytRe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ytRe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png" width="1456" height="360" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:565485,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ytRe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 424w, https://substackcdn.com/image/fetch/$s_!ytRe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 848w, https://substackcdn.com/image/fetch/$s_!ytRe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 1272w, https://substackcdn.com/image/fetch/$s_!ytRe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F570921ca-af00-44bd-9e08-a4783b3d78f7_3024x747.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><a href="https://www.udemy.com/course/leaninception/">Lean Inception Udemy</a></figcaption></figure></div><h1>Meme for you</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OCPm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OCPm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OCPm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OCPm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OCPm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OCPm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OCPm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OCPm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OCPm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OCPm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F42db8a97-7d01-4ea5-8077-191bc3da0795_500x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item></channel></rss>