<?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[lol, no]]></title><description><![CDATA[Engineering management in anger. Essays about leading people, pressing buttons for a living, committing economic violence upon my foes, and finding agency + fulfillment. A mixed-media catastrophe of personal anecdotes and career advice.]]></description><link>https://lolno.com</link><image><url>https://substackcdn.com/image/fetch/$s_!WQj8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37265bed-c95a-494b-9b14-d33153eaaa76_256x256.png</url><title>lol, no</title><link>https://lolno.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 24 Aug 2026 02:44:50 GMT</lastBuildDate><atom:link href="https://lolno.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jim Hughes]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[managerscraft@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[managerscraft@substack.com]]></itunes:email><itunes:name><![CDATA[Jim Hughes]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jim Hughes]]></itunes:author><googleplay:owner><![CDATA[managerscraft@substack.com]]></googleplay:owner><googleplay:email><![CDATA[managerscraft@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jim Hughes]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Help]]></title><description><![CDATA[Cross-Functional Fear and Loathing in Silicon Valley]]></description><link>https://lolno.com/p/the-help</link><guid isPermaLink="false">https://lolno.com/p/the-help</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 09 Aug 2026 21:07:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CLzq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CLzq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CLzq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!CLzq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!CLzq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!CLzq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CLzq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5396060,&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://lolno.com/i/209517200?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.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_!CLzq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!CLzq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!CLzq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!CLzq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a22dbdd-26ee-4b81-90ba-af89b9da7d13_2816x1536.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 aria-hidden="true" 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><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>You get to the room 5 minutes early&#8230;because you always get there 5 minutes early. The lead chair is already taken by a laptop, its owner still in the hallway laughing at something you can&#8217;t hear. You take the chair with the broken tilt lock and will spend the rest of the meeting fighting to maintain some semblance of good posture&#8212;a metaphor for what&#8217;s to come.</p><p>Sarah pulls open the roadmap. &#8220;So we&#8217;re thinking Q3 for the migration,&#8221; she says, and you notice the <em><strong>we</strong></em>&#8212;how it includes you the way a photograph includes its background.</p><p>It&#8217;s already been decided, you can tell by the confidence of the performance: no questioning inflections of the voice, no pauses, slides not even on screen long enough to read. Worse, you can tell <em>everyone else</em> has already heard this by how they are barely paying attention, reading email.</p><p>You have a concern. You raised it in Slack, in the PRD, in the hallway on Tuesday. Each time you have tried a different phrasing: &#8220;maybe they just don&#8217;t understand what I&#8217;m saying,&#8221; you think. You raise it again now, fourth time&#8217;s a charm: &#8220;The auth service isn&#8217;t going to hold up under<strong>&#8212;&#8221;</strong></p><p>&#8220;Totally hear that.&#8221; She&#8217;s already typing. &#8220;Let&#8217;s take it offline.&#8221; The VP of Product is here and, in the presence of true nobility, the help are not permitted to speak unless spoken to. You have taken a dozen things offline in recent memory, and none of them have ever been discussed.</p><p>Sarah barrels on. A table showing deliverables is flashed with a column for the owner. The list is exacting and labyrinthian, and it&#8217;s the first time you&#8217;re seeing it. &#8220;So, here&#8217;s what Eng is going to deliver by Q3.&#8221; What Eng&#8212;not your name, just the role, the livery, the uniform that will go on being worn long after whoever&#8217;s currently inside it has been quietly replaced&#8212;is going to <em>deliver</em>, the verb servants get. You deliver a tray. You deliver a package. You deliver a message you didn&#8217;t write.</p><p>Top of the hour, the meeting wraps. Everyone looks at you expectantly. You say &#8220;sounds good&#8221; because the personal cost of dissent is too high. You mean it, almost. You have become very good at meaning things almost.</p><h1>Are you the tail wagging the dog or the dog wagging the tail?</h1><p>If you&#8217;ve spent any time around FAANG, the story above probably feels like a bizarre role reversal. At top tech firms, engineering runs the show. The general manager of any given product line is on the engineering ladder and was promoted up from the SWE ranks. Budgetary control and binding decision-making authority rest entirely with SWE leaders. PMs in this world must beg, borrow, and steal any scrap of authority they can get their hands on. The influence they wield comes from relationships&#8230; or, in rare cases, pure rational authority, wherein the product leader is simply <em>smarter</em> than their engineering counterpart and can win most arguments.</p><p>The engineering-product partnership is not equal. Not even a little bit. I got my first taste of what it feels like to be on the <em>other side</em> of this when I switched into finance from big tech.</p><p>At the low- and mid-tier of the finance world, your business analysts and product managers rule the roost (the PM:Eng ratios at these companies <a href="https://x.com/zuhayeer/status/2084499303041745025">are completely fucked</a>, like 1:3). For the first time in my life, I was sitting in executive decision-making forums and felt vestigial. It was incredibly clear the room had only a passing interest in my opinion on any given matter&#8212;that my input would be taken under advisement but that I had no role beyond consultation. Once an analyst or PM made a decision, my 100% compliance and acquiescence were assumed. Formal power doesn&#8217;t change this. As a VP, product counterparts came seeking my <em>approval</em> but never my <em>input. </em>Any question or feedback I offered was treated as a puzzle to be solved and then set aside so the original plan could proceed unmodified. My role was reduced to a headcount vending machine and a name that could be wielded like a weapon to force my team&#8217;s compliance.</p><p>Even within my narrow lane of ownership (technology), if I made a decision on my own about purely engineering matters like architecture, PMs would take great umbrage with the fact I had not sought their consent and alignment. Complex and emotionally charged interactions would unfold where I would be expected to justify myself&#8212;the PM&#8217;s right to oversight and control over <em><strong>all</strong></em> matters affecting &#8220;their product&#8221; was assumed and absolute. Oh, and by the way, literally nothing was safe from PM control; we also had &#8220;platform PMs&#8221; who owned the internal engineering systems.</p><p><em>&#8220;Holy shit,</em> this is horrible<em>,&#8221;</em> I thought to myself. And then it dawned on me, &#8220;Is this how my product counterparts felt back at Google?&#8221; Yep. 100%. This was a very poignant <a href="https://www.youtube.com/watch?v=ToKcmnrE5oY">maybe-we&#8217;re-the-baddies</a> moment.</p><p>Whether it&#8217;s product dominating engineering or engineering dominating product, I have <em>never</em> witnessed a truly equal partnership. I know they exist somewhere, but it&#8217;s the equivalent of finding a four-leaf clover&#8230;in the middle of a hurricane&#8230;wearing a blindfold.</p><h1>Mutually Assured Destruction</h1><p>XFN doesn&#8217;t stand for &#8220;cross-functional,&#8221; it stands for eXtremely Fucking Nonsensical.<br><br>Like<span>, here is this person who I rely on for&nbsp;</span><em><span>substantially all</span></em><span>&nbsp;of my most critical job responsibilities through daily, verging-on-hourly interactions&#8230; and despite that,</span> 90% of these relationships are the most corrosive, disorienting, and baggage-laden in your life.</p><ul><li><p>The PM&#8217;s career progression is almost <em>entirely</em> decided by what the EM ships, how quickly, and how well the system actually works. Effectively, none of these things are in the PM&#8217;s control.</p></li><li><p>The EM&#8217;s career progression is almost <em>entirely</em> decided by what opportunities the PM identifies, whether those materialize as &#8220;business impact&#8221; once delivered, and whether the Eng Dir/VP actually give a shit. Effectively, none of these things are in the EM&#8217;s control.</p></li><li><p>Each party has a distinct management chain with pairwise product-engineering relationships laddered all the way up the org chart&#8230;each in various states of disrepair leading to conflicting directives and proxy wars.</p></li><li><p>Neither party can succeed without the other, but behind closed doors, both would tell you emphatically that the other side is completely useless and obstructive and we would all be better off without them.</p></li><li><p>AI has gifted us a new battleground to play out this enmity, with PMs chucking AI slop PRDs over the wall and EMs vibe coding creaky piles of shit that barely work. Attention to detail has not just exited the building; it has boarded a plane to another continent and is halfway across the Atlantic.</p></li><li><p>There&#8217;s no clear decision maker&#8230;on anything. That PM might have 10 years of IC SWE experience and a CS PhD and <em>will</em> challenge your shitty architecture decisions. That EM might have founded 2 startups with successful exits and <em>will</em> veto a tepid, limp-wristed excuse for a product strategy. Try to escalate, and the next 3 layers of management have the same problem. Your nearest shared node in the org chart is some SVP who is so disconnected from the details you might as well roll a d20 to make the decision.</p></li></ul><p>I know this characterizes the relationship as exclusively hostile, but that is basically the default: <em>any slight misalignment whatsoever</em> will present to either party as obstructing one from doing their job. The whole thing can be summarized as two people holding each other at gunpoint screaming, &#8220;Move and I&#8217;ll blow your fuckin&#8217; face off!&#8221;</p><p><em>Someone is</em><span>&nbsp;reading</span> this thinking, &#8220;No! My XFN relationships are great, and we work so well together! This guy is just a Bad Person.&#8221; I am, yes, but also I&#8217;m glad you&#8217;ve figured out how to cope; congratulations&#8212;but that&#8217;s all it is: cope. I too can figure out how to keep the wild dog from biting my face off, but wait a minute&#8212;why is there a wild dog in the middle of the cubicle farm biting faces off in the first place??</p><h1>Peeling the Onion</h1><p><span>Functional silos are entire reporting chains (managers reporting to directors reporting to VPs reporting to&#8230;yet more VPs lmao) of the same job function. An EM and a PM that co-own the same objectives don&#8217;t actually share a common ancestor until you reach the SVP or the CEO.</span></p><p><span>Each layer will have a different political reality, and it will directly shape your quality of life. For example, when I worked on Google Drive, our product director was literal furniture, and everyone (PMs included) knew the only thing that mattered was convincing the Eng director&#8230;.but that didn&#8217;t extend to the VP level. The Product VP and Eng VP had an effective, loving, co-equal partnership, and you had to win over both. Go up one more layer and the Eng SVP was the only person who mattered. Add in sister orgs and the confusion multiplied. There were product leads in these other orgs so powerful they could upend our </span><em><span>entire</span></em><span> roadmap with a single email, while their Eng counterparts were basically sitting in the corner eating glue.</span></p><p><span>Getting anything done meant navigating multiple layers of people who mostly hated each other. It&#8217;s like peeling an onion. The more layers you peel, the worse it stinks, and now for some reason you&#8217;re crying.</span></p><p><span>You might think, &#8220;That&#8217;s fine, I can just talk to my partner, and I&#8217;m sure we can work things out,&#8221; but the reality of </span><em>working for different managers</em> will thwart you<span>. As much as we try to be our own person, success at BigCo largely means figuring out what your boss really wants. You are directly incentivized in the form of career growth/power to prioritize what they think over the collective opinion of your peer group. </span>See where this is going?</p><p>This is why cross-functional relationships are characterized by so much manipulation. The distinction between <em>influence</em> and <em>manipulation</em> is that the latter is done without the other person&#8217;s interests at heart. Your career advancement at the expense of your peer&#8217;s, collective truth-seeking, or what&#8217;s right for the customer is the very definition of &#8220;not in their interest.&#8221; We&#8217;re so good at lying to ourselves that this doesn&#8217;t even cross our minds; we equate what will get us rewarded with what&#8217;s best for everyone.</p><p><span>To keep any group headed in the same direction, you need alignment one level up (at a minimum). What this means in practice is arming your boss with a viewpoint, facts/data/analysis to back it up, and sending them off to do battle with their peer directors/VPs/whatever. If you&#8217;re precocious, you could try directly influencing these organizational Aunts and Uncles&#8230;but more often than not all I got was confused looks, &#8220;Why are you talking to me? Is your Dad home?&#8221; Hurray for hierarchy! </span>Culture eats strategy for breakfast<span> and all that tired shit.</span></p><h1>Til Death Do You Part</h1><blockquote><p>But to be fully couched within the comfort of a friend is a mode existence with severe implications. To please you perfectly she must understand you perfectly. Thus you cannot defy her expectations or escape her reach. Her benevolence has circumscribed you, and your life&#8217;s achievements will not reach beyond the map she has drawn.</p><p style="text-align: right;">&#8212;Jonathan Blow&#8217;s <a href="https://en.wikipedia.org/wiki/Braid_(video_game)">Braid</a></p></blockquote><p>How strange it is that this person is basically your work husband/wife&#8212;whose abilities and compatibility with you will fully determine the extent of your accomplishments&#8212;and yet you have no choice in the matter? </p><p>Influencing this is a quintessential part of <em>cross-functional hell</em>. </p><p>My myriad bosses over the years have never failed to bring up the topic, &#8220;How is &lt;some random PM&gt; doing?&#8221; or &#8220;What do you think of &lt;some bozo&gt;?&#8221; where the context clues and tone make the subtext incredibly clear: &#8220;I want to get this person replaced and need ammo.&#8221; In a previous job, every 1:1 was basically a dirt-gathering session, and it was an open secret that when a PM got fired, it was because the Eng director wanted them gone. The crazy thing? That was probably rightly so, as otherwise we would have been sabotaged by deadweight.</p><p>I was blissfully unaware of these backchannels as a line manager, but once I became a manager-of-managers, that changed. Literally every single 1:1 with my product counterpart began with the weekly Airing of Grievances where I would hear about insane shit my reports said or some random engineer who&#8212;according to the PM&#8217;s exceptional technical judgment &#128580;&#8212;seems to be &#8220;moving too slow.&#8221; I would, of course, return the favor by putting on blast the latest coked-up PRDs and product reviews that were total shit shows. My role shifted from building products to playing recess monitor, and I had no choice in the matter: abdicating this responsibility meant leaving my org&#8217;s success to chance.</p><p>Any leader worth their salt has to master the skill of backseat managing their cross-functional partner&#8217;s hiring and firing decisions. I&#8217;m sorry to burst your bubble. This is happening quite literally nonstop at <em>every single layer of the org chart</em>. Someone, somewhere is gossiping about you and it is <em>directly and irrevocably</em> altering the trajectory of your career. You cannot opt to ignore this if you ever want to be anything more than a low-level IC.</p><p>You&#8217;re being hired into a marriage where the average case scenario is you <em>will at some point</em> get divorced, and the custody battle over the kids (aka who gets to stay on the team and who gets reorged to Timbuktu) will permanently traumatize you.</p><p>In an alternate universe, product and engineering leads would be hired as couples. A matched set that you already know works well together and has established strong working habits, compatible worldviews, and knows how to have tough conversations. But no, we live in a world where hiring managers try to play matchmaker.</p><h1>Breaking the Nash Equilibrium</h1><p>So if you &#8220;get what you get&#8221;, how do you make things work? How do you navigate the criss-crossing layers of cross-functional dysfunction with their conflicting priorities, mismatched incentives, and mutually assured destruction?</p><p>As much as I&#8217;ve characterized this as a futile prisoner&#8217;s dilemma, I&#8217;ve had legitimately wonderful cross-functional relationships&#8230; relationships where 1+1 actually makes 3 because we amplified each other&#8217;s strengths, covered our weaknesses, and had unbreakable trust, which meant disagreement was safe and productive (miss you, Ryan, Hari, Liz, Andrew, Luke&#8230;may we cross paths again someday).</p><p>Getting there involves some luck&#8212;not much you can do with a totally incompatible personality, ethics, or life priorities. Still, assuming none of that gets in the way, I&#8217;ve learned a few things over the years which directly contribute to building the ideal product-engineering partnership.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lolno.com/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">lol, no 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><h3>Do what you say and say what you mean.</h3><p>This one is pretty simple. Actually follow through on your promises and never use doublespeak. If you say you&#8217;ll prepare a report by Tuesday, then get it done by Tuesday and make sure it&#8217;s high quality. The bar is so low it&#8217;s subterranean, and this alone will differentiate you from your peers. In roles like product that are dependent on others to do a substantial amount of the actual building, you can quickly become everyone&#8217;s favorite go-to collaborator. In the early days of the relationship, 100% consistent reliability will open the door to deeper trust. </p><p>Furthermore, never mislead, selectively omit facts, or cover up what you really think. You are trying to demonstrate with your deeds that you are totally above board and trustworthy. This also means challenging directly and having some uncomfortable conversations, but believe me when I tell you that beats being nice all the time, covering up what you really think, and then surprising your partner at the last minute. I will take a disagreeable person who displays trustworthy competence and integrity over a smiling imbecile that just wants everyone to &#8220;feel good.&#8221;</p><h3>Day Long Jam Session</h3><p>Take your XFN partner for a day-long 1:1 offsite. I usually attach these to the formation of a new team, a reorg, or the initiation of a multi-quarter initiative. The agenda is fairly flexible and contextual, but it&#8217;s always built around deep diving and aligning on key principles, decisions, and actions for whatever Big Thing you&#8217;re about to embark on together. To make things more exciting, I also plan a couple &#8220;over the top&#8221; exercises like card sorting or journey mapping&#8230;<a href="https://www.gv.com/sprint/">design-sprint</a>-type stuff. These activities rarely happen, either because they are considered too time-intensive or because the team is so unfamiliar with them that they would never work at scale. Still, the intimate 1:1 environment is perfect for working around all of the above. Throw in a long lunch break somewhere nice and a couple field trips to top it off (I love taking people to my bougie coffee house where they can try single-origin pourover for the first time).</p><p>Something really magical happens when the two of you get away from the bustle and the prying eyes, and with enough time to let conversations expand to fill the time they need rather than artificial 30-minute blocks&#8212;when you can drop your polished professional persona, the need to maintain consistency with past proclamations, and the demand that every meeting resolve productively to a set of decisions and action items. Real vulnerability and intimacy can occur, and with them, myriad opportunities to show you can be trusted with fragile ideas, self-doubts, and all the messy stuff we sweep under the rug when doing battle in the Corporate Coliseum. Each of you will get to know how the other person thinks, what they value, their fears, and their aspirations.</p><p>No one I know does this. I always get excuses like &#8220;We&#8217;re too busy,&#8221; or &#8220;I&#8217;m not sure I&#8217;m comfortable inviting my product partner to something like that,&#8221; or &#8220;OMG what would we even talk about all day?&#8221; But this little trick has a 100% success rate at taking relationships to the next level. If I ever found myself in an environment where something like this was impossible, or my product partner wasn&#8217;t willing to play ball, I would seriously re-evaluate if that was the place for me and probably leave shortly thereafter&#8212;it&#8217;s <em>that</em> essential to establishing bidirectional trust and alignment.</p><h3>Word Vomit </h3><p>You ever have something important to say but aren&#8217;t quite sure how to phrase it? Maybe you&#8217;re worried about implying implications and hurting the other person&#8217;s feelings&#8230;so you stay quiet. Important disagreements and frictions go unresolved, and the psychic burden of all those loose ends and quiet resentments builds until one of you bursts.</p><p>To solve this, the two of you agree to create a container&#8212;a safe space to air your concerns&#8212;where the other person agrees to hold off on their immediate reaction, not read too much into the exact phrasing, and listen to understand and collaboratively sort out what you really mean. It&#8217;s a bidirectional acknowledgment that &#8220;I don&#8217;t know what I&#8217;m trying to say, but I need to say something; let&#8217;s figure it out together,&#8221; and for both parties to explicitly probe and test conclusions/implications rather than assuming the meaning you inferred was the intended one.</p><p>When one of these moments arises, you trigger the container with a key phrase. Known for my elegance and way with words, I always use &#8220;I need to word vomit.&#8221; If the other person acknowledges, you proceed. If they don&#8217;t accept the invitation, then you need to wait for a better time&#8212;maybe tempers have flared, and they aren&#8217;t in a productive headspace. </p><p>If this sounds <em>very</em> intimate, that&#8217;s because it is. You are applying a technique straight out of couples counseling and need an extreme level of comfort with your XFN counterparts. As a result, this technique may be out of reach for many of you. That&#8217;s especially so if you pair up with 5+ XFN partners&#8212;<a href="https://en.wikipedia.org/wiki/Dunbar%27s_number">Dunbar&#8217;s Number</a> guarantees you won&#8217;t be able to maintain enough of these deep relationships. Every interaction you have will be shallow and transactional. It&#8217;s why hyper matrixed environments are truly, deeply, and irrevocably structurally fucked.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><h3>Disagree in Private, Support in Public</h3><p>Never disagree with your XFN partner in group settings&#8212;save the debate for your 1:1.</p><p>That doesn&#8217;t mean you have to go out of your way to offer unequivocal support and endorsement&#8212;if you truly disagree (maybe they surprised you with a hot take mid-meeting), then stay quiet or talk around the issue. Anything but challenging them directly in front of the group.</p><p>A public disagreement can be <em>disastrous</em>. At an individual level, it triggers major <a href="https://www.bitesizelearning.co.uk/resources/scarf-model-david-rock-explained">status and relatedness threats</a> that trigger fight-or-flight responses. The group may include their superiors or your subordinates, which puts both their professional standing and credibility at risk. Worse, your subordinates will pick up on the misalignment and create downstream chaos.</p><p>Look, I&#8217;ll be the first to say this is the path of cowards and anyone who can&#8217;t handle public disagreement is weak, their bloodline is weak, and they will not survive the winter. Unfortunately, there are, like&#8230;10? companies on Earth where the culture will support this sort of behavior. <span>Unless you work at </span><a href="https://a.co/d/00W7GASb"><span>Bridgewater Associates</span></a><span> or some shit, this is not a winning strategy.</span></p><h3>Influence over Control</h3><p>This one is from <a href="https://a.co/d/050pdimy">Unlocking Leadership Mindtraps</a>. It&#8217;s gooey, HBR-style fan fiction, but god I wish I read this much, <em>much</em> sooner in my career.</p><p>Ask yourself not &#8220;what do I control&#8221; but rather &#8220;what can I influence?&#8221; Control is an illusion. Even if you had <em>zero</em> XFN partners and absolute authority within your domain, you are limited by the extent to which you can program the meat machinery that constitutes your team. More power changes nothing&#8212;new CEOs frequently express surprise at how little control they have. They climb all the way to the top to find out there are always <em>more stakeholders</em> (the board, markets, customers) and <em>more constraints</em> (resources, people, culture).</p><p>Humans have an instinct to seek control over their immediate environment for safety, which helps explain why the desire to control is so strong. However, attempts to directly manage complex, interconnected outcomes such as company culture fail because these systems&nbsp;<em>emerge naturally</em>&nbsp;rather than&nbsp;by <em>following orders</em>. Enforcing strict rules often results in unintended consequences and increased stress when things go awry.<br><br>Especially once you mix in a dozen XFN partners, you must shift from dictating specific outcomes to providing direction. Then ask yourself what conditions or support you can create to help that vision come to pass. You will have to deal with implicit limits that come with this mindset. Some things (and people) are <em>outside your realistic influence</em>. All you can do is nudge the system towards a slightly more optimal course one day at a time.</p><h3>Ask &#8220;What Do You Need From Me?&#8221;</h3><p>In <a href="https://a.co/d/0hWTuQGl">The Effective Executive</a>, Peter Drucker points out that in knowledge work, a specialist&#8217;s output is basically useless until someone else picks it up&#8212;your job isn&#8217;t done when you close the task, but once you figure out who touches it next and what they actually need to make it work.</p><p>Try asking your PM<span>,&nbsp;</span><em><span>&#8220;What do you need from me, in what form, and by when, to do your job well?&#8221;</span></em><span>&nbsp;in your next 1:1. </span>They will completely short-circuit because <em>nobody</em> thinks like this. XFN relationships usually flow the exact opposite direction (&#8220;what do you owe me? why is this late? why do you suck so bad?&#8221;)</p><p>This flows in both directions, too&#8212;you have to shift how you view your coworkers and start asking what they are genuinely great at and how you can use that contribution to maximum effect.</p><p>Most companies are terrible at this; org charts and rigid job ladders dictate what someone does day-to-day. That&#8217;s how a brilliant engineer can end up wasting half their week writing status updates just because that&#8217;s what &#8220;Tech Lead&#8221; has meant historically.</p><p>If you can do both things&#8212;ask what people genuinely need from you, and deliberately figure out how to leverage their contributions&#8212;your relationship will stop being adversarial by default. You will achieve what no amount of &#8220;alignment meetings&#8221; or process tweaks ever will: real honest-to-god collaboration.</p><h1>Libert&#233;, &#233;galit&#233;, fraternit&#233;</h1><p>Dealing with matrixed orgs and cross-functional partners is awful. Why do you think &#8220;builders&#8221; (a mythical chimera of Engineer+PM+Designer+PMM all rolled into one) or going &#8220;founder mode&#8221; (ignoring all boundaries and just doing everything yourself) have captured the zeitgeist so completely? This shit sucks so bad that even these Twitter Thought Leader Acid Trips sound more appealing.</p><p>In 2026, things are only getting worse as now there is a whole layer of anxiety about how AI will enable &#8220;Engineers to reclaim the PMs job&#8221; or &#8220;PMs to replace Engineers&#8221; (let&#8217;s not even talk about designers and researchers; <a href="https://www.lennysnewsletter.com/p/how-tech-workers-are-feeling-in-2026">people are 100% convinced those job families are donezo</a>, which is the stupidest shit I&#8217;ve ever heard). Things were already hard enough, but now it truly is a zero-sum game&#8212;someone is leaving in a body bag.</p><p>I think we&#8217;ll all find out <em>real quick</em> that it&#8217;s actually very hard to be an excellent strategist, product designer, marketer, backend developer, and SRE all at once. Especially not when quality/craft increasingly matter for winning in the market. In the (admittedly rare) times in my career when our XFN cohort was able to move in unison towards a shared goal, the things we built were truly incredible&#8212;among the proudest accomplishments of my career.</p><p>The tips shared here&#8212;reliability, radical honesty, maintaining a shared front, creating containers for disagreement, letting go of control, and playing to mutual strengths&#8212;can help you recreate those winning environments, but there are limits. You can&#8217;t just &#8220;be super agreeable&#8221; and suddenly expect everything to work out. <span>There will be cultures and people you </span><em><span>can&#8217;t</span></em><span>&nbsp;work with, and rather than make everyone suffer, you need to raise your hand and opt out. </span>When <span>interviewing for a new job, you must&nbsp;</span><em><span>also demand</span></em><span>&nbsp;to interview</span> your XFN partners and be brutally honest with yourself: do you want to interact with these people every day for the rest of your career? This is <em>even more</em> important than assessing whether you vibe with your manager and your team.</p><p>Have fun out there and play nice everybody &#128522;</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Find me a legacy company with diffuse responsibility operating in an environment ripe for technological disruption, and it&#8217;s just a matter of time until they stumble. I have made a killing shorting the stock of companies run this way; it&#8217;s literally like shooting fish in a barrel. They have no capacity whatsoever to respond to competitive threats, paradigm shifts, and market disruption.</p></div></div>]]></content:encoded></item><item><title><![CDATA[The Accidental Corporate Apologist]]></title><description><![CDATA[How I learned to stop worrying and love my job at BigCo]]></description><link>https://lolno.com/p/the-accidental-corporate-apologist</link><guid isPermaLink="false">https://lolno.com/p/the-accidental-corporate-apologist</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sat, 25 Jul 2026 14:15:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!F_YR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F_YR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F_YR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F_YR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F_YR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F_YR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F_YR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2625848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/207556987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F_YR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F_YR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F_YR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F_YR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f1e57b-3850-47bc-b4cb-9edd9423a662_6000x4000.jpeg 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 aria-hidden="true" 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><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&#8217;s been a particularly <em>existential</em> week.</p><p>I&#8217;ve had not 1, not 2, but 3 separate people call me, spiraling and thinking about leaving their careers. Google just laid off more friends. The Algorithm has decided to jam-pack my feed with posts about quitting, changing careers, reinventing yourself, and how the &#8220;corporate deal&#8221; has changed. I&#8217;ve written about <a href="https://lolno.com/i/204936025/27-professional-ennui-can-kill-you-literally">the epidemic of professional ennui</a> before, but it&#8217;s only getting worse. The age of the Millennial Midlife Crisis is upon us.</p><p>On top of that, on Sunday I scattered my Mom&#8217;s ashes&#8212;talk about existential. It was a beautiful ceremony: a field of wildflowers next to an alpine lake high in the Rockies. This has been 7 years in the making and brought me a peace I didn&#8217;t know I needed. When confronting death, you really start to think about purpose: how you&#8217;re spending time, legacy, what&#8217;s really worth doing when it all ends the same way&#8212;ashes to ashes, dust to dust. Sitting by the lakeshore, I wrote her one final letter. Much was said, but at the end I committed to using the gifts she gave me to live fully on my own terms and do something that makes her proud. The clock is ticking.</p><p>You might think, given the context, that I&#8217;m all aboard the &#8220;quit your job and surrender to where life takes you&#8221; camp. Hell, I have <a href="https://lolno.com/p/what-is-your-next-great-regret">entire posts</a> that <a href="https://lolno.com/p/passion-in-the-workplace">talk about passion</a>.</p><p>Nope. Life is a little bit more nuanced than &#8220;corporate = drudgery&#8221; and &#8220;startup = freedom.&#8221; I&#8217;m actually deeply worried the feed is gaslighting all of us into feeling like we&#8217;ve made a deal with the devil, selling our souls for a salary + benefits, and that having a bad day at work or a stupid coworker should be cause for full-blown existential depression. </p><p>Here&#8217;s where they get it wrong, what is really going on, and what to do about it.</p><h1>The deal hasn&#8217;t actually changed.</h1><p>The folksy pastiche about staying at the same company for 40 years and retiring with a gold Rolex is just a bedtime story. I have literally known zero people for whom this is how it worked. Not my parents, not even my grandparents. For all of them, life was a continual, clawing-tooth-and-nail climb out of poverty full of curveballs, mid-life pivots, shitty employers, broken trust, and everything else you can think of. I&#8217;m sure <em>someone</em> had a happy ending at some point, but people also win the lottery&#8230;don&#8217;t hold your breath.</p><p>Beyond this, some feel betrayed because ascendancy up the corporate ladder is seen as an inevitability if not a guarantee. All one needs to do is show up, do a good job, and, every few years, you&#8217;ll be offered a promotion with more money and a bigger team. lol what? There are only so many manager/director/VP jobs. If you want to lead an org of 200, you are<span>,&nbsp;</span><em><span>by definition,</span></em><span>&nbsp;occupying a 1-in-200</span> role. You must enter the coliseum and brutally murder 199 other combatants armed only with a PowerPoint and a Kanban board. The IC ladder is no different&#8212;a company only needs so many principal engineers.</p><p>You have always had to outperform and outcompete your peers for progression. Layoffs have always been a thing and have occurred at <a href="https://fred.stlouisfed.org/series/JTSLDL">remarkably consistent rates for decades</a>. Be excellent or perish.</p><h3>Productivity expectations have always increased</h3><p>Speaking of things that haven&#8217;t changed: new technology has always caused an increase in baseline productivity expectations, repurposing of outmoded labor, and exhortations to &#8220;adopt or perish.&#8221; <a href="https://a.co/d/08PUMply">It&#8217;s been the same for the last 10 technological revolutions.</a></p><p>This has happened no less than 5 times within software engineering alone, and the industry hasn&#8217;t been around that long:</p><ol><li><p>Punch Cards to Terminals</p></li><li><p>Assembly to Compilers</p></li><li><p>Line Editors to IDEs</p></li><li><p>Desktop to Web</p></li><li><p>Humans to Agents</p></li></ol><p>AI is not some rare, once-in-a-lifetime, extinction-level event. It&#8217;s just the first paradigm shift you&#8217;ve had to deal with since becoming a paid, working professional. That does not imply such changes are <em>easy </em>or <em>simple</em>&#8212;not by a long shot&#8212;but they are de rigueur when careers are 40+ years long.</p><p>The people I know who are actually <em>excited</em> are those who have been through one of these transitions before&#8230;basically elder Millennials and Gen X. I seriously wonder if the <a href="https://i.imgur.com/ydiV3dY.png">death of junior engineering roles</a> has more to do with this effect than any conviction that only seniors will know how to walk the AI dog.</p><h1>The deal has pretty sweet kickbacks.</h1><h3>Division of Labor</h3><p>Corporations enable us to divide-and-conquer the work needed to, ya know, make actual money. Don&#8217;t like outbound sales? Great! You don&#8217;t have to do it. Don&#8217;t like dealing with customer support tickets? Pass. Pandas scares you a little? Make the data weenies deal with it.</p><p>If you want to narrowly specialize in performance optimization for assembly subroutines in low-level kernel code, you can do so and probably have a mid-six-figures job doing it. I have worked with engineers who can&#8217;t write a single coherent sentence of English. Putting them in front of a customer would be like conducting a CIA psyop&#8230;on the customer. And yet, they are marvelously effective technical contributors with thriving careers rather than burdens of the state.</p><p>Some people don&#8217;t like confining themselves to a single box their whole life, and that&#8217;s fine! The structural rigidity of BigCo can be a virtue in disguise. Ladder changes and job rotations allow you to try out entirely new jobs/careers without having to go back to school or break into another field. All the better that it&#8217;s in the big leagues with experienced mentors readily available, and not just playing pretend at an internship or as a &#8220;side hustle&#8221; (shudder).</p><h3>Big goals demand big teams</h3><p>It&#8217;s certainly possible for a small, nimble team to achieve great things. One person can change the world. But it&#8217;s also true that some things <em>require</em> a large group of people cooperating, no ifs, ands, or buts.</p><p>A planet-scale SaaS company will operate in thousands of jurisdictions, negotiating deals across the globe with dozens of data center and network infrastructure operators, and needs a multicultural go-to-market team capable of acquiring customers across segments and regions faster than they churn. Get too big, and regulators will slow you to a crawl (the EU&#8217;s <a href="https://en.wikipedia.org/wiki/Digital_Markets_Act">DMA</a> and Germany&#8217;s <a href="https://en.wikipedia.org/wiki/Federal_Cartel_Office">FCO</a> anyone?)</p><p>Every company started somewhere; technically<span>, you&nbsp;</span><em><span>can</span></em><span>&nbsp;iteratively build your way towards becoming the next Google&#8230;</span>but that&#8217;s easily a decade+ of effort with no guarantees. Meanwhile, if you want to make a difference in the lives of <em>billions,</em> you can join a corporation that already has the teams, structures, capital, and customers in place and be living your dream <strong>by this time next week</strong>.</p><h3>An engine of upward mobility</h3><p>The American Corporation is an amazing engine for social mobility, and in an age where big tech is at the top of the corporate heap, nothing comes close to a FAANG job in its ability to lift individuals out of poverty and set them on a path to lifetime security and abundance.</p><p>I know new grads have it rough right now, but I can&#8217;t stress enough how much of a historical oddity it is that one can make such huge leaps <em>in a single generation</em>.</p><p>I come from a family of blue-collar hourly wage laborers with nary a college degree to be found. I was literally homeless for part of my childhood. By modern professional standards, I was a hick with a keyboard. Now, on the other side of undergrad + a pretty brief corporate grind, I am fully post-economic. I get invited to donor galas alongside Fortune 500 CEOs. I know which fork to use in a formal place setting and can tie a tie without a YouTube video. I even own a bidet. Incredible.</p><h3>Brain Trust&#8230;assemble!</h3><p>The mobility on offer extends beyond wealth generation. The best corporations have fastidiously curated their talent, and you will be surrounded by a veritable buffet of interesting people: Ivy League grads, eccentric geniuses, silver spoon elites, international talent from every corner of the Earth, connoisseurs of esoteric hobbies, and everything in between. At a minimum, they&#8217;ll be ambitious and conscientious, which counts for something. I have worked with both Turing Award and Fields Medal laureates, the sort of people I would have never met in a zillion years otherwise.</p><p>Even if at times you feel surrounded by smiling imbeciles in your current job, I promise the grass isn&#8217;t always greener on the other side. Being an early-stage or even solo founder is a very isolating experience&#8212;you have <em>no one</em> to talk to while your self-worth is continually punched in the gut. Once success strikes and you start hiring a staff, there won&#8217;t be much money to go after The Greats. At my last startup, I spent <em>years</em> wading through a sea of contract-to-hire oafs&#8212;water, water everywhere but not a drop to drink.</p><p>Speaking of who you surround yourself with, your immediate colleagues constitute a highly selective group implicitly filtered for similar intellectual interests, abilities, socialization habits, and pastimes.</p><p>For example, when you join Big Tech, you enter Nerd Heaven. No matter what your special interest or autistic hyperfixation du jour, there are easily hundreds of people at work who share it. Dungeons and Dragons, 3D printing, anime, particle physics, you name it. For folks who felt out of place growing up, it&#8217;s often the first time they felt &#8220;at home&#8221; anywhere.</p><p>More than happenstance is driving this: engagement in almost all forms of civic life has declined steadily since the 1960s. Voter turnout, attendance at town halls and school meetings, religious practice, membership in civic organizations like the PTA, labor unions, the Elks Club, and even informal socializing such as having neighbors over for dinner parties or playing cards. It&#8217;s all declined.<br><br>The need didn&#8217;t go away&#8212;it&#8217;s encoded in our very biology to seek tight-knit social groups. If your neighbors don&#8217;t know your name, your family&#8217;s a plane ride away, and the Elks lodge shut down in 2009, then the people you eat lunch with five days a week, who&#8217;ve watched your kid grow up over Slack, who show up when your parent dies, are your community<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>For many, their place of employment is the only community center left standing.</p><h1>Alienation in the workplace</h1><p>I never thought I&#8217;d defend corporate life so vigorously &#128579;</p><p>I&#8217;ve experienced my fair share of disillusionment. Political infighting, ladder-climbing psychos, backstabbers, one actual officially diagnosed sociopath, 5-year-long projects that were utterly pointless, outright discrimination/sexism/ageism, an endless string of unforced errors, empty suits, rampant coasting, you name it.</p><p><span>None of it is endemic to big companies, so I&#8217;m usually screaming inside my head, &#8220;Really people?! Do you </span><em><span>want</span></em><span> things to be bad? Do you </span><em><span>enjoy</span></em><span> working like this?&#8221; </span>I <span>deeply believe in&nbsp;</span><a href="https://lolno.com/i/204936025/22-hold-a-high-bar-respect-the-opportunity"><span>respecting the opportunity</span></a><span>, so the constant shrugging of shoulders and faux-charming conceits &#8220;what do you want me to do about it?&#8221; send</span> me into apoplectic rage.</p><p>I&#8217;ll still go on record and say it&#8217;s worth it&#8212;that there&#8217;s a version of BigCo that doesn&#8217;t have to be mind-numbing and soul-destroying. It could even be&#8230;<em>great</em>.</p><p>That said, I don&#8217;t think we&#8217;d be seeing such a wildfire of depression, quitting, disenfranchisement, and corresponding think pieces if there wasn&#8217;t <em>something</em> going wrong. So what is it about these jobs that is just so distinctly unfulfilling?</p><p>The answer can be found in <a href="https://en.wikipedia.org/wiki/Self-determination_theory">Self Determination Theory</a>.</p><h3>No Autonomy, Accountability Theatre</h3><p>The median corporation is really just a gigantic machine for avoidance of accountability.</p><p>Nearly every meaningful decision is turned into a &#8220;group decision&#8221;: quarterly planning, hiring committees, architecture review boards, code reviews, design crits, etc. Go figure dogshit leaders can never be fired; it is frankly <em>trivial</em> to launder bad calls as either a blameless consensus or to create so much fog of war you can&#8217;t even see your hand in front of your face.</p><p>So long as you follow the standard process and do all the reviews, nothing can ever come back and bite you. Likewise, this very same mechanism makes leaders extremely gunshy about exceptions because an exception carries a name&#8212;it sticks out and demands consequences if proven wrong.</p><p>So even when <span>an&nbsp;</span><em><span>obvious&nbsp;</span></em><span>decision is&nbsp;</span>needed for the good of the business, it won&#8217;t happen. You&#8217;ll get sent to prepare a mountain of slide decks and go through 15 rounds of review while customers suffer and projects fail, all so your boss can CYA.</p><p>More than just a means of implementing capital punishment, accountability is also the spice that makes our labor feel <em>worth it</em>&#8230;like our existence has real import and consequences. When you alone can make a decision that materially changes the course of a team, you feel the burden and weight of responsibility&#8230;but the good kind. More &#8220;weighted blanket&#8221; than &#8220;Sisyphean boulder&#8221;&#8212;a delicious nectar that is one part self-worth and one part self-efficacy (&#8220;I matter, I&#8217;m so good at this someone trusts me&#8221;).</p><p>Absent this level of responsibility, everything feels pointless.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lolno.com/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">lol, no 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><h3>No Relatedness, Surrounded by Strangers</h3><p>I know I talked a big game about corporations creating like-minded communities and a sense of belonging&#8230;but you can also find yourself surrounded by people you do not like one bit.</p><ol><li><p>Not all firms excel at creating culture and imbuing their members with an identity. In the absence of a clear mission/purpose and real social bonding, all that&#8217;s left is a brutal, animalistic survival of the fittest.</p></li><li><p>Even when the company does succeed at establishing a strong and distinct culture, did <em>you</em> choose your employer wisely? Does it reflect your own interests and values? We often betray ourselves and &#8220;act the part&#8221; to get a job, not realizing we&#8217;ll have to maintain the charade forever.</p></li><li><p>The culture shifts over time, especially when an industry or company matures into a &#8220;prestige job&#8221; (think: doctor, lawyer, and now, software engineer); you start to see more people showing up exclusively for the clout and the paycheck. They lack any passion for the work, and will hold their nose, opting out of the culture entirely, leaving you surrounded by fakey fakers.</p></li></ol><p>This can literally trigger your fight-or-flight response. Spending half your waking hours with <em>maxed-out </em>anxiety is bad, mmmkay?</p><p>Even when the social dynamics are going alright, you&#8217;re not out of the woods&#8212;be on the lookout for contempt loops.</p><p>For years I misdiagnosed my own frustration as an authority problem. More scope, 1 more title, 1 more direct report, and surely the friction would go away. It never did, because the actual problem was values mismatch. I have a strong conviction for intellectual honesty: say what you mean and do what you say; candor is non-negotiable, politeness is optional. Meanwhile, in any large org, communication isn&#8217;t optimized for truth; it&#8217;s optimized for consensus&#8212;hedges, &#8220;let&#8217;s take this offline,&#8221; six-paragraph emails that bury a one-sentence decision under padding.</p><p>My values put me in a permanent minority position. Showing up daily to a conversation everyone else is having in code, watching a decision that should take 5 minutes get slow-walked through 3 weeks of flowery non-answers, and having to choose between violating your values or sticking out. This constant tug of self-betrayals is what&#8217;s known as <strong>egodystonia</strong>. It creates a doom loop with an inevitable outcome:</p><ul><li><p>A values mismatch means you can never fully sublimate your ego into the group, because sublimation requires believing the group&#8217;s norms are correct.</p></li><li><p>That gap curdles into contempt&#8212;first for the mealy-mouthed email, then the person who wrote it, then the whole culture that rewards vagueness.</p></li><li><p>Contempt doesn&#8217;t stay hidden. It leaks out as behavior: you say the blunt thing in the meeting everyone else was tiptoeing around, you reply-all with the direct version of what someone spent a paragraph dressing up, you stop RSVPing to the &#8220;quick sync&#8221; that&#8217;s really just a venue for softening bad news.</p></li><li><p>That behavior marks you as blunt and difficult. The tribe&#8212;the one thing that was making the rest of BigCo bearable&#8212;starts closing ranks. Social rejection turns into yet more contempt and the loop begins again.</p></li></ul><p>There&#8217;s no equilibrium here. Just rising pressure between how you believe people should act and how you&#8217;re expected to, until something gives: you get pushed out, you quit, or you spend the next decade sanding down the very traits that make you good at what you do.</p><h3>No Mastery, Cargo Cult Behavior</h3><p>Let&#8217;s talk about the actual work itself. Not in abstract&#8212;think very precisely about the various microtasks and actions that compose your day. Everyone wants to be good at what they spend their time on&#8212;to feel mastery and with it a sense of self-determination.</p><p>To do that, you start out by observing what other, successful people are doing and reason that if you do the same, good things will happen.</p><p>At first it&#8217;s just acculturation to corporate life. For example, you learn that there are certain phrases and ways of speaking which instantly set people at ease and give you some amount of influence. I remember my boss at Two Sigma uttering the phrase &#8220;let me lay out a strawman for next steps&#8221; as a preface to basically telling a room of peers/more senior people what to do&#8230; and they actually listened. I started using the phrase myself, and it just kept working. Magic.</p><p>You keep going; soon much of how you approach the job is based on mimesis rather than parthenogenesis:</p><ul><li><p>Every new project that crosses your desk gets a PRD, a design doc, and a work breakdown structure&#8230;even when it&#8217;s straightforward.</p></li><li><p>Every status update gets sterilized to only good news. Anything going wrong gets compressed into an optimistic sound bite about &#8220;following up.&#8221;</p></li><li><p>Every meeting gets a running doc, action items with named owners and due dates, and a &#8220;parking lot&#8221; section for future recurrences.</p></li></ul><p>When you break into management, the number of things you have to do quadruples<span>, and&nbsp;each&nbsp;has</span> a typical approach or standard framework practiced by 99% of your peers:</p><ul><li><p>The team runs off 2-week sprints replete with sprint planning, retrospectives, and story points.</p></li><li><p>You publish a team newsletter because &#8220;visibility&#8221; is a nuclear arms race.</p></li><li><p>Every strategy gets flattened into 3 OKRs and a handful of suspiciously tidy KPIs.</p></li></ul><p>Eventually, you&#8217;ve mastered the dance steps of leadership. Your slide decks are perfect, your OKRs pristine, your KPIs only go up, and you can deliver a standard stump speech for everything from selling a new hire to delivering a PIP to explaining your strategy.</p><p>And yet, you&#8217;re stuck. Every single cycle, the same story: meets expectations, good work, keep going.</p><p>The problem is that while you can perform the dance, you can&#8217;t actually say <em>why</em> you&#8217;re doing any of it, or why those particular actions are fit to task or particularly effective for creating results. You are subconsciously evaluating yourself by how much you sound, look, and act like other managers, rather than by how well you deliver <em>actual</em>, <em>impactful</em> <em>business</em> <em>results</em>. Bezos warns of this in his 2016 letter to shareholders, calling it <a href="https://www.aboutamazon.com/news/company-news/2016-letter-to-shareholders">management by proxy</a>.</p><p><a href="https://en.wikipedia.org/wiki/Cargo_cult">We keep building wooden planes</a>, but the promotions do not come.</p><p>You will go through the motions of performing these actions completely disconnected from the underlying work, and even if your mind doesn&#8217;t pick up on it right away, your body will. You will feel the pointlessness of your labor&#8212;the simulacrum within the simulacrum. And one day, you <em>will</em> consciously realize <em><strong>all</strong></em> of your hours are really just enacting a giant kabuki theatre about office work rather than taking the shortest route to solving real problems.</p><p>Nothing makes this stick out more than when I try to describe what I do to my friends and family, all of whom work at smaller employers. They don&#8217;t understand, and their bewilderment is all the more unsettling because these are experienced professionals. Reactions range from politely changing the topic to &#8220;is that it? what else?&#8221; Your sense of mastery will be entirely diminished, and with it a gnawing self-doubt will begin to eat you up inside.</p><h1>Agency at BigCo</h1><p>You don&#8217;t have to quit corporate to avoid all this badness; <strong>there is a mindset that lets you seize the richness of your environment and the opportunities it offers. </strong>You will awaken to find yourself beneath freer skies.<strong> </strong>The answer is <em>agency</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VLJd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VLJd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 424w, https://substackcdn.com/image/fetch/$s_!VLJd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 848w, https://substackcdn.com/image/fetch/$s_!VLJd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 1272w, https://substackcdn.com/image/fetch/$s_!VLJd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VLJd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png" width="1198" height="338" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:1198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67039,&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://lolno.com/i/207556987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.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_!VLJd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 424w, https://substackcdn.com/image/fetch/$s_!VLJd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 848w, https://substackcdn.com/image/fetch/$s_!VLJd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.png 1272w, https://substackcdn.com/image/fetch/$s_!VLJd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0771896-7c88-4aaa-9f09-4096521848a6_1198x338.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 aria-hidden="true" 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><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">I&#8217;m sorry, I used the word.</figcaption></figure></div><p>As the kids like to say, you can just do things.</p><p>I will never forget a week last year when my boss was on vacation during which I had the conn for Google Drive. By the time she got back, I was convinced that I would be fired. During that week I had (1) pivoted one of her pet projects, (2) made a backroom deal with the PMs to shitcan our entire roadmap and sold it all the way up to the VP level, (3) agreed to use Drive&#8217;s SWEs to help ship a project for her mortal enemy because it was what&#8217;s best for the customer, (4) caused a non-trivial outage, and (5) angered Sundar by blocking Gemini CLI from launching a massive security vulnerability. I was fully clenched walking into our next 1:1, waiting for the axe to fall.</p><p>And then&#8230;nothing happened. Everything was fine. &#8220;Thanks for handling all of that while I was out.&#8221; What!? So I just kept doing things like that&#8212;following my instincts, using my best judgment of what&#8217;s best for the business, and not asking permission. It kept working, and I kept getting rewarded.</p><p>Agentic behaviors that freed me include&#8230;</p><ul><li><p><strong>Stop asking permission;</strong> if you know you&#8217;re right, then go do it. Be willing to bet on yourself and own the consequences<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> if you&#8217;re wrong. If you absolutely must, use <a href="https://a.co/d/0fRkSI43">&#8220;I intend to&#8230;&#8221;</a> statements and then go do it.</p></li><li><p><strong>Say what you think you cannot say</strong> (h/t Claire Hughes Johnson). I don&#8217;t have enough fingers and toes to count the number of times I&#8217;ve been crazy blunt, and afterward someone takes me aside and says &#8220;THANK YOU for finally saying what we were all thinking out loud.&#8221;</p></li><li><p><strong>If you don&#8217;t believe in what your team is doing, change it.</strong> Just pushing through and hoping the next project is better makes you an ultra-coward squandering the lives of your people.</p></li><li><p><strong>Tell your peers and superiors what to do (nicely).</strong> Don&#8217;t equivocate or hold back; figure out who needs to act and then ask them directly, &#8220;Chelsea, can you put together a PRD for this idea by next week?&#8221; People assume this is rude or outside their authority, so they ask the air instead: &#8220;Who&#8217;s taking point on writing the PRD?&#8221; Crickets.</p></li><li><p><strong>Demand honest-to-god accountability.</strong> If your boss won&#8217;t stand up at a podium and say &#8220;Jim is the lead for Project Foobar,&#8221; then refuse to engage. I&#8217;ve played that game of &#8220;unofficial&#8221; leads and &#8220;no titles&#8221; before. It all sounds good and egalitarian on paper, but it&#8217;s not, and it creates frustration for <em>everyone</em> involved.</p></li><li><p><strong>Become a polymath. </strong>Engage with topics outside your wheelhouse. Take an interest in finance, sales, marketing, business development, operations&#8230;all of it! Learn the actual domain your company works in, and you&#8217;ll suddenly find your work is a much more target-rich environment.</p></li><li><p><strong>Most importantly, find a project that is important to you and just do it. </strong>Clear your calendar, block your time, don&#8217;t ask permission, and don&#8217;t let other people&#8217;s problems distract you. Feel the joy of actually crafting something with your own two hands.</p></li></ul><p>Moreover, this amazing thing happens when you stop following a script, pretending, and putting on airs. People connect with you. Real collaboration happens. Honesty and truth. I have this shorthand equation which explains it:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\text{Influence} = \\frac{\\text{Credibility} + \\text{Reliability} + \\text{Intimacy}}{\\text{Self-Interest}}&quot;,&quot;id&quot;:&quot;TAKOTDHZNM&quot;}" data-component-name="LatexBlockToDOM"></div><p>When you stop optimizing for appearances and &#8220;winning the game,&#8221; it zeroes out the self-interest dominator. Your lack of tact and any semblance of self-preservation makes you both unthreatening and predictable to others, and as a result, your presence puts them at ease. Cheat code unlocked.</p><p>On the whole, it turns out you have a lot more autonomy than you think at BigCo. It actually makes sense when you think about it: as a manager, I&#8217;m not all that interested in bossing you around, but if you ask my opinion, I&#8217;m gonna offer it&#8230;so stop asking all the time. If you&#8217;re right, you&#8217;re right. If you&#8217;re wrong&#8230;wellllll, at least you lived your life with integrity and bet on yourself.</p><p>And if the company decides to fire you for that? So be it. Then that wasn&#8217;t the right home for you. You probably learned a lot and have an interesting story to tell. There are many more worlds yet to be conquered. I hear startup people have a fetish for agency; one of them will hire you.</p><h3>Drawing the line at self-betrayal.</h3><p>Before throwing in the towel, though, you should try to find the real barriers, rather than the imaginary ones. That thing driving you to misery? Maybe you can ignore it! Have you tried? Practice some agency &#128521;</p><p>But if you find that, no, in fact, there are aspects of your job you can&#8217;t simply ignore, then it&#8217;s time to make some Grown Up Decisions. If you&#8217;re shoveling the Augean Stables, there is no virtue in pretending it smells like roses.</p><blockquote><p>Your worst sin is that you have destroyed and betrayed yourself for nothing.<br>&#8212; Fyodor Dostoevsky</p></blockquote><p>It took <em>years</em> of experience and lots of nasty surprises to find my true values&#8230;to figure out why I hate something even though my brain is screaming &#8220;you should want this! you should really REALLY want this!&#8221; But once my values were crystallized, it became incredibly easy to see what sorts of jobs work for me and which ones don&#8217;t. If a job demands you betray your own values, then it&#8217;s time to hit the bricks.</p><p>At the end of the day, I&#8217;m still gonna quit&#8230;eventually. I&#8217;m collecting 401(k)s like Pok&#233;mon cards. It is my nature to seek challenges and new experiences, and I increasingly find the corporate jungle gym is out of fun problems. I&#8217;ll pump this well dry and move on to the next one. But that isn&#8217;t a rejection of BigCo. The only real question is whether the job in front of you requires you to be someone you&#8217;re not, and whether you can live with the answer.</p><p>By the lake I promised my mother I&#8217;d use what she gave me and live on my own terms. I don&#8217;t think that means anything as dramatic as walking out. Most days it means saying the blunt thing in the meeting, or doing the project without asking. Small refusals to betray yourself, accumulated over a career.</p><p>The clock is ticking. Spend it as yourself.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>If the collapse of community and how it intersects with work is interesting to you, check out Carolyn Chen&#8217;s &#8220;<a href="https://a.co/d/0bUReujj">Work Pray Code</a>&#8221; and Robert Putnam&#8217;s &#8220;<a href="https://a.co/d/0fzsYQew">Bowling Alone</a>&#8221;</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Since literally no one else does this, even when it blows up, you&#8217;ll probably get kudos all the same. I have <em>tried</em> to get in trouble at work&#8230;it&#8217;s nearly impossible.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Adaptive Challenges vs. Technical Problems]]></title><description><![CDATA[That "AI Adoption" program you started is not working...ask me how I know.]]></description><link>https://lolno.com/p/adaptive-challenges-vs-technical</link><guid isPermaLink="false">https://lolno.com/p/adaptive-challenges-vs-technical</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 12 Jul 2026 19:59:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vX0n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vX0n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vX0n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vX0n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vX0n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vX0n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vX0n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7235945,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205070311?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vX0n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vX0n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vX0n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vX0n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa682882-7540-4e48-987b-e4e1bbfe8341_9504x6336.jpeg 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 aria-hidden="true" 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><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 you become a manager, you become the custodian of a living, breathing system composed of your team, your software, your tools/processes, your customers, and your stakeholders. &#8220;Being technical&#8221; and knowing your craft remain important&#8212;your 1st job is, after all, to deliver working technology that solves customer problems&#8212;but ultimately, a new respon&#8230;</p>
      <p>
          <a href="https://lolno.com/p/adaptive-challenges-vs-technical">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Pace Layering: The Slow Executive Wins the Race]]></title><description><![CDATA[How companies learn and what happens after they are built]]></description><link>https://lolno.com/p/pace-layering-the-slow-executive</link><guid isPermaLink="false">https://lolno.com/p/pace-layering-the-slow-executive</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 05 Jul 2026 22:07:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lBS9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You can&#8217;t go 5 minutes without finding some thinkpiece breathlessly exhorting you to <em><strong>go faster</strong></em>: ship faster, learn faster, change faster, work faster, decide faster. This isn&#8217;t exactly new&#8212;if it isn&#8217;t the AI perverts of twenties, then it&#8217;s the Web 2.0 &#8220;Move Fast and Break Things&#8221; freaks of the teens, or the Agile zealots of the aughts. Lack of originality aside, no one can refute that GenAI has dramatically increased the temperature at work.</p><p>I&#8217;m here to give you the exact opposite message: <em>slow the fuck down.</em></p><p>Don&#8217;t react too quickly to any single event. Think before you speak. Dispense mandates, principles, and strategies with parsimony. Inject latency between conversation and alignment, alignment and action.</p><p>I&#8217;m not saying this for exclusively humanistic, <a href="https://a.co/d/051wxBut">it-doesn&#8217;t-have-to-be-crazy-at-work</a> reasons (although, it really doesn&#8217;t). Outright <a href="https://i.imgur.com/l9lRZ5j.png">AI psychosis aside</a>, I too salivate over shipping faster. Eric Ries&#8217; <a href="https://a.co/d/09P0xHYE">Lean Startup</a> is a prized possession. Though I am trapped within the belly of the beast (Corporate America), I relish decapitating bullshit ceremony and obstreperous process wonks. My bloodlust knows no bounds.</p><p>There are purely practical reasons to slow your roll.</p><h1>When speed sabotages your organization</h1><p>I have always prided myself on my ability to translate direction into action. Give me a hill to conquer and I can draw up a battle plan, organize the troops, and march in a matter of hours. It usually only takes me a few minutes to grok what my manager is saying, decide if it&#8217;s a good idea, and commit. Naturally, this has made me a perennial favorite and worked in my favor as an engineer, then tech lead, manager, and beyond.</p><p><em><strong>Now as an executive it&#8217;s become a liability.</strong></em></p><p>Our senior leadership had big ideas for the future structure of our teams. Larger spans of control, middle managers that owned tangible areas with concrete goals+strategies, fewer contractors and more FTEs, geo-aligned teams to encourage realtime collaboration. No one was losing their job (yay), just fixing the structure (double yay). All good stuff that effectively addressed very real problems observed over the past few months. I was bought in nearly instantly so when the mandate arrived to start implementing, I got to work.</p><p>Within 72 hours I had&#8230;</p><ol><li><p>Designed the destination org structure.</p></li><li><p>Secured buy-in and excitement from my Directors.</p></li><li><p>Conducted a round a <a href="https://en.wikipedia.org/wiki/Nemawashi">Nemawashi</a> with all 15 of my product management counterparts (yes, you read right, one-five. Every Friday I take 15 shots in salute to the joy that is matrixed organizations&#8230;I then wake up and it&#8217;s Monday again&#8230;what gives!?)</p></li><li><p>Aligned on impacted projects and roadmap reprioritization.</p></li><li><p>Constructed an exhaustive run-of-show.</p></li><li><p>Began implementation.</p></li></ol><p>Disaster struck after we had finished abut 25% of the reorg, cancelled a couple projects, reassigned about a dozen contractors, and gotten managers comfortable with their new scopes. The reorg mandate would change <em><strong>substantially.</strong></em> Parts that we were previously free to defer to later suddenly had deadlines just weeks out. Span of control targets went from suggestions to strict requirements. Contractor targets went from &#8220;you can keep a few as needed&#8221; to &#8220;you can keep none.&#8221;</p><p>The result was chaos:</p><ul><li><p>Product partners did not see this as a 2nd, separate change but rather Engineering changing the terms of the deal after it had been inked, blowing up their roadmaps.</p></li><li><p>Managers who were previously told &#8220;nothing would change&#8221; were suddenly being told they needed to switch into entirely different roles in different orgs.</p></li><li><p>Changes originally sequenced around graceful cutover points in project schedules now required development pauses and roadmap slips.</p></li></ul><p>The resulting escalations would consume about a month of my life and we&#8217;re still dealing with the fallout of this months later.</p><p>The craziest part? Had I literally just <em>done nothing</em> and basically ignored my boss, all of this could have been avoided. We would have communicated a single, consistent change to everyone involved. There would still be heartburn but most of the turmoil was caused by the rug pull, not the change in and of itself.</p><p>Situations like this aren&#8217;t limited to organizational changes either.</p><p>A couple years ago, we were working on enabling Gemini to take action within Google Drive (think: move+rename files, organize folders, upload files, etc). Our tech lead at the time wanted a separate microservice for these APIs for a variety of reasons: they were highly privileged internal-only endpoints that needed different semantics from our public API, they would be used as part of long-running background tasks and needed different runtime management characteristics, general separation of responsibilities, and a tighter/faster SDLC to meet the demands of these super-P0 AI projects.</p><p>As 2nd chair, I mobilized the team. We grabbed our 2 best and brightest engineers and sold them hard on this <em>exciting</em> opportunity to build an entirely new server from scratch and earn major clout and career uplift contributing to Drive&#8217;s <em>top</em> OKR. They completed the POC in record time (I think it took like&#8230;2 weeks&#8230;to get into production, something unheard of at Google).</p><p>It was at this point that the truth surfaced. Our tech lead hadn&#8217;t actually built any real consensus for this direction and was just trying to force things through, coming into direct conflict with our senior leadership team in the process. The POC didn&#8217;t help convince anyone like he had hoped so the SLT declared the project dead and that we were going in a different direction.</p><p>I then had to go back to these superstar engineers, break the news, and ask them to help me clean up and delete everything. It was a really soul-crushing and discouraging experience for these folks who, by the end, had burned an entire quarter on this boondoggle. I would spend the next ~6 months going out of my way to retain these 2 with special assignments, growth opportunities, and extra attention.</p><p>Once again, had I just <em>done nothing</em> and let the natural architecture review process chew up and spit out my tech lead&#8217;s scheme all of this could have been avoided.</p><h1>Organizational Rug Burn</h1><p>Upper management moves at the speed of light.</p><p>Please, pick your jaw up off the floor. Don&#8217;t believe me?</p><p>What do you think we&#8217;re doing in all those meetings all day long? Back rubs and celebratory ass slaps? OK well there are definitely <em>a few</em> drum circles and networking events (shoot me with a gun). No, there&#8217;s a reason your 1:1 is rescheduled over and over for urgent meetings until a month later you <em>finally</em> have a 15-minute sync that can only be described as &#8220;disappointing.&#8221; The reason is that I am a Terrible Boss, but also that my calendar is wall-to-wall knife fights whose outcome will impact the lives of O(100)&#8217;s. An executive is a machine that turns <s>alcohol</s> coffee into decisions. Now multiply this by the 3&#8230;or 4&#8230;or 5 (fuck) layers of VPs at your company.</p><p>If every single one of those &#8220;decisions&#8221; turned into action (immediately or ever), nothing would ever get done. Teams would just be changing gears from one mandate to the next. The company&#8217;s PPO premiums would skyrocket from the intense whiplash and emotional exhaustion. </p><p>In their infancy, decisions are in constant flux, flip-flopping as the news traverses the org, backchannels open, and executives scurry between offices <a href="https://www.youtube.com/watch?v=RcWxQUMLsLA">like a really bad episode of Scooby Doo</a>. Even when there is <em>seemingly</em> alignment, one hand doesn&#8217;t know what the other one is doing leading to clashing directives. In one poignant example, we got our whole org to rally around a goal to ship all binaries twice-a-week, just for our C-Suite to sponsor a similar initiative from the other side of the company which instead said the target was P90 merge-to-deploy &lt;24 hours. Our teams came to us asking &#8220;well, WTF is the actual goal?&#8221; Naturally, we played it off like this was all by design, that there was no conflict here, and nothing stupid just happened. lmao.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lolno.com/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">lol, no 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><p>This is all to say you need <em>time<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></em> for the World&#8217;s Shittiest Version of <a href="https://en.wikipedia.org/wiki/Paxos_(computer_science)">Paxos</a> to reach stable consensus or your teams will experience reversals and conflicting demands. Your personal credibility will be left holding the bag because, well, from the perspective of the team you are the living incarnate of The Company. Good luck ever convincing your team to do <em>anything</em> after two or three instances of &#8220;opps, nevermind.&#8221;</p><h2>The Neuroscience of Change</h2><p>The core issue here is that of <em>change budgets</em>. There is a fixed physical and emotional capacity for the human beings in your organization to deal with change. Multiple biological systems conspire to <em>enable</em> the mind to cope with change but also make us initially <em>resist</em> change.</p><ul><li><p><strong>Amygdala: </strong>wired to all major sensory nerves (optical, aural, olfactory, etc) and hypersensitive to change as a potential source of threat. The Amygdala triggers the famous fight/flight/freeze response and can even be triggered by social cues such as others around you experiencing fear.</p></li><li><p><strong>Entorhinal Cortex: </strong>maintains the mind&#8217;s mental map inclusive of both <em>physical</em> <em>space</em> and <em>social networks </em>including power relationships (hierarchy, dominance, competence) and affinity (trustworthiness, love, intimacy).</p></li><li><p><strong>Basal Ganglia:</strong> turns repeated behaviors into habit loops composed of cues, routines, and rewards. Habits take less mental energy to engage than novel behaviors.</p></li><li><p><strong>Habenula:</strong> restricts the flow of serotonin and dopamine (&#8220;feel good chemicals&#8221;) to discourage behaviors that tend to lead to punishment, suppressing both motivation and even physical body movement. In effect, it&#8217;s the chemical implementation of &#8220;fear of failure.&#8221;</p></li></ul><p>Our brains are made to adapt to novel situations so we can change but it takes time and the expenditure of physical energy to suppress amygdala hijacking, form new mental maps in the entorhinal cortex, rewrite habits in the basal ganglia, and overcome learned helplessness in the Hebernula.</p><p>The combined effect of this biological machinery is change curve:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gSyp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gSyp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 424w, https://substackcdn.com/image/fetch/$s_!gSyp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 848w, https://substackcdn.com/image/fetch/$s_!gSyp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 1272w, https://substackcdn.com/image/fetch/$s_!gSyp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gSyp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2836963,&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;:&quot;https://lolno.com/i/205121194?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gSyp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 424w, https://substackcdn.com/image/fetch/$s_!gSyp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 848w, https://substackcdn.com/image/fetch/$s_!gSyp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.png 1272w, https://substackcdn.com/image/fetch/$s_!gSyp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42cc4c7b-0dd7-4efd-9f85-975ae23617b1_5182x2962.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 aria-hidden="true" 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><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">Britt Andreatta, <a href="https://a.co/d/08K1I0TI">Wired to Resist</a> (2017)</figcaption></figure></div><p>The speed by which an individual moves through this curve is both context dependent and highly personal (see the <a href="https://mhs.com/csi-2/">Change Style Indicator</a> if you are a fellow psychometric-enjoyer).</p><p>Because of the acclimation time, concomitant change is the norm not the exception. Most leaders (myself included) vastly underestimate the number of overlapping change curves playing out in their organization. Over the years I have made remarks to my myriad bosses about &#8220;lots of changes overwhelming the team&#8221; and 100% of the time received a reply to the effect of &#8220;WTF are you talking about?&#8221; This speaks to the very different personality profiles of executives who, as a cohort, tend to be high in openness to experience, low in neuroticism (<a href="https://en.wikipedia.org/wiki/Big_Five_personality_traits">Big 5</a>), and thereby more comfortable with risk/uncertainty leading to a certain amount of change blindness. The reality is little more overwhelming than anyone realizes&#8230;how many of you are dealing with one or more of the following?</p><ul><li><p>A new job or role.</p></li><li><p>A new manager.</p></li><li><p>A switch to a different work station or workplace.</p></li><li><p>A new leader of your function or organization.</p></li><li><p>A change on your team (losing or gaining coworkers)</p></li><li><p>A change in another department or team that affects you.</p></li><li><p>A shift in process, policy, or procedure.</p></li><li><p>An implementation of new or different technology.</p></li><li><p>A drive to capture a new client or market.</p></li><li><p>A move into a new regional or global territory with different cultures, laws, customs, or perhaps languages.</p></li><li><p>A merger or acquisition.</p></li><li><p>A geopolitical shift that affects the common market.</p></li></ul><p>Not to mention personal changes occurring at home (births and kids growing up, aging parents, partner or friend drama, even just mundane crap like remodeling projects).</p><p>The human body cannot sustain never-ending change&#8212;it&#8217;s just too exhausting&#8212;so people begin to make choices: opting into some changes and opting out of others. Worse, your staff will learn to &#8220;perform&#8221; embracing change while in reality doing nothing because they assume (know) the change won&#8217;t stick. Half of the time I am just pretending to give-a-shit at work and it has always worked in my favor &#129335;&#8205;&#9794;&#65039;</p><p>Think this isn&#8217;t happening in your org? Think again. A 2015 cross-sectional study of 513 middle managers found change fatigue prevalent in 47% of study participants. </p><p>When you thrash your team around by mobilizing changes too quickly, you create the conditions for change fatigue. Once you&#8217;re unable to mobilize your team, the death spiral has begun.</p><h2>Pace Layer Violations</h2><p>Beyond the human hardware upon which your decisions are realized, there are also structural and systemic reasons to slow down&#8212;what I think of as an &#8220;organizational speed limit.&#8221;</p><p>There is a natural tension that exists between stability and adaptability. Companies, organizations, teams, products, and infrastructure are all examples of persistent systems that must continuously absorb and even incorporate shocks.</p><ul><li><p>A company that fails to respond to a significant shift in consumer preferences will cease to exist.</p></li><li><p>A team that cannot retool and incorporate new technology and professional methods will be replaced with one that can.</p></li><li><p>A product which cannot be modified or extended to adapt to emergent customer problems will be outcompeted.</p></li><li><p>A piece of infrastructure which cannot support the team&#8217;s productivity or product&#8217;s agenda will be deprecated.</p></li></ul><p>These different components of a software enterprise form &#8220;layers&#8221; each with different scales, different rates of change. Fast-adapting layers act as buffers to help absorb change, only letting changes filter down to lower layers if they stand the test of time and scale. Slow-adapting layers provide a stable foundation enabling the continuity of everything above.</p><p>For example, your core infrastructure should provide a highly reliable, predictable set of platform primitives. If your core database engine changes in response to every single new product feature, your enterprise will quickly be subsumed by surprise outages, performance degradation, and development delays.</p><p>When I worked on Google Drive, there was an increasingly large need for complex async, eventually consistent processing (e.g. what happens when you share a deeply nested folder hierarchy with hundreds of users simultaneously?). We kept bolting on hacked up nightmares to our storage layer to support new features (DLP rules, labels, expansive ACL propagation, ownership transfers, etc) but eventually the system became unusable with async propagations taking days or silently failing. Our SLO dropped below 99.9% and enterprise customers were screaming.</p><p>Eventually, we built an async processing platform with a small set of core primitives including guaranteed processing semantics and multi-level priority queues. The processing engine changes <em>almost never</em> and most product needs are met by combining existing, stable primitives. Since then it&#8217;s been smooth sailing with &gt;99.99% availability and rapid convergence on even the largest accounts.</p><p>Consider another common axis of change: team structures. Teams that successfully make it through the <a href="https://en.wikipedia.org/wiki/Tuckman%27s_stages_of_group_development">Tuckman Cycle</a> become well-oiled machines. Shared performance standards, mutual accountability, codependence, and common goals unite workgroups and make them more than the sum of their parts. Thanks to effects like <a href="https://en.wikipedia.org/wiki/Transactive_memory">Transactive Memory</a> (effectively, groups learn who knows what and how/when to call upon each other in the course of Getting Shit Done), a fully bonded team of 10 will produce more effective output then a random sampling of 10 SWEs.</p><p>Hence team structures should be only <em>somewhat adaptable</em>, reconstituting new teams only when strictly necessary (i.e. wrong skills for a major shift in direction). Instead, leaders should <em>bring new problems to existing teams</em> rather than <em>forming new teams altogether.</em></p><p>This will lead to the appearance of strange bugs&#8212;back to Drive, we had a &#8220;Search&#8221; team and a &#8220;Sharing&#8221; team that for <em>years</em> worked on neither search nor sharing&#8212;but the consistently elevated productivity from keeping teams together will speak for itself.</p><p>I&#8217;m not quite sure what layers precisely exist in our domain, or even if the answer is universal, but it looks something 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_!lBS9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lBS9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 424w, https://substackcdn.com/image/fetch/$s_!lBS9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 848w, https://substackcdn.com/image/fetch/$s_!lBS9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 1272w, https://substackcdn.com/image/fetch/$s_!lBS9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lBS9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png" width="806" height="440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:440,&quot;width&quot;:806,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90133,&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://lolno.com/i/205121194?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.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_!lBS9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 424w, https://substackcdn.com/image/fetch/$s_!lBS9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 848w, https://substackcdn.com/image/fetch/$s_!lBS9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.png 1272w, https://substackcdn.com/image/fetch/$s_!lBS9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1448513-2692-4d29-9f2a-790fa3eeeff7_806x440.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 aria-hidden="true" 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><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>While each layer is somewhat independent from the others, each layer influences and responds to the layers closest to it. </p><p>Markets evolve in response to mercurial and shifting consumer preferences (&#8220;fashion&#8221;). Company executives attempt to grapple with the evolving structure of Markets and translate that into coherent direction and product offerings. Teams are structured to optimally(?) implement said products. Infrastructure is built or bought which enables the many possible futures of the business.</p><p>All durable dynamic systems have this sort of structure&#8212;from ecology to business to markets to cities.  It is what makes them adaptable and robust. <a href="https://jods.mitpress.mit.edu/pub/issue3-brand/release/2">Pace Layers</a> first appeared as &#8220;shearing layers&#8221; in <em>How Buildings Learn: What Happens After They are Built (1994)</em> and was generalized to all persistent systems in <em>The Clock of the Long Now (1999).</em></p><h1>Reduce Speed: School Zone Ahead</h1><p>Back to our parable: executives and middle managers who are <em>too responsive</em> to the layers above them, who move <em>too quickly</em> relative to the layers beneath them (products, teams, infrastructure) create a shearing effect. The slower layers cannot adapt quickly enough to absorb the shock of change and the enterprise effectively rips itself in half. </p><p>When I rushed to implement my boss&#8217;s ideas for organizational design and product direction, the slower layers were only halfway through grappling with those changes before different marching orders arrived.</p><p>Some wiseass will comment that change is inevitable, going too slow is more dangerous, and this is all working as intended. But that is absolutely the wrong takeaway. The job of management is implement human judgment within a moral context to integrate social activities. When you just passthrough any and all changes/shocks occurring above you, there is absolutely zero judgment being applied. It&#8217;s outright abdication of responsibility dressed up as urgency.</p><p>In response to new information, a discerning executive will develop a principled opinion, pressure test assumptions, probe and assess their team&#8217;s readiness for change, and implement a measured and methodical change management strategy. You&#8217;re paid to engineer, not gamble. Your actions affect the lives and livelihoods of real humans, you have a moral imperative to think carefully.</p><p>At an absolute minimum, leaders should understand the consensus dynamics of their organization.</p><ul><li><p>Who are the real power brokers that need to sign-off on something for it to become &#8220;real?&#8221;</p></li><li><p>What exigencies and environmental factors could reverse this decision unexpectedly?</p></li><li><p>How long does it take for rough consensus to form and who has a tendency to jump the gun?</p></li><li><p>Historically, has there been tangible benefits to being on the bleeding edge?</p></li><li><p>Who is sponsoring this decision and how much political capital do they have?</p></li></ul><p>This will allow you to implement an effective filter and avoid organizational fads.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><h2>So, does AI <em>actually</em> change anything?</h2><p>Unfortunately, yes&#8230;I&#8217;m no luddite. Let&#8217;s use Pace Layers to understand the effects:</p><ul><li><p><strong>Fashion:</strong> the amount of Business Fiction being published about AI is staggering. Need I say more? People will not shut the fuck up. </p></li><li><p><strong>Markets:</strong> new competitors have emerged that are moving 2-5x faster with much lower cost bases (2-3 SWEs instead of 20-30 for the same offering).</p></li><li><p><strong>Products:</strong> customer demand has visibly shifted. Some product categories now have AI features as outright must-haves even if the actual usage/adoption is nonexistent. RFPs are a bitch.</p></li><li><p><strong>Teams:</strong> coding is no longer the bottleneck and what used to require teams of specialist roles (SWE, PM, UXD, GTM) collaborating via structured artifacts (design docs, PRDs, crits, playbooks) are now being replaced with hybrid roles or even monocultures of amorphous &#8220;builders&#8221; who do a little bit of everything.</p></li></ul><p>The &#8220;speed limit&#8221; of the slower layers (teams, products) is increasing and with it the pace at which executives need to translate ideas to action is also going up. In short, you cannot just operate business-as-usual.</p><p>Personally, I remain a bit uneasy about all of this. Notice anything missing above? Infrastructure hasn&#8217;t really experienced a tangible &#8220;speed up.&#8221; No, the armies of startups slinging slop and hyperscalers lining their Clouds with niche offerings (that conspicuously never exit beta/preview &#128064;) do not count. Agentic development may have solved coding but is decidedly dog shit at systems architecture: leaky abstractions, sky-high coupling, and incoherent ontologies.</p><p>But that&#8217;s not even really the issue. It&#8217;s not that platform development needs to speed up, but rather, are the current platform primitives and abstractions the ideal substrate for a product development ecosystem that is moving so much faster? We&#8217;re driving Ferrari&#8217;s down dirt roads. Someone needs to invent asphalt and start paving roads ASAP or we&#8217;re going to keep crashing our shiny new supercars.</p><p>A few of my long-time readers are working on &#8220;the platform primitives of the future&#8221; but it hasn&#8217;t really made it much further than theory. The companies actually building this stuff are largely flailing and just pushing narratives that <a href="https://blog.gitbutler.com/series-a">dress up incremental improvements</a> <a href="https://buildkite.com/resources/blog/build-systems-in-the-age-of-ai-assisted-coding/">as breakthroughs</a>. So far the towering intellects of Silicon Valley have contrived such genius ideas as:</p><ul><li><p>GitHub but what if it had at least one 9 of availability?</p></li><li><p>Firebase but what if it barely worked and regularly loses your data?</p></li><li><p>Step 1: Wrap everything in an <s>MCP</s> CLI; Step 2: ????; Step 3: Profit!</p></li><li><p>Fuck object stores, filesystems are back baby!</p></li><li><p>Generate a metric ton of Markdown, err no HTML. But wait, what if we call all those Markdown files a Wiki!?</p></li><li><p>Run everything on the Edge for&#8230;reasons?</p></li><li><p>Yikes, GPUs are expensive, never mind put it back in the datacenter.</p></li><li><p>Get a 2nd mortgage to give your CI/CD provider even more money.</p></li></ul><p>The only proof you need that we&#8217;re completely out of ideas: for some reason Docker and Kubernetes have survived the AI apocalypse relatively unscathed. </p><p>At the end of the day, platforms still need to be, well, platforms&#8212;I always go to Ian Nowland and Camille Fournier&#8217;s 4 traits of a platform: discerning product taste, software leverage that abstracts complexity, multitenancy, and operational excellence. We have strayed far from the light.</p><p>There is no happy ending to this rant. We need to rethink both our SDLC&#8217;s and platform primitives so that the infrastructure layer can keep pace with everything above it. Until then, we&#8217;re all going to be flying by the seat of our pants which just underscores my original point: <em>slow the fuck down</em>.</p><p>Your job as an executive is to be extremely discerning in what changes you unleash on the layers below you and to not assume Claude has somehow overnight obsoleted the decades of hard-won lessons and accumulated datapoints for what makes an organization thrive.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>This isn&#8217;t exactly universal. There are plenty of stories of medium-large companies that have been able to turn on a dime without &#8220;consensus latency.&#8221; In most cases, they are outright lying about the amount of commitment actually achieved (looking at you Meta, Block, Cloudflare). In rare cases it&#8217;s a real honest-to-god masterclass in choreography and transformational leadership. You are probably not in such an organization. Most senior leaders are <em>utterly spineless</em>, avoid the most painful yet catalytic changes required, and instead enact some sort of perverse change theatre. Even when they don&#8217;t fall into this trap, most have unintentionally hired orgs replete with toxic malcontents who will manipulate any and all mandates to serve their career over the collective good. Sometimes the only answer is to spin out a new venture and start over with a clean slate.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>A word of warning: at some point some asshat will tell you to &#8220;disagree and commit&#8221; as if quoting a piece of pop-management advice constitutes an actual argument. I&#8217;m as much a fan of Amazon&#8217;s leadership principles as anyone else, but 99% of the time this phrase is bandied about in bad faith. You&#8217;ll have to decide for yourself whether it&#8217;s worth the fight to push back or actually disagree-and-commit&#8230;or my personal favorite: pretend to go along and then do nothing.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Warrior, Mage, Priest, Merchant]]></title><description><![CDATA[Treating leadership like an RPG]]></description><link>https://lolno.com/p/warrior-mage-priest-merchant</link><guid isPermaLink="false">https://lolno.com/p/warrior-mage-priest-merchant</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 14 Jun 2026 14:49:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/009707e5-65da-45f0-bd89-ecb19cd7c2db_1376x768.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nF0t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nF0t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 424w, https://substackcdn.com/image/fetch/$s_!nF0t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 848w, https://substackcdn.com/image/fetch/$s_!nF0t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 1272w, https://substackcdn.com/image/fetch/$s_!nF0t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nF0t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1142538,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://managerscraft.substack.com/i/204918038?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nF0t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 424w, https://substackcdn.com/image/fetch/$s_!nF0t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 848w, https://substackcdn.com/image/fetch/$s_!nF0t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 1272w, https://substackcdn.com/image/fetch/$s_!nF0t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0870d3e-2e5d-44e8-8f6f-d026b6005446_1376x768.webp 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 aria-hidden="true" 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><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>It&#8217;s every professional&#8217;s worst nightmare: you take a new job and totally faceplant. Except it&#8217;s never that straightforward.</p><p>Back in February I took a new role leading a large engineering team at Capital One. A slightly bigger org, ownership of a P&amp;L, tech that was largely standard COTS and OSS rather than a rats nest of bespoke internal contraptions and duct tape&#8230;in addition to the anticipation of trying something new after 3 years in the same role. I can&#8217;t abide boredom and routine (why the hell do I work in corporate gigs?? Novelty seeking is both sustenance and also my most self-destructive habit) so the excitement was palpable.</p><p>Being That Sort of Guy, I would obsessively prepare in the weeks before. Making sure my office was arranged Just So (&#8220;executive presence is having a pretty Zoom background&#8221; &#8212;Peter Drucker or something), fine tuning my meal prep and fitness routines to accommodate a much busier executive calendar (so many failed overnight oats experiments), rereading all of my favorite management books (spoiler alert: everything is just a more belabored take on High Output Management), and preparing heaping piles of Google Docs/AppScripts/Sheets and Obsidian templates. I was basically vibrating at 60Hz at all hours waiting for my first day.</p><p>Fast forward a couple months: I&#8217;ve unpacked, changed the name on the door, gotten down to business&#8230;and I am in the Pit of Despair. There was no epic cataclysm, explosive fight with a peer, or project meltdown&#8230;just a pervasive unease and a vague feeling that I am failing. Interactions ending in enmity rather than camaraderie, obvious opportunities drifting past unactioned, delegated projects coming back a few weeks later on fire.</p><p>If you thought Imposter Syndrome was an artifact of early career, think again. In fact, late career it feels <em>so much worse</em> because at this point you&#8217;ve proven to yourself (and others) that you&#8217;re pretty good at this engineering/management thing and a non-trivial amount of your self-worth is probably built on that. That isn&#8217;t to say this was all in my head: these were real failings&#8230;an (un?)fortunate consequence of becoming a senior leader is the buck does in fact stop with you. Intellectually, I could articulate what needed to happen and how to do it, but I could not bring myself to do it.</p><p>In an effort to course correct, I began comparing my approach and style of leadership to those of my many managers past and present, looking for patterns and gaps that could explain why I was bouncing off my new role rather than integrating successfully. I wasn&#8217;t expecting this to yield much more than &#8220;we&#8217;re different people&#8221; but instead I found a surprisingly useful analogy that partially explained my troubles. It&#8217;s a bit off the deep end but bear with me.</p><p>There are 4 classes of technical executive&#8212;</p><ul><li><p><strong>Warriors</strong>: goal-directed individuals that lead from the front. They have maniacal focus on particular results and ends. They drive their teams to deliver, getting as &#8220;hands-on&#8221; as it takes and wearing any hat. They demand excellence and produce professional progeny that go on to do great things. Impatience is a virtue.</p></li><li><p><strong>Priests</strong>: group-oriented individuals who focus on configuring the environment for success, shepherding their constituents through change, and bearing the culture of the organization. They don&#8217;t disregard results so much as let the results come naturally as a consequence of the environment they build. Impatience is a disaster.</p></li><li><p><strong>Mages</strong>: technocratic leaders that emphasize domain expertise and creative problem solving. They lead their functions as the unequivocal brains of the operation. The innovations they bring into the world create durable competitive advantages for years to come. They run on their own internal clock, patience and impatience have nothing to do with the matter.</p></li><li><p><strong>Merchants: </strong>ductile leaders that build alliances, find mutual value across boundaries, and creates leverage through relationships rather than force, expertise, or culture. They tap into the latent potential of those around them and no one will even realize it&#8217;s happening. Once again, patience/impatience are inconsequential, they operate off the clock of the organization<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p></li></ul><p>Each class works well in different situations.</p><p>Warriors can make big goals happen against all odds and defend your castle when competitive pressure is high. Priests can keep your money printer printing by leading large groups through important changes and much needed evolutions. Mages can invent the future and unlock the next major step change in capital productivity. Merchants can unlock opportunities and impact by activating the collective in a way that no Warrior/Mage/Priest could hope to achieve.</p><p>Maybe more interestingly, individuals can switch classes as they move through life.</p><p>Reflecting on my own story, I started out as a Mage, moving up the ranks as a technical encyclopedia and master distributed systems engineer. My early teams were highly specialized functions, R&amp;D groups, and low-level infrastructure that lived or died by sheer technical foresight.</p><p>Once my problems got big enough, I needed a team-of-teams to get them done, and I respec&#8217;d as a Priest. I learned how to implement large-scale org changes, use incentives and process design to generate outcomes, and fine-tune sociotechnical systems to meet the demands of the business. <strong>The largest success of my career came as a Priest:</strong> transforming an org of ~1200 to ship with 2x higher velocity, 25% less overhead, 32pp more job satisfaction, and one more 9 of availability. It took 3 years of nonstop (but careful) effort to slowly boil the frog and change the culture.</p><p>As I departed that role, I was hungry to execute at the speed of tech (rather than the speed of people) and put all my accumulated expertise to the test. After holding roles across PM, SWE, SRE, DS, UX, BigCo and startup, what could I accomplish if I ran the whole show? What if I &#8220;eat what you kill?&#8221; This was when I took on the Warrior class and my troubles began.</p><h1>Each class has a role to play</h1><p>Your class matters but so too do the classes of your leadership team.</p><p>Warriors tend to leave a trail of dead bodies behind: angry peers, disgruntled employees, cultural debt. Even some lesser known detritus like vestigial teams working on dead-end projects and maintenance-mode tech. The Warrior has ignored these groups because they are not on the critical path and &#8220;pick your battles&#8221; is the motto of all Warriors. To succeed, Warriors need a leadership team filled with Priests who tend to the masses.</p><p>When I was part of Google Drive, this was my role. At our helm was a true Warrior that instilled obsessive focus on critical goals (e.g. swarming entire teams of 10-16 engineers on a <em>single</em> project at a time) and personally leading the product design, org influence, and technical solutioning for our top couple objectives. I ran behind her, translating mandates into vision, supplying context, tending to the gritty technical details obstructing delivery, and leading the less glamorous infrastructure groups needed to keep everything online.</p><p>The Priests in this scheme illuminate the strategic insight of the Warrior, making their mission heard and felt across the org and helping bring the whole team along for the wild ride. They tend to the process, organizational, and technical debt that hinders the mission and create the efficiency/resiliency/constancy required for an organization to prevail.</p><p>On the flip side, a Priest might create a well-oiled, highly-retentive organization but needs Warriors and Mages to ensure the group actually achieves something meaningful to the business.</p><p>The Merchant is particularly suitable in large organizations but would struggle in smaller startups. The Merchant is willing to make friends and change their own mindset towards either of warrior, priest or mage depending on the problems and situations in front of them. The journey matters more than the destination to the Merchant.</p><p>The only thing to avoid is multiple levels of leader with the same class. Warrior clans burn out their teams and create cultures of fear. Mage clans produce over-engineered monstrosities that permanently increase the cost of doing business. Priest clans devolve into adult daycare complete with back rubs and story time. Merchant clans impact is limited by the <a href="https://en.wikipedia.org/wiki/Overton_window">Overton Window</a> and can paradoxically lose influence for being &#8220;too political.&#8221;</p><h1>Build the team you need to succeed</h1><p>If you are an executive and find yourself hiring a new leader, choosing which class you need (and figuring out the true classes of your candidate pool) is paramount. There are lots of faulty intuitions and traps waiting if you half-ass this.</p><p>Consider some common scenarios that might lead you to hire a new leader.</p><p><strong>Execution Swamp</strong><br>Money goes in, nothing comes out. The lead seems too soft, too checked out, too ineffective. Your instinct is to hire a Warrior who will come in and show &#8216;em how it&#8217;s done.</p><p>Resist this urge with all your might. It will not work. The thing is, no one comes to work wanting to suck at their job. If an organization is failing to execute collectively, the problem is going to be a complex, nuanced combination of systemic factors, individual performance problems, and technical issues that have been deferred far too long.</p><p>Warriors will quickly become discouraged by the magnitude of the change required to achieve anything, impatient at the slow rate organizational-change-at-scale unfolds, and will create secondary disasters by applying too much brute force to a delicate operation. Instead, grab a Priest who will carefully orchestrate an organizational pivot with their trademark combo of personal and professional care.</p><p><strong>Engineering Hairball</strong><br>The systems are chronically over engineered. The brain trust has successfully turned your simple web app into a distributed replicated cache replete with CAP theorem problems. Or the inverse: your majestic monolith ain&#8217;t cutting it anymore. Incidents are piling up and nothing is getting better. Either way, the issue seems to be a lead who doesn&#8217;t know any better and lets their team get away with this shit&#8230;maybe even sponsoring some of these gaffes.</p><p>Your instinct is to hire a Mage who will up-level everyone&#8217;s technical acumen. This too, will not work. The Mage does not actually know how to scale their expertise. They will become a bottleneck at best, or frustrate and scare off all your talent at worst, and won&#8217;t even realize it. The Mage lives by the credo &#8220;technically correct is the best kind of correct.&#8221;</p><p>In a truly nightmare inducing scenario, the Mage will fall victim to full-blown <a href="https://en.wikipedia.org/wiki/Second-system_effect">Second System Syndrome</a> and make everything worse. Their inherent genius will enable them to sell you on the idea, none-the-wiser. You&#8217;ll wake up 4 years later in the middle of an unfinished migration from hell unsure what just happened.</p><p>What you really need is a Warrior. Their obsessive focus on results and slightly aggro approach to the job will put an end to any unnecessary science experiments. The complexity perverts (they call themselves &#8220;architects&#8221;) will become frustrated and quit of their own volition. Meanwhile, a lean core of doers will emerge and rise to the top, basking in the warm glow of the Warrior&#8217;s sun.</p><p><strong>Urban Sprawl</strong><br>You have 3 different workflow engines, 5 different release tools, and 9 little fiefdoms each with their own petty overlords. The lead seems unwilling or unable to make the group behave like a single team, bring duplication into check, and focus their efforts into a cohesive strategy.</p><p>Your instinct is to hire a Priest: they will unify the group, bring about process and incentive change, and simplify the sprawl into an optimized value chain with fulfilled and energized workers. Will this work? lol, no. Your Priest will be overwhelmed by the complexity and won&#8217;t know where to start. Their model of cause-and-effect will be wrong and resulting organizational interventions will be mismatched to the actual problem. Completely stuck, they will lean on their strengths and turn the problem into a group brainstorm with the same predictable results as design-by-committee.</p><p>In these scenarios, you need a Mage to end around the kingdom building and incentive gaming. Their outsized capacity for complex and complicated scenarios (word up Cynefin) will allow them to conceive of technical solutions that can outcompete the fiefdoms&#8217; bloatware. Free market forces will take it from there.</p><h1>Picking your next role</h1><p>This framework cuts both ways. Just as you&#8217;d use it to staff your leadership team, you can use it to evaluate the role you&#8217;re being asked to play.</p><p>Having just come up with this while puttering around ORD waiting for my connection, I&#8217;ve never actually put this to the test, but I suspect this could be pretty helpful for picking your next job.</p><p>During interviews, get some grounding on the situation you&#8217;re walking into, map it to the appropriate class, and ask yourself if you want to do that for the next couple years.</p><p>You can also use it as a bit of a shit test for your new boss: do they know enough to look for the right class? Before accepting any offer, ask your would-be-boss, &#8220;Why me? What do you think you&#8217;re going to get?&#8221; Their answer says everything and you need to read <em><strong>a lot</strong></em> into what they say. Every single word carries meaning. Even if they are someone you&#8217;ve worked with before and you know they are good, do not skip this step. They might have known you 2 or 3 class changes ago and it is extremely difficult to override/update the impression left by your past self.</p><p>Oh and if you&#8217;re wondering how things turned out for me, after figuring out I was playing the wrong class, I adopted <em>some</em> of the habits of a Merchant after which there was an immediate improvement in my effectiveness. I didn&#8217;t <em>completely</em> change how I lead and there&#8217;s still some friction&#8212;I very much believe you have to play to your strengths and remain true to your core values. There is such a thing as role-personality fit (see various reflections of this such as founder-market fit Wes Kao&#8217;s <a href="https://review.firstround.com/the-other-pmf-wes-kaos-personality-message-fit-framework-for-founders/">founder-message fit</a>) so you must seriously ask if <em>you specifically </em>are the executive that the situation demands or if everyone would be better off letting that opportunity go to someone else.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><span>h/t to the inimitable </span><a href="https://read.chaitime.ai/">Chaitali Narla</a><span> who came up with this and is the best Merchant I&#8217;ve ever worked with.</span></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[You’re Not Ready]]></title><description><![CDATA[The Hidden Resume of Senior Leaders]]></description><link>https://lolno.com/p/youre-not-ready</link><guid isPermaLink="false">https://lolno.com/p/youre-not-ready</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 26 Apr 2026 15:32:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pt5X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pt5X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pt5X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Pt5X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Pt5X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Pt5X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pt5X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:365276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205066183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pt5X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Pt5X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Pt5X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Pt5X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33118a68-961f-4458-b4d3-778cba53a175_1920x1280.jpeg 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 aria-hidden="true" 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><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 qualifications of someone who will do well managing teams of hundreds with multiple layers of management are not at all obvious and look nothing like your traditional type-A resume.</p><p>Big logos, ivy league degrees, business school at the likes of Wharton/Booth/Kellogg/Sloan/Stern/&lt;old dead guy&#8217;s name here&gt;, even flashy launches and landing impressive OKRs. All of it &#8220;helps&#8221; but none of it is what makes you truly prepared.</p><p>Maybe you&#8217;ve been leading a 20-30 person org for a few years now with a string of successes under your belt. You are poised and professional, can present at an all-hands or executive project review without stumbling, and managing your team feels like it takes only one-quarter of your total brain power. Everything is on auto-pilot. You ask your boss for a bigger opportunity: that new P0 company imperative or a larger org or something like that.</p><p>His reply? <strong>&#8220;You&#8217;re not ready.&#8221;</strong></p><p>What follows will usually be some stilted, sweaty feedback conversation where your manager tries to explain what you need to do to become ready&#8230;all while everyone in the room is distractedly thinking &#8220;shoot me, shoot me with a gun, right now.&#8221; None of it sounds convincing or like something you haven&#8217;t already done: the feedback will be polite nothings like be more visible to VPs, have more org-wide impact, build a brand<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>First off, if you follow any of this literally you are doomed to fail. You&#8217;ll burn cycles doing some performative &#8220;horizontal&#8221; initiative<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> thinking it checks the box and <em>still get denied.</em> Feedback extracted under duress is just not fully thought out. Moreover, most members of upper management are holding back because they don&#8217;t know if you can handle the hard truth, nor do they really know how to express the things you&#8217;re missing without landing themselves in front of HR.</p><p>This post is the unfiltered answer: the experiences, capabilities and proof points that are the real determinant for who gets propelled into middle- and upper-management.</p><h1><strong>If you have to ask, you&#8217;ve already failed.</strong></h1><p>I&#8217;ve been managing managers (of managers of managers) for the last couple years now. I have some version of this &#8220;I want more&#8221; conversation every other month. &#8220;Yea buddy, get in line&#8221; is what I really want to say.</p><p>Every single person in my shoes is busy as hell and desperate to delegate away 40-50% of the things on their plate. The implication is that if your boss thought highly of you, they would be actively pushing more scope onto you <em>in advance</em> of asking for it (and often before you personally feel ready). If it doesn&#8217;t feel like you&#8217;re getting DDoS&#8217;d by your manager, then you are <em><strong>not</strong></em> their favorite child.</p><p>The naive response in this situation is to ask them: &#8220;what can I take off your plate?&#8221; But this just puts them on the spot. Here&#8217;s what races through my mind&#8230;</p><ul><li><p>Oh gosh, um, let me somehow zoom out in the next 5 seconds and think about ALL THE THINGS in my work life. Now I need to filter this down to things I think you can actually do well&#8230;</p></li><li><p>&#8230;and that are important enough that it will show real growth.</p></li><li><p>&#8230;and that I have not promised to someone else or have someone better suited in mind.</p></li><li><p>&#8230;and that I think you will actually say &#8220;yes&#8221; to and put your full effort behind.</p></li></ul><p>All of this while you&#8217;re staring at me expectantly. Please don&#8217;t do this. If you absolutely have to approach this way, send an e-mail in advance of your next 1:1.</p><p>A better approach is to be more observant of your boss, your org, and the company. Take notice of what is occupying everyone&#8217;s time, where things are falling through the cracks, and the problems everyone is ignoring. Pick one and then tell your boss: &#8220;I&#8217;m interested in doing more, I&#8217;ve noticed &lt;X&gt; is a recurring challenge, I think it&#8217;s valuable to solve now because &lt;Y&gt;, and I plan to approach as follows: &#8230;&#8221;</p><p>This works so well because it puts effectively zero demand on your manager. They can simply nod and say &#8220;make it so.&#8221; Besides making your executive feel like Jean-Luc Picard (which can only be a good thing), it also demonstrates that you are someone who <strong>seeks challenge</strong>. What you&#8217;re demonstrating is <em>creative dissatisfaction</em>, an all important prerequisite to even be considered for upper leadership. Senior executives are expected to constantly look for ways to improve the company&#8217;s products and processes.</p><p>Famously, the &#8220;seeking challenge&#8221; phase was the last step in <a href="https://www.bain.com/contentassets/17a33a5a4c4048528536650994935a1e/benelux_results_leadership_corridor.pdf?ref=commoncog.com">Kraft&#8217;s Leadership Corridor</a>, the development methodology that made a cheese company into one of the premiere factories for producing executive talent that would go on to become CXO&#8217;s across the Fortune 500 (<a href="https://commoncog.com/c/cases/leadership-corridor-kilts-gillette">case study</a>).</p><p>Be like the cheese people, seek challenge.</p><h1><strong>Experience dealing with everything the job can throw at you.</strong></h1><p>Part of ascending the ranks is handling <em><strong>more</strong></em>. More people, more orgs, more projects, more problems, more situations you were previously shielded from. You have to deal with these things directly but also increasingly through your management team&#8230;all with <em>complete independence</em>.</p><p>I don&#8217;t mean the &#8220;normal stuff&#8221; like aggressive deadlines, competitive pressure, staffing turnover, or new technologies. I mean the crazy shit: job abandonment, leadership coups, layoffs, acquisitions, deathmarches, feuds between your boss and their peers, etc.</p><p>This has two implications:</p><ol><li><p>You must be confident enough to handle these things on auto-pilot without days and days to research, discuss, and prepare. You must be able to walk into the most fucked up situation you&#8217;ve ever seen and go &#8220;huh, alrighty then&#8221; and one-shot it.</p></li><li><p>You must be able to teach other managers how to handle these things, perhaps for the first time and without taking on too much yourself. You must be able to project the strength, certainty and warmth to put others into a positive and productive state of mind so they can rise to the occasion.</p></li></ol><p>You won&#8217;t be able to do this without <em><strong>lots and lots of experience</strong></em>. This isn&#8217;t meant to be an ageist thing (you can collect experience fast or slow, this is the reason I could break into the executive ranks in my 20&#8217;s). You may be great at generalizing concepts, but these will come at you so fast and so hard there will be no time to invent solutions from first principles.</p><p>There is no replacement<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> for witnessing first-hand how these situations play out, how they react to certain interventions, and the playbooks world-class leaders and beacon companies have developed. This sort of exposure gives you not just concrete examples to follow, but builds your intuition and sensemaking capacity.</p><ul><li><p>Entering into a situation and figuring out what must have happened for the situation to have turned out this way, as well as which way the situation is headed unless something changes.</p></li><li><p>Seeing how the things one does connect to other things that happen elsewhere.</p></li><li><p>Being able to tell when things are subtly out of the ordinary, when things are about to go wrong, or when everything is in place for things to go right.</p></li><li><p>Knowing techniques to extract feedback from a situation to improve one&#8217;s mental models, rearranging or combining steps in procedures to be more efficient.</p></li><li><p>Being able to come up with alternative processes on the fly based on understanding of the situation.</p></li><li><p>Keeping track of how well one is doing, and which the areas are in which one needs improvement the most (this is the reason experts don&#8217;t always need mentors the way beginners do).</p></li></ul><h2><strong>The 142 Horrors of Management</strong></h2><p>Without further ado, here is a selection of situations and experiences you must have navigated previously to be considered &#8220;ready&#8221; for upper management (or were proximate enough to pick up the know-how 2nd hand):</p><ol><li><p>Employees that abuse company-, state-, and federally-protected leaves to avoid accountability.</p></li><li><p>Employees that just straight up disappear without a word aka job abandonment.</p></li><li><p>Employees that weaponize HR/employee-relations/ombuds complaints against their manager to neuter performance management.</p></li><li><p>Getting sued by a competitor, customer, or employee.</p></li><li><p>Inheriting employees that were never given necessary feedback and puffed up by prior managers&#8230;now disappointed to not be showered with praise, promotions, and elevated ratings.</p></li><li><p>Managers that were given too many reports too quickly but aren&#8217;t willing to admit they are drowning.</p></li><li><p>Managers that skip standups, delay or cancel 1:1s, and generally spend all their time &#8220;away&#8221; from their team.</p></li><li><p>Managers that are badly calibrated and have fundamentally misled their <em><strong>entire</strong></em> team about the performance bar: failing to deliver feedback, inflating ratings, setting inappropriate growth expectations, and letting poor performers flourish&#8230;none the wiser that they are in for a reckoning.</p></li><li><p>Managers that ignore/violate company policy out of self-interest, creating other secondary issues, all while concealing everything from you<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>.</p></li><li><p>Managers that don&#8217;t explain the vision or strategy to the team and just say &#8220;we&#8217;re doing X because the big boss said so&#8221; cratering employee engagement.</p></li><li><p>Managers that foment resentment for company leadership and direction by constantly projecting their disillusionment and personal issues.</p></li><li><p>Managers that don&#8217;t know how to code or even how their own systems work or outright refuse to &#8220;be technical.&#8221;</p></li><li><p>Convincing a team of managers to also code and contribute directly even though the people leaderships parts of their job take 60+ hours per week.</p></li><li><p>Cross-functional partners (PMs, designers, customer support, account executives, whatever) that are doing their jobs badly and it&#8217;s affecting your team.</p></li><li><p>Support functions (SRE, Developer Experience, QA) that are run poorly but also tax all incremental headcount you receive. Negotiating and renegotiating headcount allocation to these functions.</p></li><li><p>Cross-functional partners with radically different priorities and no interest or incentive to align with you and the engineering teams more broadly.</p></li><li><p>PMs micromanaging your team and stepping on the toes of your engineering managers. Bonus points if the PM is really bad at engineering management and its actively making the team run poorly.</p></li><li><p>PMs/TPMs creating excessive processes and ceremonies that slow down your team and create the appearance of work without actual progress or results to show for it.</p></li><li><p>PMs without any product strategy and unwilling to take any feedback or let engineering fill in the missing strategy.</p></li><li><p>PMs with a terrible product strategy that engineering leadership politely ignores while doing their own thing.</p></li><li><p>Engineering leaders letting a PM&#8217;s &#8220;pet project&#8221; get staffed knowing full well it&#8217;s a terrible idea and not worth the team(s) that will be sacrificed to make it happen.</p></li><li><p>Large market-, location-, and macroenomic-driven <em>decreases</em> to compensation. We&#8217;re talking 10-40% decreases in total compensation.</p></li><li><p>Withholding yearly bonuses due to individual or even company-level performance misses.</p></li><li><p>Delivering and backing performance results you do not agree with.</p></li><li><p>Shielding an employee from adverse action that is wholly unjustified and an overreaction to a minor mistake that caused no harm<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a>.</p></li><li><p>Trying to retain a critical employee who walks into your office with a counteroffer for &gt;=100% of their current total compensation.</p></li><li><p>Critical vendors and infrastructure providers going out of business.</p></li><li><p>Critical open source dependencies going closed source, changing licenses, or losing all maintainers.</p></li><li><p>A sev0 security vulnerability is discovered that is being actively exploited.</p></li><li><p>A security researcher is threatening to publicly disclose a sev0 vulnerability faster than you can possibly fix the issue.</p></li></ol>
      <p>
          <a href="https://lolno.com/p/youre-not-ready">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Black Hole of Engineering Spend]]></title><description><![CDATA[In the relentless corporate grind, R&D budgets transform into black holes as engineering costs escape scrutiny. We're desperately chasing innovation, yet delivering mere maintenance in a commodity market. Only by adopting a sharper lens&#8212;drawing inspiration from DuPont's return on equity approach&#8212;can we cut through the chaos and establish a real honest control system for engineering.]]></description><link>https://lolno.com/p/the-black-hole-of-engineering-spend</link><guid isPermaLink="false">https://lolno.com/p/the-black-hole-of-engineering-spend</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Fri, 20 Feb 2026 16:14:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LhBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LhBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LhBW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!LhBW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!LhBW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!LhBW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LhBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4852290,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://managerscraft.substack.com/i/204928142?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LhBW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!LhBW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!LhBW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!LhBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189997c6-4d05-4ba6-a289-cf47b633d3c2_2752x1536.webp 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 aria-hidden="true" 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><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>If you&#8217;ve spent five minutes in a C-suite meeting, you know the drill. Sales is scrutinized. Marketing spend gets interrogated. Then the group reaches the R&amp;D line item, the multi-million-dollar software engineering budget, and everyone just&#8230; blinks.</p><p>Engineering is the ultimate &#8220;black box&#8221; in financial accounting. We produce an intangible asset that traditional balance sheets struggle to value. So we use weak heuristics to allocate our most expensive resource: engineering talent.</p><p>During the ZIRP era, nobody cared. We threw seven engineering teams at problems that needed one and built a maintenance death spiral. But the party is over. Margins are being compressed, AI is turning software into a commodity with actual COGS again, and &#8220;cutting the R&amp;D fat&#8221; is the new favorite pastime of private equity.</p><p>Before ZIRP, there was at least an attempt at scientific management: heavy project management, estimating frameworks, and cost-accounting machinery (IBM Rational, anyone?). It still failed to make software organizations legible; it mostly added bureaucracy.</p><p>As of 2026, our industry still lacks a standard control system.</p><h2><strong>The DuPont Alchemists</strong></h2><p>To understand how to fix this, look back to 1912. DuPont developed what became the DuPont Equation.</p><p>Before this, Return on Equity (ROE) was a single output metric: useful, but not diagnostic. DuPont decomposed ROE into factors that cancel algebraically but reveal what is actually driving performance.</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\frac{\\text{Net Income}}{\\text{Equity}} = \\underbrace{\\frac{\\text{Net Income}}{\\text{Sales}}}_\\text{Efficiency} \\times \\underbrace{\\frac{\\text{Sales}}{\\text{Total Assets}}}_\\text{Productivity} \\times \\underbrace{\\frac{\\text{Total Assets}}{\\text{Equity}}}_\\text{Equity Multiplier}&quot;,&quot;id&quot;:&quot;CVGNWWUCMQ&quot;}" data-component-name="LatexBlockToDOM"></div><p>By looking at Profit Margin (Efficiency), Asset Turnover (Productivity), and Financial Leverage (Equity Multiplier), a manager could see exactly where the engine was knocking. If ROE was down, was it because they were bad at selling, bad at using their factories, or just under-leveraged?</p><p>More importantly, it helped you determine the most basic truth of business: Are you actually doing better than just selling everything off, liquidating the furniture, and sticking the money in a boring S&amp;P 500 index fund? If your ROE is lower than the market average, you&#8217;re just playing a very expensive game of &#8220;make-believe business.&#8221;</p><p>While you could use ROE out of the box, it misses key dynamics of software economics. Its diagnostic utility for a software division is limited.</p><h2><strong>Software is a Factory, Not a Lab (Sorry)</strong></h2><p>Before I show you the math for software, we need to clear the air.</p><p>Most people&#8212;including many engineers&#8212;think software&#8217;s value is found in some abstract concept of &#8220;innovation.&#8221; They think we are in a laboratory, mixing chemicals and hoping for a breakthrough. That&#8217;s nonsense.</p><p>Software is a produced good. It&#8217;s a weird, magical good with near-zero marginal cost of reproduction, but it&#8217;s a produced good nonetheless. Once you build the system, serving the 10,000th customer should cost almost nothing compared to the first. The unit economics are hard to beat. This is my read of Marc Andreessen&#8217;s seminal <em><a href="https://a16z.com/why-software-is-eating-the-world/">Why Software is Eating the World</a></em>.</p><p>The catch: you only realize those margins if your engineering is actually <em>good</em>.</p><p>High-quality engineering is not about &#8220;clever&#8221; code; it is about systems that are cost-effective to operate, adaptable to new demands, and easy to expand without a rewrite every 18 months. If the architecture is brittle, you lose the software advantage and end up hiring people to compensate for what the code should do. Your &#8220;software company&#8221; will have the margins of a manual car wash because you&#8217;re hiring armies of SREs just to keep the lights on.</p><p>We are not chasing &#8220;innovation&#8221; for its own sake. We are chasing <strong>margin expansion and preservation</strong>. The goal of an R&amp;D division is to widen the gap between revenue and the cost to the machine. Even more paramount, we must be widening the gap between revenue and the cost of <em>expanding</em> the machine. Software cannot afford to be static.</p><p>Software is not a permanent asset; it is a <strong>depreciating asset</strong>. In fact, it&#8217;s one of the fastest-rotting assets on the planet. The moment you ship code, the world starts conspiring against it.</p><ul><li><p>Competitors launch similar or better features (e.g. Apple&#8217;s &#8220;late-mover&#8221; advantage).</p></li><li><p>Customer tastes change without warning or cause (e.g. viral trend cycles and generational dynamics).</p></li><li><p>New players can move more freely without the burden of accumulated feature complexity and tech debt, granting them both <em>velocity</em> and <em>margin</em> incumbents will struggle to replicate.</p></li><li><p>Platform paradigms evolve and force rebuilds (e.g. from desktop apps to web apps).</p></li><li><p>Technological breakthroughs raise user expectations for what software must do (e.g. you can&#8217;t become a billionaire just shipping a &#8220;database with a CRUD UI&#8221; as was the case in the early 00&#8217;s).</p></li></ul><p>If you stop moving, your software doesn&#8217;t just &#8220;stay the same&#8221;&#8212;it becomes a liability. To stay relevant, you have to continually add features and capabilities just to maintain parity with the market. This is the &#8220;Red Queen&#8217;s Race&#8221; from Alice in Wonderland:</p><blockquote><p>&#8220;My dear, here we must run as fast as we can, just to stay in place. And if you wish to go anywhere you must run twice as fast as that.&#8221;<br>&#8213; Lewis Carroll</p></blockquote><h2><strong>The Equation: Return on R&amp;D</strong></h2><p>To measure the health of a software division, we look at the relationship between <strong>Free Cash Flow (FCF)</strong> and <strong>Operating Expenses (OpEx)</strong>.</p>
      <p>
          <a href="https://lolno.com/p/the-black-hole-of-engineering-spend">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Throwing Away Your Legos]]></title><description><![CDATA[If you&#8217;re reading this blog, you&#8217;re probably the sort of person who has heard the advice to Give Away Your Legos. It&#8217;s the notion that as your company scales, your job responsibilities will change very rapidly and necessitate letting new hires take over teams/projects/problems/functions that used to be your job, freeing you to go after the Next Big Thing&#8482;. The metaphor of &#8220;giving up your Legos&#8221; captures the notion that this will be an emotional process&#8230;just like letting someone play with your Legos as a kid. Will they break it? Will they build on to my super cool tower the way I want them to? Will they ever give them back? It&#8217;s hard to give up a team or function to which you dedicated yourself or maybe even built up from scratch!]]></description><link>https://lolno.com/p/throwing-away-your-legos</link><guid isPermaLink="false">https://lolno.com/p/throwing-away-your-legos</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 18 Jan 2026 16:26:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Fy8d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Fy8d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Fy8d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 424w, https://substackcdn.com/image/fetch/$s_!Fy8d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 848w, https://substackcdn.com/image/fetch/$s_!Fy8d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 1272w, https://substackcdn.com/image/fetch/$s_!Fy8d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Fy8d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:244596,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205065764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Fy8d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 424w, https://substackcdn.com/image/fetch/$s_!Fy8d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 848w, https://substackcdn.com/image/fetch/$s_!Fy8d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 1272w, https://substackcdn.com/image/fetch/$s_!Fy8d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda6551ff-649d-4c94-8335-232d301d2801_2400x1800.webp 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 aria-hidden="true" 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><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>If you&#8217;re reading this blog, you&#8217;re probably the sort of person who has heard the advice to <a href="https://review.firstround.com/give-away-your-legos-and-other-commandments-for-scaling-startups/">Give Away Your Legos</a>. It&#8217;s the notion that as your company scales, your job responsibilities will change very rapidly and necessitate letting new hires take over teams/projects/problems/functions that used to be your job, freeing you to go after the Next Big Thing&#8482;. The metaphor of &#8220;giving up your Legos&#8221; captures the notion that this will be an emotional process&#8230;just like letting someone play with your Legos as a kid. Will they break it? Will they build on to my super cool tower the way I want them to? Will they ever give them back? It&#8217;s hard to give up a team or function to which you dedicated yourself or maybe even built up from scratch!</p><p>Crazy startup rocket ship isn&#8217;t the only place where Legos must be given away. Anyone who has ascended the corporate ranks has encountered the need to let go of past responsibilities as a necessary prerequisite to doing the next-level-up job. You can&#8217;t focus on strategy and direction for a whole org if you&#8217;re still busy managing day-to-day execution.</p><p><strong>What no one really talks about is how this comes up even when your company is </strong><em><strong>shrinking</strong></em>. Hiring freezes, layoffs, chronic headcount crunches, forced stack ranks, and priority lists where most of it ends up on the cutting room floor. This is the new reality of tech and even the largest, most successful companies aren&#8217;t immune. In even these situations you will be faced with give-away-your-legos moments&#8230;but with a catch: there won&#8217;t be anyone to pick up your old responsibilities. Screw giving them away, you are straight up throwing your Legos in the garbage and it feels <em><strong>so much harder</strong></em> than just transitioning that work to someone else.</p><p>I really struggled with this recently. For years I was the overall technical lead of Drive&#8217;s serving infrastructure&#8230;everything ranging from the backends and networks that transfer/sync/deliver your data, streaming and transcoding, file viewing, to the APIs that power both 1st and 3rd party applications and the ecosystem of partnerships around that. Then the GenAI revolution happened. Over night we went from peacetime to wartime: all headcount was directed at AI investments, projects were cancelled, and teams were reorganized to ensure we could quickly secure Workspace&#8217;s role in the future of productivity. As a key technical lead and respected executor, I too was asked to drop what I was doing and dive in&#8211;&#8211;specifically to help improve our search capabilities as both a critical user journey and a technical building block of RAG. The expectation was that I would completely drop my old responsibilities and focus full-time on the new problem. But here&#8217;s the catch: there was no one to take over in my stead. We wouldn&#8217;t hire a backfill, the local EMs were stretched to capacity, and no one waiting on the bench was even remotely close to being able to handle the role.</p><p>Without a clear successor, I was being asked to take my precious baby (platform and ecosystem) and drop it on the floor without a second thought. Those projects and teams would continue just without the support, guidance, and clarity of an uber technical lead. Good luck everyone! &#8220;Not on my watch,&#8221; I thought. All I needed to do was keep an eye on <em>both</em> things simultaneously. Jump in if any fires start, coach the EMs and TLs, review designs, all while pushing the envelope on search/AI&#8230;sure there might be a couple long nights but juggling a bazillion things is my professional brand. This should be doable&#8230;right!?</p><p>The result was very predictable. I spent 90% of my time tending to my old job and making sure everything was still going well while the search/AI work dragged on. The rest of the search tiger team moved on without me and I stopped getting invited to the meetings (not maliciously, mind you, people just literally forgot I was suppossed to be working on this thing). My boss&#8217;s feedback was equally predictable as she looked over my accomplishments week-over-week: &#8220;this is all valuable stuff so you can keep doing it&#8230;.but it isn&#8217;t what&#8217;s most important to the business and I can&#8217;t really reward you for doing it.&#8221; Even then, I still couldn&#8217;t find the emotional energy or willingness to let go of my old demesne.</p><p>Why was this so hard for me? <strong>There was no one to take over</strong>. Letting go is one thing, but taking something you built and nurtured for years and leaving it in the woods to fend for itself is something else altogether. <strong>But this is exactly what the business was trying to do&#8230;intentionally</strong>! We had jointly agreed that the GenAI &#8220;moment&#8221; was an existential threat and that we couldn&#8217;t keep operating the status quo. A new product strategy was developed and my old domain was not relevant: this required some hard prioritization decisions where things like &#8220;partner ecosystem&#8221; fell below the cutline&#8230;lots of great Drive&lt;-&gt;3P SaaS integrations weren&#8217;t going to propel user engagement and retention when entirely new ways of working were being pioneered by our competitors.</p><p>In a sense, there were two hypotheses we were testing simultaneously:</p><ol><li><p>If we focus all our energy into AI transformation, does the market respond? Can we compete and offer something users find useful?</p></li><li><p>Can we put ecosystem/platform/APIs into maintenance mode without affecting our SUPER<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> metrics? Do we really need a dedicated senior staff technical lead to keep the train on the tracks or can this area be run more efficiently?</p></li></ol><p>By failing to throw away my Legos, I prevented the business from confirming or refuting either hypothesis. I won&#8217;t go so far as to say we &#8220;made no progress,&#8221; but we certainly did not gather any new information about whether our AI strategy pivot would work.</p><h3><strong>Successful Careers Thrive on Discomfort</strong></h3><p>Failing to give/throw away your legos leads directly to stasis. As in my story above, I was out of alignment with the business and not directly working on our top priorities. Go figure, that meant the center of attention (and with it the resources and growth opportunities) went elsewhere.</p><p>It may sound odd to talk about growth when we&#8217;re specifically analyzing a company that is in contraction, but any well-run org goes through periodic cleanup cycles. Cycles where unnecessary or overgrown functions are reaped, processes are tweaked with efficiency in mind, and anything deemed no longer serving the strategic focus of the system is expunged&#8230;all so that organizational energy is being directed disproportionately towards those activities which generate progress (i.e. market success). Rocket ship or not, you will encounter this eventually.</p><p>Failing to come along for the ride risks becoming obsolete or even outright vestigial (layoffs ahoy). Whatever good will and influence you built while Being Awesome at The Old Thing will go to zero. You&#8217;ll find your peers who did answer the call rising in the power rankings and next time a major opportunity rolls around you won&#8217;t even be asked/considered. After all, you&#8217;ve shown you can&#8217;t give up what you already have anyways. Diamond hands is not the right strategy here.</p><p>This means embracing discomfort&#8230;.</p><ul><li><p>The discomfort of doing something new you&#8217;re not sure how to do just yet.</p></li><li><p>The discomfort of having to re-prove yourself over and over.</p></li><li><p>The discomfort of watching what you built previously struggle along without you.</p></li></ul><p>This stuff is hard, it directly triggers multiple fundamental pathways in our brains that detect social threats. I call these the SCARFI threats (a very slight extension of <a href="https://schoolguide.casel.org/uploads/sites/2/2018/12/SCARF-NeuroleadershipArticle.pdf">David Rock&#8217;s social threat model</a>):</p><ul><li><p><strong>S</strong>tatus: going from King of the Hill to The New Kid is jarring. What if you fail? What if you never reclaim your crown?</p></li><li><p><strong>C</strong>ertainty: the new thing is full of ambiguity, it&#8217;s not clear how it will turn out or whether this will be a positive experience.</p></li><li><p><strong>A</strong>utonomy: you used to be trusted to run your area, but now you&#8217;re just &#8220;part of the team&#8221; and your boss has likely taken a special interest in ensuring things go well.</p></li><li><p><strong>R</strong>elatedness: you&#8217;re likely being forced to work with new people and with it must handle the social anxiety of learning others&#8217; ticks and tells while trying to build a real relationship.</p></li><li><p><strong>F</strong>airness: what if the new thing fails for reasons outside of your control? What if someone else with more context or experience in this area wanders in and out shines me? Do I really have a fair shot at succeeding?</p></li><li><p><strong>I</strong>dentity: you view your old role as a core part of your identity. &#8220;I&#8217;m the API guy!&#8221; Your sense of self and place in the social fabric is being forcefully rewritten and only time will tell if you like &#8220;the new you.&#8221;</p></li></ul><p>Your brain will be screaming at you the whole time &#8220;turn back! defenses activate!&#8221; This is not your better nature speaking and the only way forward is cold rationality.</p><h3><strong>Chuck and Run: Overcoming SCARFI</strong></h3><p>What people usually want to hear is that you should carefully hand off everything&#8211;&#8211;ensuring that any people you leave behind have clear instructions and extra support when the inevitable fire springs up. While you might not have a successor, surely softening the landing is the responsible thing to do&#8230;right!?</p><p>Wrong. This is the exact instinct that gets you into trouble and it&#8217;s little more than a post-hoc justification for your bad behavior.</p><p>Our instinct is to control everything, including how someone does our old job after we&#8217;ve moved on. But the truth is, the business is evolving. What&#8217;s really happening here is the company has to re-evaluate what is truly existential and what is nice to have, what actions and investments really move the needle exponentially vs. linearly, etc. This isn&#8217;t the sort of thing you can usually figure through arm chair analysis&#8211;&#8211;you throw your best people on your hardest problems and see how much it moves the envelope. Meanwhile you suffocate and starve everything else. <strong>For a new operating model to emerge you can&#8217;t keep the old one on life support.</strong></p><p>One of two things will happen: it will crash and burn badly or&#8230; it won&#8217;t. That&#8217;s tautological but what really matters is the magnitude of badness. There is a degree of acceptable loss in any enterprise: slightly higher costs because no one is optimizing the AWS bill, customers complain the return process is a little clunky but it&#8217;s rarely used, a P1 bug takes an extra week to resolve but nothing implodes because of it, etc.</p><p>If all goes well, it&#8217;s probably because either&#8230;</p><ol><li><p>That thing doesn&#8217;t matter as much as you think it did (yay, you discovered you were wasting your time and now you&#8217;re not, rejoice), or&#8230;</p></li><li><p>Someone who was coasting will step up and surprise you, filling the vacuum, uncovering latent capacity you didn&#8217;t know you had (build that bench, baby!)</p></li></ol><p>Either way, you leave with new information about how much that thing matters, whether you have key person risk, and all of it confirmed fact rather than speculation and doubt which are prone to self-confirming biases. More information is always better than less.</p><p>Do not carefully place your Legos on the shelf for the next person, coming back every few days to clean off the dust and give them a polish&#8230;throw them directly in the trash and <em><strong>GO</strong></em>!</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>SUPER: <strong>S</strong>ystem Health, <strong>U</strong>ser Sentiment, <strong>P</strong>roductivity, <strong>E</strong>ngagement, and <strong>R</strong>evenue </p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Management by Model]]></title><description><![CDATA[Leading at Scale Without Drowning]]></description><link>https://lolno.com/p/management-by-model</link><guid isPermaLink="false">https://lolno.com/p/management-by-model</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Thu, 08 Jan 2026 16:23:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oDS2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oDS2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oDS2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 424w, https://substackcdn.com/image/fetch/$s_!oDS2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 848w, https://substackcdn.com/image/fetch/$s_!oDS2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 1272w, https://substackcdn.com/image/fetch/$s_!oDS2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oDS2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp" width="1456" height="1318" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1318,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:467180,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205065120?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oDS2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 424w, https://substackcdn.com/image/fetch/$s_!oDS2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 848w, https://substackcdn.com/image/fetch/$s_!oDS2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 1272w, https://substackcdn.com/image/fetch/$s_!oDS2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee10f266-913b-4385-adae-75a43913ef12_2400x2172.webp 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 aria-hidden="true" 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><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>A mentee recently came to me for advice: they had doubled the size of their team (and even added a layer of management) and were struggling with intense whiplash&#8230; bouncing from low-level execution management to coaching junior engineers to high-level architecture to org-wide influence, all in the space of a single day, and somehow being expected to also have time to think deeply and come up with novel strategic solutions to our org&#8217;s biggest problems. Oh, and while you&#8217;re at it, make sure to provide polished and perfect exec comms and upward management to control the narrative/perception of your team&#8217;s work&#8230; now across twice as many things. Cool, cool, cool.</p><p>The exact numbers don&#8217;t really matter, the problem is that <strong>as your scope grows there comes a point where it no longer all fits in your head.</strong> You can&#8217;t keep all the details straight while making sound decisions, commitments start to slip, your personal ETAs go from days to weeks, those &#8220;important but not urgent&#8221; tasks seem to never happen, and you start to collect regrets: bad decisions, moments where you were a total grouch, or slipped into outright command-and-control leadership. Whether that&#8217;s happening to you at 30 reports or 20 or 10, you have to change tactics before you implode.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lolno.com/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">lol, no 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><p>Managing at scale is being subjected to 12 straight hours of meetings where every 30 minutes is about a totally different topic, with a totally different stakeholder, and every conversation is an active two-way exchange (no boring all-hands you can just tune out while you read emails). Here&#8217;s a random Thursday morning (not even a whole day) plucked off my calendar:</p><ul><li><p>1:1 with a disgruntled skip report who wants to get promoted.</p></li><li><p>H2 Roadmap session with Product.</p></li><li><p>Design discussion about a new testing framework.</p></li><li><p>HR consultation on a serious case of misconduct.</p></li><li><p>Postmortem review from a huge incident we had last week.</p></li><li><p>Status readout to VPs to decide if we shitcan an entire project.</p></li><li><p>Coaching session on exec communication with one of my directs.</p></li><li><p>Negotiating a stand off between the feature and platform teams.</p></li><li><p>Emceeing a fun event for my distributed team members (thank god for <a href="http://skribbl.io/">skribbl.io</a>).</p></li><li><p>Deciding on the final set of metrics we&#8217;ll use for next quarter&#8217;s OKRs.</p></li></ul><p>You no longer have the luxury of carefully preparing talking points for your status updates, good coaching questions for your 1:1, practicing the delivery of some hard feedback, or boning up on some technical details before a complex design review&#8230;you just have to walk in with &lt;30s to change gears and nail it, first try, every time, completely cold. Maybe you also noticed there&#8217;s no time blocked off in there for deep thinking, writing docs, responding to emails, or any personal TODO&#8217;s. Yikes.</p><p>We&#8217;ve all heard the same, namby-pamby advice that you just need to &#8220;delegate more.&#8221; God, I&#8217;m so tired. Your reports might also be at capacity. You might not have anyone <em>physically able</em> to handle such tasks (i.e. a shallow bench). You might not even be able to concretely articulate the task/deliverable/goal, just a vague sense &#8220;something needs to happen.&#8221; You don&#8217;t see any way to just say no to the request. Whatever, the point is that delegating isn&#8217;t always an option.</p><p>Now don&#8217;t get me wrong, delegation is good (I have a whole post queued up about this topic), but delegating more without changing the way you work is a faux solution to a different problem altogether.</p><p>I&#8217;m no stranger to this situation: I once went from 5 to 30 direct reports in a matter of weeks, and then managed that group for a whole year as more and more orphaned teams, maintenance-mode systems, and employees were moved under me all without any option to add additional management layers.</p><p>I didn&#8217;t just double my working hours and do more of what I was already doing&#8230;I had to do something completely different. Rather than treating strategy, politics, and execution as three different jobs to juggle, I instead approached them as <strong>one integrated flow.</strong> The resulting system, dubbed <strong>management by model</strong>, transforms the 12-hour meeting block from huge time-suck to massively productive, prevents micromanagement, ensures most of your cognitive cycles are spent on high-level strategic interventions rather than tactical minutia, and might just let you reclaim your nights and weekends.</p><h2><strong>The Management by Model (MbM) Framework</strong></h2><p>The entire framework rests on one simple assumption: you were given this job for a reason, you&#8217;re probably pretty good at Getting Shit Done even if sometimes it doesn&#8217;t feel like it (imposter syndrome is a thief of joy). An obvious corollary to this that you Know Things&#8482;. Things like&#8230;</p><ul><li><p>&#8230;how work needs to be organized and tracked to ensure it actually happens and happens transparently.</p></li><li><p>&#8230;the different systems/tools you need to build anything useful (and which dependencies to avoid like the plague).</p></li><li><p>&#8230;how long things roughly take and an ability to create estimates that are more accurate than a PRNG.</p></li><li><p>&#8230;which teams and stakeholders with which you must communicate when working in any given area.</p></li><li><p>&#8230;the technical and business experts you can (or should) consult for a variety of different problems.</p></li><li><p>&#8230;how much wiggle room there is to skirt process, skip steps, cut corners, and take chances.</p></li><li><p>&#8230;what &#8220;high quality&#8221; means in your org and the definition of success beyond just &#8220;the project is done.&#8221;</p></li><li><p>&#8230;the sorts of things that will make your boss / boss&#8217;s boss / boss&#8217; boss&#8217;s boss grumpy and how to massage the message.</p></li><li><p>&#8230;the signs that a project is doomed to fail or group cohesion is disintegrating.</p></li></ul><p>With this knowledge in hand, you can construct in your head a <a href="https://en.wikipedia.org/wiki/Theory_of_forms">platonic ideal</a> for any given project: the abstract, perfect, conceptual model of how the work should be proceeding if all is well. You can likely do this automatically and without much effort (again, see: &#8220;you are good at things, you have this job for a reason&#8221;).</p><p>Like any model or virtual twin, you must carefully choose which details to include or exclude. When an architect builds a balsa wood model of a skyscraper, they are modeling mass and flow. They need to show where the load-bearing columns are, how the light hits the atrium, and how people move from the lobby to the elevators. They do not model the pattern of the wallpaper in the bathroom or the thread count of the curtains. <strong>Including those details doesn&#8217;t just waste time; it clutters the model so much you can no longer see the structural flaws.</strong> In your management model, you need to see the load-bearing walls (e.g. critical dependencies), not the wallpaper (e.g. code style).</p><p>Model in hand, you can continuously check whether work is proceeding in accords with that model, and when diffs are found, concoct a minimal intervention to nudge the system back into compliance or update your model to accommodate this allowable deviation).</p><p>By correcting deviations, the execution takes care of itself while you are free to focus on the broader strategic picture and stakeholder management so that the execution engine you build can be directed at the highest leverage opportunities. To implement this in practice, you need to implement new practices across 3 key constituencies.</p><h3><strong>Part 1: Manage Down with the &#8220;Diff&#8221; Method</strong></h3><p><strong>The Trap: </strong>you manage by tracking all of the activity on your team and continuously get involved in nearly every discussion, decision, setback, and cross-team negotiation. You feel compelled to ensure everything from the lowest level code structure decision to team-level goal setting is a 10/10 on the quality scale. You think your success will be judged by all of these details and never want to be caught by surprise with a setback or slip.</p><p><strong>The Mindset Shift: </strong>leaders work <em>on</em> the system not <em>in</em> the system. You need to stop tracking progress and individual activities and start tracking deviations. Teams fuck up, your career won&#8217;t end if there&#8217;s an occasional outage or a timeline slip (in my experience your &#8220;career&#8221; won&#8217;t be impacted either way, tbf). What matters is that the way the team responds is appropriate and <em>automatic</em> (i.e. does not require you).</p><p><strong>The Protocol:</strong> form a rigorous mental model of how your system (people + code) should behave. Any time you encounter a diff (like a lack of expected progress, missing conversation, design docs that imply the code works differently than you understand it, etc) then dig in hard. You can use this to buff your understanding of the tech just as much as you can to find+fix team/process/execution problems making it doubly effective.</p><p>To effectively detect deviations, you need to set up a series of <em><strong>tripwires</strong></em>, gates that occur naturally throughout the rhythm of work where you can look for deviations. This could be things like&#8230;</p><ul><li><p>A weekly sprint or kanban wherein committed tasks taking longer than expected will stand out.</p></li><li><p>Paying attention to the oncall / production chat. Is the team expressing the right amount of curiosity when things break or flake? Do they try to fix problems without being asked?</p></li><li><p>Review all postmortems&#8230;do they include action items that proactively detect similar events? Prevent them from happening again? Is the root cause conclusive and correct or a giant hand-wave?</p></li><li><p>Check the approvers on design docs. Were the right people included? Are key stakeholders and system owners <em>off team</em> appropriately engaged?</p></li><li><p>Even the much maligned OKRs can be somewhat useful. Do proposed OKRs describe actions or outcomes? Are those outcomes believable? (no you won&#8217;t double the size of your user base in one quarter) When end of quarter rolls around, did the team at least <em>start work</em> on all of their proposed OKRs? If the team pivoted to different goals, did they do so because they learned something or circumstances changed&#8230;or was it because something is going haywire with either the planning or execution process?</p></li><li><p>Be curious in 1:1s about how people are working together. Are there topics that keep coming up (indicating unresolved issues)? Do people share compliments and kudos about each other unbidden or is it all negative? Ask people &#8220;what can I expect to see from you in the next two weeks?&#8221; and let them answer without your influence or steering.</p></li></ul><p>These are just examples and none of them are smoking guns which indicate 100% &#8220;there is a problem.&#8221; These are simply your signs that its time to get curious and dig in&#8230;to actually spend some of your own precious energy. The best part is that most of these things cost nothing&#8230;they are all checks you can perform passively by reading email / looking at Jira / going to your regular 1:1s and team meetings.</p><p>As your team scales (30-&gt;50, 1-&gt;2 layers of management) the design of your tripwires will have to evolve in sophistication. Most of these examples would apply to a manager of a large 10+ person team or with at most 1 layer of management under them.</p><p><strong>Example: </strong>we all know that PR throughput is a horrible metric for measuring developer or team performance, but when used through the lens of MbM it has new utility! Each of my teams has a very distinct &#8220;flavor&#8221; to their work: some do greenfield projects where the expected velocity is high free from the burden of tech debt, some are deep infra groups where careful design and research are key for reliability, others are right in the middle shipping features in legacy codebases where we can expect some setbacks and rework. Every week, I receive an automated email that alerts me when someone has not pushed any code in a long time; the time span varies by team&#8230;e.g. 1 week for the greenfield group and 2 weeks for the infra group. These engineers are NOT in trouble! I don&#8217;t even tell people I have this data it never gets brought up / written down / shared. This is just my own private nudge to pay extra attention in standup and ask some leading questions in our next 1:1 to understand where the time is going or if something about their approach is off. Many times it&#8217;s innocuous&#8230;like at the start of quarter when we&#8217;re beginning new projects and the TLs might be in multiple weeks of scoping+design with their product counterparts. Other times it uncovers problems that require intervention. Two memorable examples:</p><ul><li><p>The flagged individual had lots of <em>pending</em> PRs (just nothing actually submitted). It turned out that code reviewers were very slow in responding and almost all these PRs were stuck waiting on 2 key tech leads. This led to establishing team norms around responsiveness in reviews (same-day turnaround), and cross-training to avoid bottlenecks in high-traffic components.</p></li><li><p>In another case, it turned out the individual was busily designing a robust, reusable architecture to support a new feature but it had been <em>more than a month</em> and they were still just writing writing writing. However, the feature in question would never need that level of extensibility/modifiability&#8230;the entire thing was a one-off customer request and not an area of investment where we&#8217;d be continuing to iterate and enhance past the initial launch milestone. A quick and direct solution was the only thing that would be ROI positive; after filling in this important context, the engineer changed their approach and quickly moved onto implementation with a more pragmatic design.</p></li></ul><p>By having an accurate model of how much &#8220;non-coding&#8221; work my different teams do, PR throughput becomes a marvelously effective tripwire for finding stuck engineers and problematic team behaviors!</p><h3><strong>Part 2: Manage Up by Solving, Not Inventing</strong></h3><p><strong>The Trap: </strong>you try to impress your leadership with &#8220;new&#8221; ideas and sophisticated chainlink strategies (often in the form of 20-page visionary documents) that show you can conceive of and execute ideas valuable to the business. You believe it&#8217;s key to do something large and strategic that others recognize as <em><span>your</span></em> original idea.</p><p><strong>The Mindset Shift:</strong> success is defined by the velocity at which you solve <em>your boss&#8217;s problems.</em> Creating new work unattached to current reality is just creating a whole additional problem (&#8220;more work I don&#8217;t have the resources to fund, and a report who will be mad if I say no&#8221;). In any sufficiently mature organization, the top problems and opportunities are already known and your focus should be on applying your organization to addressing them.</p><p><strong>The Protocol:</strong> understand deeply the incentives, goals, and desires of your immediate management team. That includes&#8230;</p><ul><li><p>What problems are they worried about? What issues are getting dumped in their lap from higher up?</p></li><li><p>How are they personally spending their work time? What meetings and projects do they make time for vs. skip?</p></li><li><p>What are their (often secret) hopes and aspirations? Are they trying to get promoted? What will it take to land that promotion? What is the &#8220;next job&#8221; they want? What are they hoping to put on their resume when the dust settles?</p></li><li><p>What public commitments and strong positions have they taken recently? Consistency of message is key in exec circles and they are likely repeating the same 2 or 3 talking points in every meeting. Not only does this establish momentum you can draft behind, but it also tells you what &#8220;no-go&#8221; positions to avoid&#8230;ideas and statements that would contradict or weaken the message they have been trying to send for the last N weeks.</p></li></ul><p>Once in alignment with the boss&#8217;s incentives, your job is to create the environment needed for <em>their</em> strategy to unfold successfully. You will do this via resource allocation (e.g. ruthless prioritization), role assignment (e.g. granting authority and auspicious titles to similarly aligned lieutenants), and putting in place constraints/invariants that shape how the work happens (e.g. &#8220;all teams are full stack teams by default&#8221;).</p><p><strong>Example: </strong>one of my team&#8217;s owned the backend API and frontend libraries that powered <em>~all</em> feature development in Google Drive. I inherited a multi-year migration to a new API architecture that was intended to vastly improve the feature velocity of the whole org. Midway through the migration, I conducted a round of user interviews with various feature developers across the org and discovered they did not find the new solution developer friendly. While faster than the old thing, it fell far short of our goal of enabling rapid 24-hour iteration cycles with full-stack feature teams making contributions freely to the backend to keep work moving. I could have used that data to push for a large &#8220;developer velocity&#8221; program to fully land on the original vision, or slowed down the migration to ensure the quality was high, but I didn&#8217;t. Why? Zooming out to my boss&#8217;s level, nearly 40% of our SWEs were occupied across 3 different multi-year grungy infra migrations with no user-visible impact. In the intervening years, other existential problems were identified that desperately needed attention (i.e. reliability, competitive pressure) and feature work had slowed to trickle from the resulting staffing crunch. Pressure from upper management was high to ship ship ship, and we were slowly losing headcount to other orgs that did a better job of delivering user-visible impact. What my boss <em>most needed</em> in that moment was to get some of these migration projects off the books as fast as possible so she could update priorities to reflect the new opportunities and new problems that needed attention. Locking 100+ SWEs onto projects solving problems identified 3+ years ago killed our ability to be responsive to new information. So instead of making my migration <em>even bigger</em>, I focused on containing the scope and pacesetting: we finished the migration in 18 months (down from a projected 28-36 months). The goodwill I earned from this directly propelled me into a higher leadership position with even more opportunity for impact (oh, and btw, with this increased authority I was able to eventually get that developer velocity work prioritized&#8230;you have to play the long game).</p><p>The name of the game is <strong>resource allocation based on political physics</strong>.</p><h3><strong>Part 3: Manage Out with Shareholder Politics</strong></h3><p><strong>The Trap: </strong>you try to be helpful to absolutely everyone. You constantly field random one-off feature requests from sister teams. When you hear that someone might not agree with what your team is doing or how they are doing it, you go out of your way to address that stakeholder&#8217;s issues. When planning time comes around, you have a laundry list of cross-functional requests you try to pack into the team&#8217;s quarterly commitments to support your myriad peers. You internalize just how much others depend on your team and what you build, and don&#8217;t see any way out of this&#8230;when your boss tells you to say &#8220;no,&#8221; you cannot fathom how that would even play out as there is no alternative.</p><p><strong>The Mindset Shift: </strong>rather than managing <em>stakeholders</em> you need to manage <em>shareholders</em>. The metaphor to publicly-traded companies is an apt way to realize that some stakeholders just don&#8217;t matter, while others can be absolutely existentially critical. A <em>power-interest</em> grid will help you identify the true shareholders in your enterprise:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-4aC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-4aC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 424w, https://substackcdn.com/image/fetch/$s_!-4aC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 848w, https://substackcdn.com/image/fetch/$s_!-4aC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 1272w, https://substackcdn.com/image/fetch/$s_!-4aC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-4aC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png" width="1024" height="760" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:760,&quot;width&quot;:1024,&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_!-4aC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 424w, https://substackcdn.com/image/fetch/$s_!-4aC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 848w, https://substackcdn.com/image/fetch/$s_!-4aC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.png 1272w, https://substackcdn.com/image/fetch/$s_!-4aC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b85a91b-3dfa-4d38-9043-37fa14a2873f_1024x760.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 aria-hidden="true" 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><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>Someone with <em>a lot of shares</em> (think: voting rights) has high-interest and high-power. Maybe they&#8217;re your top internal customer and their success depends on using your platform to ship a product. Or they could be your immediate manager who sees your area/project as key part of their portfolio and career ambitions.</p><p>There are also those with a lot of formal authority (think: class A shares) but are content to let things play out without helping or undermining you. Your CTO may be fine letting her VPE&#8217;s figure things out without meddling.</p><p>Others have a few shares but not enough to really influence anything. That ivory tower architect 4 teams away has strong opinions about what database your team uses but spending any effort appeasing them is going to be a waste.</p><p>Finally there&#8217;s everyone else with neither power nor interest (think: the general public). They have little reason to interact with you and may occasionally grumble and groan but neither party truly cares enough to do anything about it.</p><p><strong>The Protocol:</strong> take inventory of the shareholders in your world and chart them on a power-interest grid. Ask yourself questions like &#8220;if I overdelivered for this stakeholder, would it matter?&#8221;, &#8220;who has the ear of senior leadership?&#8221;, and &#8220;if this stakeholder didn&#8217;t like my very much, how much would it matter?&#8221;.</p><ul><li><p>Closely manage and invest in your relationship with high-power, high-interest shareholders. Regular 1:1s and 100% follow-through on every single commitment is key.</p></li><li><p>Keep the high-power but low-interest shareholders satisfied. They may require extra attention when things aren&#8217;t going well to establish confidence, maintain independence, and/or receive additional support.</p></li><li><p>Ensure the high-interest but lower-power shareholders are informed so they don&#8217;t suddenly become a source of problems. Consider amortizing the cost of managing this group with Customer Advisory Boards.</p></li><li><p>Spend no effort on the low-interest, low-power shareholders.</p></li></ul><p><strong>Example: </strong>earlier this year, we tried to ship a UI refresh of our file viewer. As a common component used across hundreds of frontends, the launch would proceed in phases with different parts of the product getting updated over the course of the year. On our 2nd launch, the accessibility lead for our area blocked the launch citing failure to meet modern accessibility standards. This wasn&#8217;t a surprise to us: we were refreshing a 10+ year old UI that needed significant updates to become compliant and as such had placed that work out-of-scope as there was limited appetite to increase the size/cost of the project. Despite filing the appropriate exemption paperwork, the accessibility lead was adamant this needed to be addressed. Key to navigating this situation was figuring out where this shareholder fell on the power/interest spectrum. Their interest was ostensibly low (they literally ignored this project for more than a year, which is why this blocker emerged during launch and not at one of the myriad earlier reviews or when we filed the initial exemption paperwork) but power was high&#8230;very high. Not only did they own the approval for this launch, but they had the ear of our VP. Ignoring them or forcing our way through the blocker would blow up, made worse by the fact that over the next year we&#8217;d need to go through this same review and same fight for every incremental launch month over month! As such we formed a compromise where a few critical surfaces would launch to start collecting real user feedback, and after that we would address all the accessibility issues before proceeding to the remaining long-tail of launches. Our launch was unblocked, user feedback was extremely positive, and everything has proceeded peacefully since.</p><h2><strong>Putting MbM into Practice</strong></h2><p>At the heart of Management by Model is a principle of energy conservation. First is <em>personal</em> energy conservation: limiting interventions to systemic problems and only getting into the details enough to understand the system; avoiding overwork by aligning to your boss&#8217;s incentives above all else; and removing distractions by filtering out irrelevant shareholders. Second is <em>organizational</em> energy conservation: ensuring work is proceeding in an low-friction and effective way by shaping the environment, constraints, and communication pathways.</p><p>The goal is to lower the incremental energy cost (time, people, ) of each unit of progress, and the amount of energetic input you must personally provide to make that happen&#8230;without slipping into outright abdication and absenteeism.</p><h3><strong>Keeping Your Model True to Reality</strong></h3><p>None of this works if your model of how work gets done is a fiction. Even if you came up on the IC ladder, your model will <em>always</em> drift the longer you stay in management. Model updates don&#8217;t come for free like they did when you were hands-on pushing PRs every single day. Consider&#8230;</p><ol><li><p>Most of the information you receive is at least partially filtered or colored to sound better. Everyone wants to look good in front of their boss.</p></li><li><p>Any information you do gain is free of the texture and intuition that comes from actual lived experience. It&#8217;s one thing to hear &#8220;feature flag rollouts can be a little toilsome&#8221; and another altogether to experience the 3AM debugging session screaming &#8220;WHY WON&#8217;T THIS BOOLEAN JUST FLIP TO TRUE $#%$#(*%&amp;&#8221;</p></li></ol><p>At my core I remain an engineer, so I keep my mental model fresh by picking up the keyboard&#8212;but I do it carefully. I target the toil: flaky tests, noisy alerts, and cleanup tasks that sit off the critical path. This is a strategic protection of the team&#8217;s time. If an engineer pauses a major deliverable to fix these annoyances, they dilute their portfolio with a smorgasbord of invisible work that is hard to defend in a performance packet. I, however, can absorb that &#8220;run the engine&#8221; overhead with impunity. Since management impact rolls uphill, I can afford to do the unglamorous work that clears the runway for the team&#8217;s visible wins, while gaining valuable insight for updating my management model It&#8217;s a win-win-win!</p><p>When we have production incidents, I love to dive in and help debug&#8230;root causing can be wonderfully illuminating (word of caution, I am a systems engineer by training and have SRE experience so I am actually useful&#8230;don&#8217;t show up and start asking basic/obvious questions or distracting first responders with crackpot theories).</p><p>The same model drift problem occurs with shareholders. The key players will change over time. Being thick as thieves with the EM of your sister team is great, but a reorg could send them far away. A deadline crunch can make even the most helpful partners turn feral and tell you to buzz off. People (and even entire orgs) will fall in and out of favor with executives and other power brokers at completely unpredictable times. That Director of PM you&#8217;re spending all your energy appeasing will become a political pariah overnight&#8230;.you might not know anything has happened/changed! It&#8217;s not like your VP is going to pop into the quarterly all-hands and say &#8220;oh, by the way, ignore any requests you get from the Platform org&#8230;it&#8217;s a total shit show and our CTO is not happy with them, we don&#8217;t want to be associated with that mess.&#8221; The prot&#233;g&#233; you&#8217;ve been mentoring for the last year will have their promo denied and fail to acquire any useful power or influence you can call upon. Womp womp.</p><p>To keep your shareholder model up to date, you need to put effort into establishing a network of trusted confidants that have eyes and ears in rooms you can&#8217;t access. You need to sow <em>many </em>such relationship seeds because some will fail to sprout, or the plant will wither in a drought.</p><h4><strong>Joining a New Company</strong></h4><p>All of this is why joining a new company in a middle or upper management role can be fraught with peril. You have absolutely no model of how work gets done in that environment. Relying on the model from your prior employer is a recipe for misfires ranging from overpromising to not-a-few pissed off employees.</p><p>When considering taking a new management role, ask your interviewers and hiring manager what they are looking for in the would-be occupant of this role. Are they looking to import a new way of working or missing experience? Does the company have a culture of curiosity and a commitment to truth? What&#8217;s the <a href="https://www.brittandreatta.com/books/wired-to-resist/">change budget</a>? Maybe the whole reason they want YOU is to come in and bust things up&#8230;if so, fire away, use that legacy model baby!</p><p>That said, that probably isn&#8217;t reality. Most of the time, the team you inherit probably has some really solid virtues and your job is to tune and optimize without capsizing the entire vessel. <a href="https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_fence">Chesterton&#8217;s Fence</a> and all that jazz. Some approaches I&#8217;ve taken to rapidly naturalizing and building a model of my new workplace include:</p><ul><li><p>Construct a <a href="https://en.wikipedia.org/wiki/Value-stream_mapping">value stream map</a>.</p></li><li><p>Fix a bug (yes, even as a VP).</p></li><li><p>Do a round of listening sessions and 1:1s with TLs and key talent that are more than 2 or 3 hops away.</p></li><li><p>Set up regular coffee chats with the 2nd-to-last person to join the company whose a little further along finding their feet.</p></li><li><p>Identify all the critical roles in your org (specific jobs / titles that <em>must</em> be occupied and performing well or the org fails at its mandate).</p></li></ul><p>I wrote a whole article that elaborates on these and many more tips&#8230;check it out!</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8403ae6c-0775-4b14-8ad0-25461a0b050b&quot;,&quot;caption&quot;:&quot;Starting your first job is tough: you have to juggle learning the ropes of professional life alongside skilling up as a new engineer. You&#8217;re probably doing this concurrently to a whole host of other life changes: leaving home/college, moving across the country, etc. As such, you might believe the going gets easier each subsequent job switch. Sorry to di&#8230;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Succeeding as a Mid-Career Hire&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:136862150,&quot;name&quot;:&quot;Jim Hughes&quot;,&quot;bio&quot;:&quot;too stupid to be having this conversation&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e7c8fc58-99f8-4187-bec6-561f47388be2_618x618.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2021-01-09T15:48:00.606Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!v_-l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://lolno.com/p/succeeding-as-a-mid-career-hire&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:205060937,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9755518,&quot;publication_name&quot;:&quot;lol, no&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WQj8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37265bed-c95a-494b-9b14-d33153eaaa76_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h3><strong>People Bugs</strong></h3><p>MbM won&#8217;t help you if most of your staff are constantly screwing up, your tripwires will go off constantly and you&#8217;ll drown in concurrent deep dive interventions.</p><p>Hence when it comes to talent management, especially for your top lieutenants, you&#8217;ll have to adopt a somewhat brutal &#8220;up or out&#8221; mentality. If they can&#8217;t <a href="https://en.wikipedia.org/wiki/OODA_loop">OODA</a>, address any skill gaps, and adjust their approach to deliver what you need, it&#8217;s time to have a frank conversation about <a href="https://skamille.medium.com/are-you-out-of-alignment-a7b193ab7fc4">alignment</a> and roles that might be a better match. Then you can find someone else whose recent experience means they do what&#8217;s needed &#8220;off-the-shelf.&#8221;</p><p>I don&#8217;t like giving up on people. Just writing that paragraph above gives me a stomach ache. People <em>can change</em>, they <em>can learn! </em>I literally run a management coaching business after all (hello, welcome). That said, when these senior+ folks are missing the mark, the damage is multiplicative and often long lasting (see: key talent quitting). Time is of the essence. Reprogramming such individuals to meet your standards can be a full-time job on its own&#8230;one that doesn&#8217;t always pay off because they might still fail or quit from the sustained discomfort. If you need to reprogram <em>multiple</em> people, forget about it, it&#8217;s not happening. This is the management equivalent of a build vs. buy decision&#8230;but for people. Any time you decide to invest in someone (build) rather than hire a ready-to-go candidate (buy), it has to <em>really</em> be worth it.</p><h3><strong>Situational Leadership</strong></h3><p>MbM is not a silver bullet and does not apply in all circumstances.</p><ul><li><p>Building an entirely new org means starting with a <code>null</code> model. A more hands-on and demonstrative leadership style is needed to ensure the right patterns, behaviors, and systems are put into a place.</p></li><li><p>Doomsday crises need a more active command-and-control leader. An existential competitive threat that could delete your business cannot be left to chance; these situations are often too dynamic for a large decentralized organization to handle appropriately&#8230;the body needs a brain!</p></li><li><p>Once you have 3+ layers of management, your model will be woefully incomplete, your tripwires not sensitive enough, you won&#8217;t have enough visibility to know what to do about it, and almost everyone will be trying to manipulate you. At this scale, management turns into <em>governance</em> which requires a different playbook.</p></li></ul><p>Ultimately, MbM assumes you have team that are largely stable and established in their structure, approach to work, shareholders, and goals&#8230;at least on the scale of the next 3-6 months.</p><h2><strong>Go forth and become a Model Manager</strong></h2><p>The proper response to increased scale isn&#8217;t just doing <em>more</em> of what you&#8217;re already doing, it&#8217;s recognizing you have a different job and your role in the system has shifted to governing how information flows and work gets done&#8230;all to maximize productivity (or maybe it&#8217;s &#8220;minimize wasted energy?&#8221;)</p><p>Doing this in 40 or so hours is no small feat, but it is doable:</p><ol><li><p>Align your org&#8217;s incentives with your boss and the broader company&#8217;s success. Sift and winnow the existing problems/opportunities rather than creating new work. Prioritize the top #1 most impactful opportunity and swarm <em>everything you have</em> behind making that happen.</p></li><li><p>Create the environment necessary for that strategy to unfold successfully. Use careful process design, architecture principles, and other &#8220;work invariants&#8221; to shape org-wide behaviors. Carefully manage the high-interest and high-power shareholders to ensure your team has the support it needs.</p></li><li><p>Maintain an up-to-date model for how work actually gets done. Use tripwires like kanban/sprint ceremonies, project lifecycle gates, postmortem reviews, etc to detect deviations. Get curious, dig in, and (sometimes) intervene when you find a diff to keep work on track.</p></li></ol><p>It&#8217;s so important I&#8217;ll say it again: leaders work <em><strong>on </strong></em>the system not <em><strong>in </strong></em>the system. It&#8217;s a bit black a white&#8230;but if you don&#8217;t then who else is going to do it&#8230;? No one. There&#8217;s huge opportunity cost to letting your org run through a series of implicit defaults. Get modeling!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lolno.com/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">lol, no 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[What is your next great regret?]]></title><description><![CDATA[Chasing dreams is a seductive trap that keeps us anchored in unfulfilled aspirations. We lament lost time while trapped in comfortable routines, endlessly crafting life scripts that seldom come to fruition. It's time to face the brutal truth: identify the fluff and embrace what truly matters. Life is fleeting&#8212;dare to live it.]]></description><link>https://lolno.com/p/what-is-your-next-great-regret</link><guid isPermaLink="false">https://lolno.com/p/what-is-your-next-great-regret</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 23 Nov 2025 16:39:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z1Vh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z1Vh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 424w, https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 848w, https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 1272w, https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png" width="1456" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3891772,&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://managerscraft.substack.com/i/204933590?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.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_!Z1Vh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 424w, https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 848w, https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.png 1272w, https://substackcdn.com/image/fetch/$s_!Z1Vh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bad11f3-97c3-4c37-9bb0-6c8b86be13cc_2000x1116.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 aria-hidden="true" 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><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>Anyone who knows me has probably heard me talk about opening a startup. The thrill of standing on your own 2 feet, getting to wear many hats, the huge asymmetric upside if you&#8217;re successful (and, at a minimum, the rich/textured life story if not). Above all else, it&#8217;s been my primary aspiration for many years to create a workplace akin to those where I found my self-confidence and met my best friends (UW-Madison DoIT, Google Drive)&#8212;a real &#8220;second home&#8221; for the doers and strivers.</p><p>And yet, here I sit. It&#8217;s November and I&#8217;m filling out 17 annual reviews (kill me) for the 5th year in a row, comfortable and safe within the bulwarked walls of Google. I always said that I was just collecting the experience and skills needed to head out on my own, but the years stretch on&#8230;.what the hell am I doing!?</p><p>Life is full of these idle dreams; ideas about what the future will hold, who we are, and where we are going. Things that are always just around the corner or paths that we will <em>surely</em> walk in the fullness of time. I have heard many such things from my friends and have my own fair share&#8230;</p><ul><li><p>&#8220;Next year I&#8217;ll move to Europe.&#8221;</p></li><li><p>&#8220;Maybe I should go back to grad school, finish my PsyD, and start my own clinical practice.&#8221;</p></li><li><p>&#8220;I will spend the rest of my life with you.&#8221;</p></li><li><p>&#8220;Let&#8217;s make a video game.&#8221;</p></li><li><p>&#8220;I will climb the corporate ladder and become a Director/VP.&#8221;</p></li><li><p>&#8220;Nothing would make me happier than raising a family of my own.&#8221;</p></li><li><p>&#8220;I want to experience living in NYC.&#8221;</p></li></ul><p>In psychology, there&#8217;s a term for these imagined paths: <strong>life scripts</strong>. We unconsciously form/reform these throughout our lives, but especially during key developmental phases. In early childhood we&#8217;re taught how the world will regard us and how we ought to hold the world (trust vs. mistrust), in adolescence an image of our adult lives takes shape (often with heavy doses of parental influence), and throughout adulthood that life script is repeatedly challenged by the reality of our circumstances. Aside: it&#8217;s why dating can be so painful&#8230;you&#8217;re constantly writing, throwing away, and rewriting life scripts about what your future will hold as you try to find someone to love. It can be jarring to have your sense of self and eventual destination in life rewritten so radically and so frequently.</p><p><strong>At the end of it all, very few of these things will actually come to pass.</strong> We talk a big game, but that&#8217;s all it is: talk. So how can we tell when something is <em>real</em> versus a daydream?</p><p>A dear friend of mine recently introduced me to the <em>fluff test</em>. The fluff test is simple: ask yourself what is a real, hard requirement for you and what is not? That is to say, what&#8217;s <em>fluff</em>? This is especially important if these un-lived dreams haunt you and take away from existing in and fully experiencing the present. You must give yourself permission to let go of the fluff.</p><p>The easiest way to diagnose fluff is to look hard at what you&#8217;re willing to make sacrifices for (or have already sacrificed for as that will surely reveal a pattern). When I look at my own life, there were many things for which I made real sacrifices:</p><ul><li><p>I spent almost all of my formative teenage and university years grinding to become an exceptional engineer, skipping canon moments and delaying key developmental experiences until much later. It&#8217;s rare when something hits you that hard and that true, but becoming someone capable of <em>creation </em>on a grand scale was non-negotiable.</p></li><li><p>I left behind my very first adult friends, departed places I loved (Madison, Seattle) and delayed romantic relationships to ascend the corporate ladder.</p></li><li><p>I have moved (multiple times) and spent a lot of money to experience novelty&#8211;new cities, new hobbies, new friends. I could have FIRE&#8217;d by now with a more restrained approach to life but I simply cannot tolerate boredom.</p></li><li><p>I gave up much of my individuality to try and be more like my friends and potential partners so that we might grow closer.</p></li></ul><p>Sometimes what turns out to be fluff will stun you. I never thought &#8220;starting a company&#8221; or &#8220;having a family&#8221; were fluff but my track record speaks for itself. These are things to date I&#8217;ve made no real sacrifices for; it&#8217;s time to shit or get off the pot.</p><p>This isn&#8217;t meant to be a sad thing or even all that terminal. Life is long. What might be fluff today can become a very real all-encompassing driver tomorrow. Acknowledging the seasonality and progressive nature of life is a key part of freeing oneself from the ghosts of an un-lived future. Only then can you let your present needs/goals/urges in and the answer to &#8220;what&#8217;s next&#8221; will become readily apparent.</p><p>I&#8217;ve <a href="https://lolno.net/27-lessons-from-8-years-of-management/#27-professional-ennui-can-kill-you-literally">written a lot recently about professional ennui</a>: the notion that, for many working professionals, we accomplish major life goals only to now find ourselves adrift and unsure what to do with the years ahead. Through the lens of the fluff test, I&#8217;ve come to realize it&#8217;s really all about regret. At the end of my life, what will I regret having never done or never tried?</p><p>For me, attaining a senior leadership position at a respectable, large company was the animating force behind the first chapter of my life. It wasn&#8217;t about the power or the money or the status&#8230;rather, it was external validation that &#8220;no, I really am good at something.&#8221; To be trusted to lead a large group of competent people, direct lots of resources, and deliver a product that people actually care about would mean I had mastered the craft, and not just in my head either!</p><p>It would have been a great regret had I <em>not</em> pushed myself to achieve this&#8230;to hit the breaking point and just keep pushing and keep sacrificing until it finally, FINALLY, happened. Now in the end my reward is a job that is torturing me&#8230;but at least I have no regrets &#128521; But I suppose that&#8217;s the point: it isn&#8217;t always about the destination or the pay off. It&#8217;s about being comfortable in your own skin and at peace with how you spent these few blessed years we have on Earth.</p><p>I would have deep regrets if I hadn&#8217;t&#8230;.</p><ul><li><p>&#8230;seen how far I could go in my engineering career.</p></li><li><p>&#8230;figured out how to be less damn awkward and relate to people.</p></li><li><p>&#8230;gotten fit and experienced the joy of exerting oneself at the limit of your physical ability.</p></li><li><p>&#8230;fallen deeply in love and through the pain grow past neediness and learn who I really am.</p></li></ul><p>As you journey through life, ask yourself: &#8220;what is the next great regret I will forestall?&#8221;</p>]]></content:encoded></item><item><title><![CDATA[27 Lessons from 8 Years of Management]]></title><description><![CDATA[Today marks my 8th consecutive year in management, and with it I&#8217;m taking a couple-month sabbatical as an individual contributor.]]></description><link>https://lolno.com/p/27-lessons-from-8-years-of-management</link><guid isPermaLink="false">https://lolno.com/p/27-lessons-from-8-years-of-management</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Mon, 06 Oct 2025 15:47:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WgJf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WgJf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WgJf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 424w, https://substackcdn.com/image/fetch/$s_!WgJf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 848w, https://substackcdn.com/image/fetch/$s_!WgJf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!WgJf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WgJf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1986186,&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://managerscraft.substack.com/i/204936025?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.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_!WgJf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 424w, https://substackcdn.com/image/fetch/$s_!WgJf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 848w, https://substackcdn.com/image/fetch/$s_!WgJf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!WgJf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0233ae7e-841c-4200-80c8-16ab9731167c_2000x1091.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 aria-hidden="true" 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><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 marks my 8th consecutive year in management, and with it I&#8217;m taking a couple-month sabbatical as an individual contributor.</p><p>I&#8217;m no stranger to the engineer/manager pendulum. While the term was <a href="https://charity.wtf/2017/05/11/the-engineer-manager-pendulum/">first coined (popularized?) by Charity Majors in 2017</a>, I&#8217;ve been &#8220;pendulum-ing&#8221; long before then (17ish years)&#8230;this will be the 6th swing of pendulum. In spite of the familiarity of the maneuver, this time feels different. 8 years is a long time&#8211;this is my longest contiguous stay in management. On one hand it is exciting to get to be hands-on building things amidst a paradigm-shifting moment in tech. On the other hand, it&#8217;s hard to escape dread at the thought I might be throwing away years of &#8220;career progress&#8221; on a whim. Nevertheless, my approach to leadership so thoroughly depends on maintaining a real, honest-to-god understanding of how to <em>actually</em> build things, and the technical depth to offer creative solutions where others see none. It wouldn&#8217;t feel right to continue managing without <a href="https://lolno.com/p/management-by-model">a robust model update</a>.</p><p>Now feels like the perfect time to chronicle some hard-won lessons from my most recent turn at the wheel; I&#8217;ve grown more as an engineering leader in the last few years than at any other point in my career, and these major transitions are a great time to do a pause-the-world GC cycle for my brain.</p><p>I tried to limit this list to the really revelatory experiences that I have not seen well-covered in the existing management canon. It still ended up very, very long so each idea is treated with quite briefly. If you found a useful nugget and would like to see it elaborated, hit up my inbox <a href="mailto:jim@lolno.com">jim@lolno.com</a></p><h3>My Recent Roles</h3><p>First some background on what I&#8217;ve been working on so you can place these lessons in context. Over the last 8 years, I have&#8230;</p><ul><li><p>Served as the head of engineering for <a href="https://verveindustrial.com/">a B2B OT security startup</a> eventually acquired by Rockwell Automation, building their product development team from scratch.</p></li><li><p>Joined Google and managed the foundational storage systems that hold all of Google&#8217;s data, (blob, object, file, and configuration storage) in addition to distributed system primitives used by all products and services at Google (locking, leader election, time, key management).</p></li><li><p>Switched out of platform engineering and back into product engineering becoming one of the overall engineering leads for Google Drive.</p></li></ul><p>During that time I&#8217;ve had to rebuild and re-establish myself in a new org&#8211;scaling from running a single team of 3 engineers to an org of 70+ not once but thrice! I&#8217;ve acted as the &#8220;pure people manager&#8221; and tech lead manager (TLM) role for which Google is notorious (infamous?). At times I&#8217;ve had 25 direct reports (oh my god), other times a proper pyramid of managers and sub-teams. I&#8217;ve received multiple promotions, and helped others grow from L3 all the way to L8. If you believe that &#8220;10,000 hour-rule&#8221; for mastery, I&#8217;m well past the 10,000 hour mark when it comes to management. I run a thriving management coaching business on the side.</p><p>None of this is to brag, but rather to establish&#8230;</p><ol><li><p>This isn&#8217;t the ranting of someone who burned out and couldn&#8217;t cut it.</p></li><li><p>Most of my lessons are applicable to navigating and thriving at BigCo&#8211;the FAANGs of the world&#8211;you may find some portability of these lessons to other contexts but that is only incidental.</p></li></ol><p>Without further ado, let&#8217;s dive in.</p><h3>Org Dynamics</h3><h4>1. Small business experience does not prepare you to lead in a large enterprise.</h4><p>It&#8217;s a story as old as time: director+ startup leader joins BigCo and gets &#8220;downleveled&#8221; to small team manager. I&#8217;ve heard this explained away as elitism or just differences of scale (a startup director might have 20-30 reports&#8230;while the enterprise equivalent is 60-120). I&#8217;ve run across plenty of these people at Big G and they all have a chip on their shoulder, seeing this fate is wholly undeserved. I was one of them&#8230;at least until I realized how much I had to learn.</p><ul><li><p>Change management and project execution when you have to deal with tens-to-hundreds of stakeholders with different reporting chains and incentives is a much greater challenge than doing the very same with a small group that reports to you / was entirely hired by you / has to listen to you. It&#8217;s the difference between learning the rules of a game versus inventing the game in the first place.</p></li><li><p>Delivering impact now requires navigating an entire layer of organizational optics and processes which likely didn&#8217;t exist where you came from. Building alliances, managing perceptions, and creating opportunities for serendipity (luck) will contribute more to your success than pure brute force execution.</p></li><li><p>There&#8217;s specialized functions for everything (product, UX, design, marketing, support, SRE, etc) and you have to learn how to get what you need out of them without any formal authority and without seeming like a dictator.</p></li><li><p>You will work on timescales that seem unthinkable in a startup. A major initiative in BigCo might span 3-4 years. Your entire company could be born, live, and die in less than half that timespan. Maintaining the endurance to be consistent over such large time scales will push you to your limit.</p></li><li><p>Hiring, engaging, and motivating the typical BigCo employee is an uphill battle. You have less agency and autonomy to pick what you work on, you often need to sell very bright engineers on lame projects (aka <a href="https://www.scottsmitelli.com/articles/altoids-by-the-fistful/">cat turds</a>), and you have fewer incentive levers under your control (titles, money, promotions). There&#8217;s little chance for &#8220;mission&#8221; to motivate and the median BigCo worker is more driven by status and wealth (tech has become a &#8220;prestige&#8221; field like law and medicine, you will be surrounded by people who are not here for a love of engineering).</p></li></ul><p>This is not to say that startup/small biz experience isn&#8217;t helpful. You wear more hats and often build a more complete, ecological view of the value stream that is software engineering&#8230;understanding how &#8220;code&#8221; gets turned into &#8220;profits.&#8221; You&#8217;ll build product intuition, commercial sense, resourcefulness, self-reliance, and the ability to work with all manner of stakeholders that will set you apart from a life-long BigCo manager&#8230;.but don&#8217;t delude yourself into thinking this means you&#8217;ll totally crush it as a director on day zero. Downleveling is a myth.</p><h4>2. Org structures are a fun bike shed but reality will eat your perfect org chart for breakfast.</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZONk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZONk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 424w, https://substackcdn.com/image/fetch/$s_!ZONk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 848w, https://substackcdn.com/image/fetch/$s_!ZONk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 1272w, https://substackcdn.com/image/fetch/$s_!ZONk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZONk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png" width="1024" height="609" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:609,&quot;width&quot;:1024,&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_!ZONk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 424w, https://substackcdn.com/image/fetch/$s_!ZONk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 848w, https://substackcdn.com/image/fetch/$s_!ZONk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.png 1272w, https://substackcdn.com/image/fetch/$s_!ZONk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36895151-4ddf-444c-8cf0-42ad30440be1_1024x609.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 aria-hidden="true" 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><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&#8217;ve read <a href="https://teamtopologies.com/">Team Topologies</a> (and An Elegant Puzzle, and Scaling People, and Thinking in Systems, and&#8230;.). You quote Martin Fowler and opine about the &#8220;Reverse Conway Maneuver&#8221; daily. You have sat in poorly structured orgs and wondered why the directors and VP&#8217;s in charge are totally asleep at the wheel with teams that overlap / lack a clear mission. You think &#8220;when I&#8217;m in charge, we&#8217;ll get the org shaped up and everything else will follow!&#8221;</p><p>Ha ha, hahahaha, ha.</p><p>No no, I&#8217;m not laughing at you, I promise. I used to think like this, waiting for my chance to join the big leagues and run my own org where I&#8217;d show the power of proper org design.</p><p>Now that I&#8217;ve run four major (100+ people) reorgs in my life I&#8217;ve come to understand a really painful truth: 80% of the time, the shape of the org chart just does not matter as much as you think.</p><p>In my experience, a highly optimized org chart only stays optimal for about 3 months before something breaks:</p><ul><li><p>A major shift in strategy, priorities, or objectives means you have a massively oversized (or undersized, or nonexistent) team for a given area/project/piece of infrastructure.</p></li><li><p>A staffing crunch forces you to raid one of your &#8220;perfectly crafted&#8221; teams and have someone pinch hit for another group. This keeps happening until your &#8220;org chart&#8221; is a spaghetti mess of dotted lines.</p></li><li><p>A TL or manager whom you built the org around quits on you, throwing the whole system into chaos.</p></li><li><p>A key playmaker gets antsy for more opportunities to grow and demands more scope / more reports and you can&#8217;t imagine losing them.</p></li></ul><p>We used to get out of these messes by just&#8230;hiring more! Why change a team when you can grow an entirely new one!? Well those days are done&#8211;the money printer is broken&#8211;and you definitely cannot run a reorg every 3 months. Engineers benefit from stability in their working relationships. Once a team is bonded and works well together, your best bet is to &#8220;bring a problem to the team&#8221; rather than &#8220;bringing a team to the problem&#8221; even if it means subtly pivoting what a given group owns.</p><p>Naming teams sure is a bitch when you do this (I literally had a team that called themselves &#8220;the variety show,&#8221; hi Matt), but having a vague/inaccurate name is better than going through the <a href="https://en.wikipedia.org/wiki/Tuckman%27s_stages_of_group_development">Tuckman cycle</a> constantly.</p><p>With this in mind, what really matters for organizational clarity and success is&#8230;</p><ul><li><p><strong>Clear lanes of accountability:</strong> every major area has a <a href="https://handbook.gitlab.com/handbook/people-group/directly-responsible-individuals/">directly responsible individual</a> (DRI) or <a href="https://aws.amazon.com/blogs/enterprise-strategy/two-pizza-teams-are-just-the-start-accountability-and-empowerment-are-key-to-high-performing-agile-organizations-part-2/">single-threaded leader</a> (STL) and those individuals are held accountable for results. With ultimate accountability comes ultimate authority to do what needs to be done no matter whose reports / teams are involved.</p></li><li><p><strong>A conscientious and high-agency leadership bench:</strong> these individuals take action without waiting to be told and never assume it is &#8220;someone else&#8217;s job.&#8221; Such leads are self-driven and don&#8217;t let gaps in team structure and org process hold them back.</p></li><li><p><strong>A sense of ownership:</strong> your team hinges a non-trivial amount of their self-worth on rising to the challenge. When teams feel like their work is their own, you receive an outpouring of effort, energy, and creativity that leads to better outcomes than any amount of micromanagement.</p></li><li><p><strong>Strong interpersonal relationships and conflict resolution habits:</strong> the team is able to engage in <a href="https://www.amazon.com/Creative-Conflict-Practical-Business-Negotiators/dp/1633699498">creative conflict</a>, disagree productively, and puts in active effort to improve their relationships. Things get messy when your org chart is messy, people have to fundamentally care about and respect one another if this is going to work.</p></li></ul><p>Don&#8217;t get me wrong&#8211;there is great power in enabling productive non-communication so that each part of a large org can function independently and avoid conflicts. There are benefits to aligning management (and corresponding performance management practices) to the work actually happening. You can&#8217;t go to full blown self-forming teams and holocracy without leaving a lot of productivity on the table.</p><p>The point is that your team structures will always carry some non-trivial amount of &#8220;org-debt&#8221; and &#8220;misalignment&#8221; in exchange for stability of teams, retention of key talent, and enabling the flexibility to respond to emergent threats/crises/opportunities which are much more important to long-term success.</p><p>Another way to think about this is that if you wait long enough, some emergency will emerge that forces a reorg (e.g. a top manager wanting to go back to being an IC&#8230;lolsob) so there is little need for you to proactively initiate such destructive changes. You&#8217;ll likely prematurely optimize around a set of constraints, people, and goals that won&#8217;t hold in just a few months!</p><h4>3. Cross-functional incentive misalignment is your number one enemy.</h4><p>Different job functions&#8211;e.g. product, eng, UX, data science, etc&#8211;optimize for different things (duh). Unfortunately you have to work with all of these functions to get anything done in BigCo so you cannot simply plug your ears and insist eng is always right.</p><p>The most pernicious form of this I have seen occurs at Google: <em>functional silos</em>. Functional silos are entire reporting chains (managers reporting to directors reporting to VPs reporting to&#8230;yet more VPs lmao) of the same job function. An eng manager and a PM manager that co-own the same objectives don&#8217;t actually share a common ancestor until you reach the SVP or the CEO.</p><p>You might think &#8220;that&#8217;s fine, I can just&#8230;talk to the person&#8230;so who cares?&#8221; but the reality is that all of your closest collaborators <em>work for different bosses</em>. As much as we try to be our own person, success at BigCo largely means figuring out what your boss really wants. You are directly incentivized in the form of career growth//power to prioritize what they think over the collective opinion of your peer group. See where this is going?</p><p>I had the dubious honor of leading about one-third of Google Drive&#8217;s product portfolio, and with that came a veritable army of co-conspirators (product managers, designers, UX researchers, data scientists, support personnel, program managers, and enterprise account managers). We would spend days&#8230;weeks!&#8230;discussing/researching/analyzing to align on a direction and a strategy. Just when I thought everyone was aligned and we were off to the races, someone would blunder into the room and say: &#8220;I spoke to [director] and they really want us to focus on [some random crap]!&#8221; Boom. Complete reset. Weeks of progress and influencing undone. Back to square one. Just because of an off-hand, drive-by remark from a distracted senior leader.</p><p>Inevitably, I would reach out to this director and find out they had no intention of randomizing us and didn&#8217;t expect anyone to index so heavily on their opinion. Go figure.</p><p>To keep any group headed in the same direction, you need alignment one level up (at a minimum). What this means in practice is arming your boss with a viewpoint, facts/data/analysis to back it up, and sending them off to do battle with their peer directors/VPs/what have you. If you&#8217;re precocious, you could try directly influencing these organizational Aunts and Uncles&#8230;but more often than not all I got was confused looks, &#8220;why are you talking to me? Is your Dad home?&#8221; Hurray for hierarchy! <a href="https://www.quora.com/Did-Peter-Drucker-actually-say-culture-eats-strategy-for-breakfast-and-if-so-where-when">Culture eats strategy for breakfast</a> and all that tired shit.</p><p>I&#8217;m quite fond of how Microsoft does this (used to do this?) where different functions (the &#8220;triad&#8221;) would report together much lower in the org chart&#8230;sometimes as low as a &#8220;group manager&#8221; (M2) if not director (M3). There are still bugs that have to be worked out in that system but at least you have a fighting chance of keeping your group aligned.</p><h4>4. You have to be <em>just a little</em> difficult to get things done.</h4><p>If you haven&#8217;t gotten the clue yet from my writing style, I can be a bit brusque. There&#8217;s a method to the madness however. Not everything can be driven by consensus&#8211;do any of these scenarios sound familiar to you?</p><ul><li><p>A peer team rejects a feature request that blocks a major project.</p></li><li><p>A dependency has a huge outage and doesn&#8217;t seem to be taking it seriously.</p></li><li><p>Your team spends all its time responding to questions and supporting users even though you have other priorities.</p></li><li><p>Your team keeps accepting unplanned work and feature requests to help out others, delaying a major deliverable.</p></li><li><p>You keep getting sucked into forced migration mandates because some other team &#8220;cannot&#8221; support a piece of legacy infrastructure any longer.</p></li><li><p>Your PM presents a totally coked up PRD for a feature you think is a waste of time. You do it anyways.</p></li><li><p>Your designer presents a mock which will double the engineering effort for a trivial UX optimization in your opinion. You do it anyways.</p></li><li><p>Your SWEs present an over-engineered design that makes a project 10x harder than it needs to be. You do it anyways.</p></li></ul><p>All of these are scenarios where consensus is the easy way out. You avoid conflict and let the bad outcome persist. You tell yourself you&#8217;re &#8220;trusting the process&#8221; and empowering others to feel ownership&#8230;but what&#8217;s the difference between this and outright abdication? This is why I have such a bone to pick with &#8220;servant leadership&#8221; but I&#8217;ll talk about that more further down&#8230;</p><p>Sometimes you need to be the bad guy. You need to push back, be demanding, hold a higher bar, and not accept the facts as presented at face value. Another form of this is not letting others place demands on your time. There is a huge opportunity cost when a leader gets sucked into a never-ending circular debate or picking through pointless desiderata. A day spent thinking ahead and strategizing could save <em>years</em> of effort down the line. Sometimes you just have to make a decision and refuse to elaborate further. &#8220;No.&#8221; is a complete sentence.</p><p>To some this will be read as &#8220;being an asshole.&#8221; To others it&#8217;s &#8220;being assertive.&#8221; Honestly it&#8217;s a little bit of both.</p><p>I call this &#8220;calibrated aggression.&#8221; Calibrated aggression is necessary to think laterally and break through the web of lazy defaults, implicit constraints, convenient decisions, and post-hoc justifications that all too often shape our collective behavior. So much of our lives are implicitly ruled by conflict avoidance but you <em>cannot</em> afford to fall into this trap if you manage people.</p><p>The human mind displays a remarkable capacity for <strong>rationalization</strong>. This occurs when people create post-hoc explanations to justify their actions, even though they know (consciously or unconsciously) that these explanations aren&#8217;t the real reasons behind their decisions. Rationalization is closely connected to <strong>cognitive dissonance reduction</strong>, which is the underlying psychological mechanism that drives this behavior. When there&#8217;s a conflict between our actions and our beliefs or self-image, we experience cognitive dissonance&#8211;an uncomfortable psychological state. To resolve this discomfort, we often rationalize our actions by creating plausible-sounding explanations that make our behavior seem more reasonable or justified.</p><p>The key aspect of rationalization is that <strong>people often don&#8217;t realize they&#8217;re doing it</strong>. They genuinely believe the post-hoc explanations they&#8217;ve constructed. This is to say: you won&#8217;t even be able to tell you&#8217;ve fallen into people pleasing and conflict avoidance!</p><p>Leaders being overly agreeable foment the conditions for this collective psychosis and create utterly ineffective organizations where lots of work is happening but its the <em>wrong</em> work and everyone feels stuck doing it. Requirements are often flexible, goal posts <em>can</em> be moved, and stakeholders who seem utterly cantankerous are more pliable than they seem. All it takes is a little <em><strong>calibrated aggression</strong>.</em></p><h4>5. &#8220;Tech lead&#8221; is a set of responsibilities, not a title you bestow.</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Ceu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Ceu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_Ceu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_Ceu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_Ceu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Ceu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&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_!_Ceu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_Ceu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_Ceu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_Ceu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e9a49b-b60c-4b98-b0cd-6b313a4d217f_1024x1024.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 aria-hidden="true" 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><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 think everyone has been on a team where the official tech lead (TL) seems to be doing&#8230;nothing. Crazy nuanced design decisions? They aren&#8217;t the one making them. Technical debate boiling over during standup? They have nothing to say. Managers asking for the impossible and ignoring reality? They go along with it. Need something from another team? You&#8217;re on your own.</p><p>You might think this is a performance issue&#8230;well, it is, BUT the real root cause 9 times out of 10 is that the manager showed up, crowned the apparently most senior person TL and just assumed they would start doing the job. You might think you would never do that, but consider what happens when your current lead leaves: you immediately rush to name a new TL because, well, you need one&#8230;right!? So you carefully choose the highest potential impact player you have and&#8230;hope they just start doing the job without prompting. Gee wiz.</p><p>The consequence of this is stark. Key leadership tasks go unaddressed. Highly motivated team members become increasingly frustrated by the lack of support or by the extent to which <em>they</em> are doing the TL&#8217;s job without recognition. Any natural leaders will hold back (these people get activated by power vacuums&#8211;an internal locus of control coupled with a strong sense of duty encourages them to step up and grab the wheel so the ship doesn&#8217;t crash&#8211;having a bench warmer in the TL seat fills the vacuum and prevents this positive instinct from bearing fruit). In short, your team will suck and everyone will know + be mad about it.</p><p>The TL role is <em><strong>the single most important</strong></em> job on the team. Even more important than the manager. You cannot afford to have a bench warmer for a TL. To avoid this unfortunate fate, you must be unshakably confident your appointee is prepared and motivated to do the (sometimes thankless) job and all the grungy work it entails. I have found the best way to be certain is to <em>leave the TL role unoccupied</em> and see who steps up to fill the void. These emergent leads earn the respect and followership of their teams through skill and dependability, not title. Moreover, they take action without being asked and never assume &#8220;that&#8217;s not my job.&#8221; That&#8217;s ownership. REAL ownership. That&#8217;s your TL. By the time you place the TL crown on their head, it should almost feel like a formality. And if they stop doing the tasks demanded of a TL? Then they aren&#8217;t the TL any longer! You can&#8217;t expect someone to stay consistent over years and years&#8211;energy waxes and wanes as life throws you curve balls&#8211;make room for TL&#8217;s to step aside with grace and dignity when the time is right. This is much easier when they don&#8217;t need to be divorced from an official title.</p><p>To learn more about the fundamental traits of the best TL&#8217;s, check out <a href="https://a.co/d/dM7bg4j">The Captain Class</a> by Sam Walker. Maybe one day I&#8217;ll do a post on how this maps to tech.</p><h3>Skip-leveling 101</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cbcO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cbcO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 424w, https://substackcdn.com/image/fetch/$s_!cbcO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 848w, https://substackcdn.com/image/fetch/$s_!cbcO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!cbcO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cbcO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png" width="472" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d78fc816-19fa-4013-826e-be524b027ab3_472x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:472,&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_!cbcO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 424w, https://substackcdn.com/image/fetch/$s_!cbcO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 848w, https://substackcdn.com/image/fetch/$s_!cbcO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!cbcO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fc816-19fa-4013-826e-be524b027ab3_472x1024.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 aria-hidden="true" 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><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"><em>A day in the life.</em></figcaption></figure></div><h4>6. Code is <a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a>, people are not.</h4><p>Much ink has been spilled about the importance of vision and strategy, and communicating that to your team: helping them connect to the <em>why</em> of their work and empowering the team to make better decisions on the ground, all while gliding collaboration and cross-team alignment.</p><p>To get your whole org on the same page, you carefully craft <em>the greatest all-hands of your life</em>. Truly a magnum opus of business strategy and showmanship. You practice, practice, practice. The day arrives, your org filters into the room, and you nail the delivery. In your head you&#8217;re flying high: I did it! I&#8217;m the best boss in the world. This will be the most <em>inspired and motivated </em>team EVER!</p><p>Fast forward, it&#8217;s a week later, you walk into a skip-level 1:1. Your report complains about the project they&#8217;re assigned to&#8230;they don&#8217;t get why it&#8217;s happening and it feels like we work on a smorgasbord of random junk that doesn&#8217;t add up to anything. You refer them to the all-hands recording, and repeat some of the key messages. You patiently answer some of their questions and help them understand the message. They leave at least <em>pretending to feel better </em>but you&#8217;re left scratching your head: &#8220;were they just not listening? Was I unclear? Did something happen I don&#8217;t know about to shake their confidence in The Plan?&#8221;</p><p>Here is a cold, hard dose of truth: you are not as important as you think you are. You are not the sun and moon and stars for these people. You are just <a href="https://www.youtube.com/watch?v=3wqQXu13tLA">one of their eight different bosses</a> who are all constantly saying words at them and polluting the airwaves. Worse, the supposed &#8220;priorities&#8221; feel like they shift every other month. Any sufficiently tenured BigCo employee is completely numb to this and implicitly understands that their day-to-day life is no better if they get really invested in what the boss is saying today (in fact, sometimes it gets worse if you hang your motivation and happiness on a new direction that gets shot in the head shortly thereafter).</p><p>I&#8217;m a pretty good orator, but no rousing speech has ever created the singular focus, alignment, and energy that I want for my team.</p><p>The secret? Repeat yourself. Over and over and over. The magic number is 3. Repeat the same thing in 3 ways in 3 different venues and it will start to stick. Consistency of message is key. You want to evince &#8220;this time is different, you&#8217;re working for a team with clarity of purpose and direction that isn&#8217;t going to just totally shift in a few weeks.&#8221; Encountering the same idea at different times expressed in different ways increases the likelihood it will &#8220;click&#8221; with everyone eventually.</p><p>That all-hands is just one step, you have to keep going. There&#8217;s a time and place for one-to-many unidirectional communication&#8230;but don&#8217;t forget the importance of one-to-one bidirectional chats. After big town halls, I like to switch into &#8220;door-to-door salesman mode&#8221; and have a round of 1:1s. This gives me a chance to tailor the message to each person and answer their individual questions/doubts. <a href="https://a.co/d/ggnOuqS">Use memorable sound bites and consistent names for different initiatives and strategic pillars</a>. As these ideas get repeated in different meetings/docs over many months, the team recognizes &#8220;this is all connected and part of the same thing.&#8221; Yvette Pasqua has <a href="https://www.youtube.com/watch?v=CnODvHsYfao&amp;t=3s">a great talk</a> on choosing the right communication medium as you lead your team through change.</p><h4>7. Light one fire at time.</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lDXH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lDXH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lDXH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lDXH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lDXH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lDXH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&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_!lDXH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lDXH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lDXH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lDXH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe33079e9-acfb-43cc-b64b-32f820b94173_1024x1024.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 aria-hidden="true" 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><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 are not the fire fighter in your organization&#8230;you are the fire starter.</p>
      <p>
          <a href="https://lolno.com/p/27-lessons-from-8-years-of-management">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Leading By Example Considered Harmful]]></title><description><![CDATA[Ok not really but it isn't a magic panacea either.]]></description><link>https://lolno.com/p/leading-by-example-considered-harmful</link><guid isPermaLink="false">https://lolno.com/p/leading-by-example-considered-harmful</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Thu, 02 Jan 2025 16:16:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NJzf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NJzf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NJzf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!NJzf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!NJzf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!NJzf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NJzf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3828946,&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://lolno.com/i/205062266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.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_!NJzf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!NJzf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!NJzf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!NJzf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfe25bc7-5740-4a31-a35a-de01d32ea0d8_2752x1536.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 aria-hidden="true" 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><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>Does this sound like you? You&#8217;re an achievement-oriented leader. To build momentum, you personally set the standard for performance and for exemplifying the values of the organization. You take the lead, set the pace, and expect the people around you will notice, follow along, and (eventually) catch up to and match your performance. What do you think actually happens? <strong>Not what you expect. </strong>Let me save you many months of pain. This pacesetter-type leadership has been a huge part of how I have managed the last 2 years, and while reflecting on 2024, I&#8217;ve finally come to understand some of the ways it works but can also fall short.</p><p>In 2022, I inherited a team operating a piece of critical platform infrastructure for Google. The team was full of bright, experienced engineers but was ostensibly failing. An infrastructure migration effort was entering its 3rd year with little to show in the way of results. Still getting my bearings in the new org, I spent time observing the team and came to the conclusion we were dying a death by a thousand cuts. Everyone was super talented and in each area (architecture, project management, operations, code health, testing, product, etc) we were easily scoring a solid &#8220;B+.&#8221; But, it turns out, that &#8220;final missing 10%&#8221; compounded in a way that made the aggregate result underwhelming.</p><p>Consequently, the situation called for small, surgical changes across the board to optimize the performance of the team. The required changes would encompass both cultural attributes (habits/incentives/values) as well as fundamental technical skills and problem solving intuition. As part of my overall approach to turning the ship around, I resolved to role model the desired behaviors. For example, when we had a near-miss incident (caught during the release/rollout process) I personally authored the postmortem and led the review. Whenever production did something unexpected/strange (even if non-breaking), I would doggedly pursue an explanation even if it took hours/days. My intention was to exemplify a value of <em>curiosity</em> and an unwillingness to accept &#8220;I don&#8217;t know&#8221; as the final answer. I would show-not-tell the team how to exploit debugging tools to maximum advantage and buff up our observability approach whenever an answer was not forthcoming. Surely, then, they would all become masterful solvers of distributed systems murder mysteries&#8230;.right? <em>Surely</em> they would all become naturally curious and investigate these blips without being asked&#8230;right? Right!?</p><p>Not quite. My superstars and favorites continued to excel and even improved. Meanwhile, the strugglers and the &#8220;chronically stuck&#8221; continued in their old ways. These were the very people I most wanted to help! It wasn&#8217;t that &#8220;leading by example&#8221; made no difference (in fact, it was quite important to my eventual success coaching this team), but rather the role it played is more akin to setting the table&#8230;someone still has to cook dinner if you&#8217;re going to have an excellent meal. Through this experience and talking to other managers, I found many incorrect assumptions about the mechanism by which leading-by-example works.</p><p>In this post, I will&#8211;</p><ul><li><p>Chronicle the 6 errant assumptions that prevent learning-by-example from working consistently.</p></li><li><p>Dive into the scientific underpinnings of observational learning, using neuroscience, psychology, and sociologally to describe the preconditions for vicarious learning.</p></li><li><p>Describe a technique for successfully leveraging leading-by-example as a key component of an overall performance coaching regiment.</p></li></ul><h3><strong>Assumption 1: your intentions are pure.</strong></h3><p>It is <em>quite</em> a coincidence that one of your primary instincts when the team is struggling is exactly the thing you&#8217;re told not to do as a manager and that most new managers struggle to resist: doing the work yourself. Dressing it up as &#8220;leading by example&#8221; is a great way to deceive yourself into believing that you&#8217;re doing the right thing when in reality you&#8217;re falling back on old habits built up when you were a tech lead.</p><p>In football, the offensive coordinator cannot grab the ball and run down the field. It&#8217;s against the rules and regardless they probably aren&#8217;t physically capable of a 4.5s forty-yard dash. There&#8217;s no such limitation in software engineering, you&#8217;re perfectly capable of reprising your role as star quarterback. Instead, you need to take a step back and ask yourself &#8220;what would I do if it was physically impossible for me to step onto the field?&#8221;</p><p>You need to be skeptical when your intuitions seemingly justify a personal vice. &#8220;Uggh, I know McDonalds isn&#8217;t part of my new diet, but I&#8217;m just so busy today I don&#8217;t have time to cook and need to eat so&#8230;.&#8221; Engaging your critical thinking is hard (addiction is a bitch). Verbalizing your thought process either in writing or by talking to a trusted peer can pressure test the decision. You&#8217;ll know you&#8217;re on firm ground when you can articulate&#8230;</p><ul><li><p>A complete set of <em>observed</em> symptoms of team dysfunction.</p></li><li><p>An unexaggerated diagnosis of the causes of this dysfunction.</p></li><li><p>Next steps and interventions flowing logically from these conditions.</p></li></ul><p>Leading-by-example isn&#8217;t a meaningful intervention, it&#8217;s a tactic implemented towards a specific intervention strategy. For example, if the problems your team is facing require &#8220;culture change&#8221; then role modeling might help&#8230;but it should appear alongside several other tactics (such as: adjusting performance incentives, declaring values, screening for culture fit in the hiring process, team recomposition, etc).</p><h3><strong>Assumption 2: people want to be you.</strong></h3><p>I&#8217;ll never forget the moment I realized I was a different species. A colleague had come to me for advice: they were having a heated disagreement with the tech lead of a sister team. I was offering perspective from my past experience when they interrupted me asking, &#8220;oh wait a minute, you&#8217;re on the management ladder right?&#8221; and promptly short-circuited the conversation. It was as if my role in management meant I had no valid advice to offer an individual contributor. Prior to this point, I still very much thought of myself as an engineer, one that just happened to be working on problems at such scale that it was necessary to program <em>people </em>in addition to computers. This was a senior staff engineer so ostensibly their role wasn&#8217;t too far removed from my own. And yet, I had 3 or 4 similar such experiences in short order which further confirmed I was an &#8220;other.&#8221; In Google&#8217;s culture, managers are a different specifies. The same is probably true at your company. This creates an apparent category error wherein many of your reports won&#8217;t even have a fundamental recognition that how you manage your skillset, spend your time, and direct your attention has any bearing on how they ought to do the same.</p><p>Even your beliefs and preferences will be regarded with a grain of salt&#8211;seen as descended from a different set of priors towards a totally different ends. Borrowing the language of Max Weber&#8211;</p><ul><li><p>Engineers experience managers as purveyors of <em>functional rationality: </em>a type of bureaucrat whose primary concern is a means-end calculation of how a result be quickly and efficiently achieved (&#8220;I want this task done, done quickly, and with <em>just enough</em> effort&#8221;)</p></li><li><p>Engineers see themselves as purveyors of <em>substantive rationality: </em>more holistic, reticular, and value-driven (&#8220;I navigate the interdependency of a wide range of objectives and perspectives, balancing elegance/functionality/cost/extensibility/&#8230;&#8221;)</p></li></ul><p>In most cases, there will be no recognition that what appears as the former is really a much more advanced practice of the latter. For example, consider the entrenched resistance you&#8217;ve probably encountered over task management/agile practices. While you see organized backlogs, task breakdowns and small single-purpose PRs as tools that personally help you do &#8220;better&#8221; engineering, others see these as tone-deaf bureaucratic demands.</p><p>Assuming that people &#8220;look up to you&#8221; and are therefore motivated to learn your skills and imitate your proclivities is wishful thinking. As such, leading-by-example can actually move your team in the <em>opposite direction</em>. Your actions will be seen as establishing &#8220;this is the sort of thing the boss deals with.&#8221; The end result is <em>less engagement</em> with the desired behaviors rather than more. This is why tech leads (TLs) are so critically important. TLs inspire mimesis with ease because many envision a direct progression from where they are to the TL&#8217;s role&#8211;they want to <em>be</em> the TL and so watch their behavior carefully. No one wants to be a manager&#8230;especially if you&#8217;re like me and spend far too much time talking about how miserable the job can be.</p><h3><strong>Assumption 3: people care what you think.</strong></h3><p>Have you ever downplayed your own authority/power/importance? Probably! Servant leadership dominates present-day work culture. Regardless of style, most leaders try to actively encourage thinking for oneself and having a strong sense of ownership . This is a good thing! Low-ego cultures are amazing! People feel compelled to offer their best work, are unafraid of admitting mistakes, and readily adopt a beginner&#8217;s mindset ensuring continuous growth. However, this also means eroding your own capacity to influence through deeds alone. You have, in effect, been continuously declaring &#8220;what I care about, believe, and do might not matter&#8230;think for yourself.&#8221; It would be hypocritical then to express dismay when someone fails to emulate your behavior.</p><p>This flies in the face of a pervasive belief in leadership circles that where leaders focus their energies team interest follows. I most often hear this expressed by high-ranking VPs. First off, these folks exist on a totally different plane of existence from run-of-the-mill managers like me. Most people probably don&#8217;t care where you or I direct our gaze. Moreover, I think this confuses actual and proximate cause. For example, you show up to an operational review and grill the engineers with deep, probing questions that catch them off guard. At next month&#8217;s review, suddenly the engineers are much more prepared and they successfully answer your questions. Have you taught them the importance of rigor and engineering excellence? Probably not. What you&#8217;ve actually done is served up a hearty dose of negative reinforcement via public embarrassment. People are extremely sensitive to <em>social</em> rejection and will be certain to avoid repeating such mistakes. Any deeper learning rests on the assumption that the team is mature enough to realize that their boss&#8217;s attention is a valuable signal about what matters. This lesson unfortunately tends to occur somewhere in the mid-to-late stage of one&#8217;s career.</p><p>Speaking of hard-won career lessons: when is the last time you were memed into doing something because it was &#8220;VP so-and-so&#8217;s #1 thing&#8221; only to find out later that said VP actually has five or six &#8220;#1 things?&#8221; Probably, like, yesterday given how often this happens to me. In effect, all of us&#8211;no matter our level in the organization&#8211;have been taught that a very-powerful-person&#8217;s interests are mercurial (hey, it&#8217;s almost like they are humans like the rest of us). One will not last long over-indexing on the opinion du jour.</p><p>As leaders under conditions of egalitarianism and fickleness, we&#8217;ve effectively forfeit the ability to influence behavior through the dispensation of attention/favor alone. I believe power exists to be used (otherwise, just have one giant flat org) and you probably shouldn&#8217;t just give it all away, but that&#8217;s a topic for a different blog post. At this point the cat is probably already out of the bag. You could fall back on the one &#8220;hard power&#8221; we posses: the distribution of opportunities and career advancement (and $$$). But then that brings us to&#8230;</p><h3><strong>Assumption 4: you can always reward the right behavior.</strong></h3><p>You need to be realistic about much authority you really have. You might think, &#8220;I define what success looks like in this team/org/company.&#8221; However, the average reader of this blog is a manager at BigCo where promotions and annual ratings are the result of committee consensus. Are you certain you can sway the committee to support Jane Doe&#8217;s promotion just because she followed your lead? This rests on an even more tenuous assumption that <em>you personally</em> are well-aligned with what the organization values. Or that factors outside of your control won&#8217;t pop up at the wrong time (like an economic recession decimating the merit increase budget). Even startup leaders will run into the limitations of social capital and how much they are willing to shorten runway or strain relationships with cofounders in the name of perfect fairness.</p><p>Every time you fail to reward or at least praise someone who followed your lead, you run the risk of breaking the operant conditioning loop. There is a sort of game theoretic calculus happening where each of your reports is operating under imperfect information. For example, say you only offer formal feedback during annual review cycles. Your reports will be hypersensitive to any positive/negative signal whatsoever&#8211;even accidental signals. They are likely to see mirages of feedback where there is none and end up optimizing for the wrong behaviors.</p><p>Even the best managers fall victim to this in small ways due to inconsistency. It&#8217;s impossible to have perfect visibility into how all of your reports spend their time. They might not think to broadcast that they did something or realize what they did is praiseworthy. You might have too many reports to pay close attention. You&#8217;ll be stressed and overwhelmed one day and just forget to respond to that launch email with a hearty congratulations. Either way, at some point you&#8217;ll miss something. Doubly so if you&#8217;re trying to incentivize &#8220;micro-behaviors&#8221; that aren&#8217;t readily apparent to distant observers.</p><h3><strong>Assumption 5: everyone&#8217;s definition of success is the same.</strong></h3><p>On the subject of incentives, not everyone is incentivized by extrinsic motivators like promotions and wealth. Engineers ultimately choose which incentives they respond to, and some of those incentives are not under your direct control. Consider intrinsic motivators like mastery, novelty, relatedness, acceptance, and honor, freedom. If someone is motivated by mastery (e.g. constructing elegant, maintainable, well-architected systems) then they aren&#8217;t likely to pay much attention to the techniques you employ for achieving business impact (e.g. balancing velocity/quality for long-term commercial success).</p><p>Imparting new skills via role modeling depends on the motivation of the learner to make an effort to understand and replicate your actions. Role models often operate on the faulty syllogism:</p><ol><li><p>My team has the same goals as me (i.e. business impact).</p></li><li><p>My team is motivated to grow their role at the company.</p></li><li><p>My team is not acting optimally towards that objective.</p></li><li><p>Therefore this must be because of missing knowledge.</p></li><li><p>Therefore they will be attentive and driven to replicate behaviors that demonstrably achieve business impact and garner recognition.</p></li></ol><p>The problems begin as early as step #1, where you assume everyone is aligned around the definition of success. Consider the divide between &#8220;launch&#8221; and &#8220;landing.&#8221; When someone sees &#8220;launching&#8221; as the end-goal, they will throw a party and go home the second their code hits production. Meanwhile, if you see &#8220;landing&#8221; as the end-goal, you&#8217;ll continue diligently measuring and assessing whether the launched feature is resonating with users. What you might view as excellent role modeling, your team sees as &#8220;oh that&#8217;s just Jim, he&#8217;s obsessed with metrics &#128580;.&#8221;</p><p>Misalignment occurs in somewhat obvious ways, like in the example above, but also in more pernicious forms. For example, someone may be very transparent that they are seeking career advancement and therefore define success around helping the organization achieve its goals. But what happens when you disagree about the specific ways they need to show up given their role/level? Your team members have some conception of what their &#8220;craft&#8221; is and the skills required to be a masterful practitioner. When their conception of &#8220;being an excellent engineer&#8221; is in conflict with &#8220;the behaviors the organization will reward&#8221; cognitive dissonance follows. In the worst case, engineers become embittered and lose confidence in the organization. No amount of role modeling will get through to someone who sees those behaviors as emblematic of an inferior value system.</p><h3><strong>Assumption 6: your work is visible.</strong></h3><p>Goal formation occurs at the macro level (as in the prior assumption, where we talked about overarching objectives like business impact) as well as micro level (goals employed in the problem solving procedure). For example, responding to a production incident involves goals like &#8220;figure out when the incident started&#8221; which itself can entail further goals like &#8220;find the right graph in Prometheus.&#8221; Unless you go out of your way to broadcast every step taken, your team will have no visibility. It will be impossible for someone to replicate your problem solving strategies or the subordinate skills you drew upon in the process.</p><p>Observational learning depends on the learner&#8217;s capacity to recognize, encode, and structure the critical concepts. If the learner cannot perceive and understanding the nuance behind your actions, they aren&#8217;t likely to successfully replicate those behaviors or employ them at the appropriate times.</p><p>That said, perception also depends on sensation which is all too often missing in our brave new world and remote and hybrid work. The bulk of your brightest moments and breakthrough problem solving likely occur in private or a closed conference room. Your team can&#8217;t learn anything if all they can observe is the final end result.</p><p>I&#8217;ve tried to solve this by sharing stream-of-consciousness documents and chat threads which capture my entire process, tools utilized, and evidence collected every step of the way. I call this &#8220;live-tweeting the problem.&#8221; One such document was over 20 pages and took several days to write. This just isn&#8217;t practical. It&#8217;s even less practical to chronicle the nearly infinite number of things you <em>didn&#8217;t</em> do and <em>actively avoided</em> because you knew they were fruitless blind allies. This is what&#8217;s known as <em>negative knowledge </em>and assists with effectively avoiding obstacles (like spending hours debugging a <code>WARNING</code> in the logs that you know is just a spammy log line that gets printed even during normal operation).</p><p>Despite your best efforts, most of the time your team will be reading smoke signals limiting the effectiveness of any role modeling.</p>
      <p>
          <a href="https://lolno.com/p/leading-by-example-considered-harmful">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Passion in the Workplace]]></title><description><![CDATA[The zombie apocalypse is real and you can find it at work]]></description><link>https://lolno.com/p/passion-in-the-workplace</link><guid isPermaLink="false">https://lolno.com/p/passion-in-the-workplace</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 10 Mar 2024 15:51:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!iuk4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iuk4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iuk4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!iuk4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!iuk4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!iuk4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iuk4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:255868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://managerscraft.substack.com/i/204937014?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iuk4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!iuk4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!iuk4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!iuk4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe62ceb0d-8b58-4991-9180-fd7b9a90271e_1792x1024.webp 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 aria-hidden="true" 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><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>Much has been written about hiring for passion: seeking out engineers who&#8230;</p><ul><li><p>spend as much of their time programming and interacting with computers as possible.</p></li><li><p>identify with your company&#8217;s mission and believe it lends their life a sense of purpose (John Doerr&#8217;s whole <a href="https://www.svpg.com/missionaries-vs-mercenaries/">missionaries-not-mercenaries</a> thing).</p></li><li><p>put work before everything else and regularly find themselves burning the midnight oil.</p></li></ul><p>That is to say, only hiring people who substantially derive their self-identity from work and working with computers in particular, and have a tendency to view their employer&#8217;s mission/purpose as their life&#8217;s work.</p><p>Before rushing to enrich your GitHub with side projects and open source contributions (alongside a stellar resume), there has been just as much said about explicitly <em><strong><a href="https://hbr.org/2023/05/dont-let-passion-lead-to-burnout-on-your-team">not </a></strong></em><a href="https://hbr.org/2023/05/dont-let-passion-lead-to-burnout-on-your-team">hiring for passion</a>, that passion-centric hiring&#8230;</p><ul><li><p>leads to massive burnout and/or hostile workplaces where everyone takes everything personally.</p></li><li><p>excludes skillful talent that trained hard and would do good things for your company, but ultimately entered engineering for sustainable pay that would allow them to build a good life free of precarity.</p></li><li><p>is disconnected from the reality that your silly little app startup is probably not, in fact, changing the world or solving society&#8217;s greatest problems.</p></li></ul><p>Reflecting on the sort of workplace I want to have&#8212;both as an employee and as a manager responsible for shaping the environment&#8212;neither of these two positions sounded particularly like what I was looking for.</p><h3>Community, Belonging, Purpose</h3><p>I want to work with people who still have a verve for life, who share that which makes them feel uniquely alive and human, and who have an authentic interest in other people for their own sake. People who realize that the act of coming to work means joining a community and with it adopting community values: sincerity, reciprocity, commitment, care, respect, mutual accountability, codependence, etc. These are <strong>not</strong> the sort of people you would characterize as &#8220;lacking passion.&#8221; In fact, such individuals can make nearly any job, from the mundane to the magical, fulfilling. Note how I haven&#8217;t really said anything about the actual <em>work</em> itself&#8230;that&#8217;s because, frankly, it&#8217;s a secondary concern; Ray Dalio captured this sentiment best:</p><blockquote><p>Success is not a matter of achieving one&#8217;s goals. The things we strive for are just bait&#8230;the struggle to get them with people that we care about gives us the personal evolution and the meaningful relationships that are the real rewards. [&#8230;] I instead wanted to stay in the jungle, struggling to be successful with people I cared about.<br><br><em>&#8211; Ray Dalio, Principles</em></p></blockquote><p>Picking a job, then, is about so much more than picking who signs your paycheck. It&#8217;s really about finding a group of people where you feel welcomed, safe, and respected&#8230;thereby able to give back to that very same community. Some may immediately take umbrage with this as sometimes you&#8217;ll do whatever it takes to survive&#8212;trust me, I&#8217;ve been there&#8212;but ultimately <strong>you choose what attitude you bring to work and how you relate to other people</strong>. Part of the issue is one of terminology: what people describe as &#8220;passion&#8221; I think of more as &#8220;mission-driven&#8221; (an almost obsessive fixation with purpose/achievement in spite of all other factors), and its opposite is &#8220;professional&#8221; (characterized by working with integrity to realize goals and achieve mutual benefit in a more ecologically balanced sense). Professional environments can be <em>indifferent </em>or <em>enthusiastic </em>depending on how people show up.</p><h3>More Than a Vocation</h3><p>No matter how hard you try, work ultimately takes on a bigger role in our lives than just being a source of income. I met my best friends through work; that said, our relationship is about so much more than a mutual interest in technology (in fact, we&#8217;re increasingly curmudgeonly in our views towards tech). I want to befriend even more people, and I expect many of you feel the same way given <a href="https://www.inc.com/jessica-stillman/psychology-relationships-adult-friends.html">the difficulty of forming adult friendships.</a> But how do you expect to make connections in a workplace populated by zombies: people whose soul is dead, although their body is alive; people whose thoughts and conversation are trivial; who chatter instead of talk and assert clich&#233; opinions instead of thinking; people who are shut off from the outside world and tolerate the requirement to interact with one another only because of the need to earn money for food and medicine? I don&#8217;t care if the thing you&#8217;re passionate for is tech, but be passionate about <em>something</em>&#8212;your family, your hobbies, your friends, anything&#8212;and share that spark with those around you. We have been fed a false dichotomy, you can be enthusiastic and professional at the same time.</p><p><strong>You spend one-third of your life at work.</strong> What&#8217;s the difference between mission-driven work that becomes all-consuming and filling every waking hour, versus passionless and disconnected work just to get by? Nothing. You&#8217;re still wasting one-third of your life either way (either in the absence of a personal life, or the absence of a work life that contributes <em>anything</em> to your well-being and wholeness as a human). No matter what you do or who you do it with, take pride in your work: recognize it&#8217;s innate value because <em>you</em> are the one doing it, spending the precious few hours you have on this Earth. You don&#8217;t have to be passionate about something to do it with integrity and to make an active effort to build community wherever you are.</p>]]></content:encoded></item><item><title><![CDATA[Apple Pie Opinions]]></title><description><![CDATA[How to move your mouth but somehow say nothing at all]]></description><link>https://lolno.com/p/apple-pie-opinions</link><guid isPermaLink="false">https://lolno.com/p/apple-pie-opinions</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sat, 06 Feb 2021 15:52:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4cTD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4cTD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4cTD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 424w, https://substackcdn.com/image/fetch/$s_!4cTD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 848w, https://substackcdn.com/image/fetch/$s_!4cTD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 1272w, https://substackcdn.com/image/fetch/$s_!4cTD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4cTD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:252160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205061690?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4cTD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 424w, https://substackcdn.com/image/fetch/$s_!4cTD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 848w, https://substackcdn.com/image/fetch/$s_!4cTD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 1272w, https://substackcdn.com/image/fetch/$s_!4cTD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf39acf4-c088-4e7b-b2a7-92514e032471_2400x1800.webp 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 aria-hidden="true" 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><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>Scene:</strong> you wake up out of a day-dream and find yourself in the middle of a business meeting. Everyone is staring, waiting for you to say something. <em>What do you do?</em></p><p>Say any of these things below and 9 times out of 10 it will not seem like a non sequitur, and nearly everyone will think you are Very Smart&#8482;:</p><ol><li><p>We need to define success metrics.</p></li><li><p>We need more ambitious goals.</p></li><li><p>We need to go faster.</p></li><li><p>We need to stop thinking tactically, and start thinking strategically.</p></li><li><p>We need to think long-term&#8211;what does this look like N years from now?</p></li><li><p>We need more headcount/resources before we can do that.</p></li><li><p>We need more data to make a decision.</p></li><li><p>We don&#8217;t need more data, let&#8217;s make a decision.</p></li><li><p>We don&#8217;t need policy or process; we need a culture change!</p></li><li><p>We need fewer meetings.</p></li><li><p>We need to sync more often.</p></li><li><p>We need to do a postmortem/retrospective.</p></li><li><p>We need more documentation.</p></li><li><p>We need someone to own this.</p></li><li><p>We need a working group/task force/tiger team.</p></li><li><p>We need to standardize/deduplicate.</p></li><li><p>We need to talk to the customer.</p></li><li><p>We need to break this down so it fits into a sprint.</p></li><li><p>We need to <em>[cut some corner]</em>, but we&#8217;ll fix it right after.</p></li><li><p>We need a plan/proposal/design doc.</p></li><li><p>We need a single source of truth.</p></li></ol><h2><strong>Apple Pie Opinions unraveled</strong></h2><p>I call positions like these <em>apple pie opinions</em> (as in <a href="https://en.wiktionary.org/wiki/mom_and_apple_pie">motherhood-and-apple-pie</a>) because they verge on being truisms, if not popularly held misconceptions, while also employing a clever rhetorical structure that makes them downright insidious:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OtvY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OtvY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 424w, https://substackcdn.com/image/fetch/$s_!OtvY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 848w, https://substackcdn.com/image/fetch/$s_!OtvY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 1272w, https://substackcdn.com/image/fetch/$s_!OtvY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OtvY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png" width="800" height="330" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:330,&quot;width&quot;:800,&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;:false,&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_!OtvY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 424w, https://substackcdn.com/image/fetch/$s_!OtvY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 848w, https://substackcdn.com/image/fetch/$s_!OtvY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 1272w, https://substackcdn.com/image/fetch/$s_!OtvY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d7c2e2-09d6-4eee-8375-a184ded201c2_800x330.png 1456w" sizes="100vw"></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 aria-hidden="true" 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><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>Problem #1: apple pie opinions are infinitely defensible</strong></h3><p>These sorts of &#8220;non-positions&#8221; cannot be productively discussed in a group setting as their opposite sounds almost farcical: &#8220;no we shouldn&#8217;t talk to the customer.&#8221; People innately rely on these short hand emotional judgments during spur-of-the-moment debates because deeper thought takes time. As a result, any opposition will be working at a disadvantage from the very beginning.</p><p>How do you argue against &#8220;more data&#8221; or &#8220;being in sync?&#8221; If you try, the discussion usually turns mind-bendingly meta: &#8220;culture change would be great, but that is difficult to achieve without small incremental steps to get the ball rolling.&#8221; Now you&#8217;re no longer discussing the issue at hand, but business/management theory and organizational dynamics&#8230;domains that are mistreated by laymen and thrive off personal preferences masquerading as wisdom.</p><p>The only way to defeat bad opinions, it seems, is more bad opinions.</p><h3><strong>Problem #2: apple pie opinions thrive off power dynamics</strong></h3><p><em>Who</em> says something is almost as important as <em>why </em>they are saying it. These perfectly fortified opinions take on a life of their own when power differentials enter the equations because the personal cost of speaking out far outweighs the benefits of nodding along. What&#8217;s a few days writing a useless design doc when you can make your boss feel good and like you more?</p><p>We are often unware of (or unwilling to acknowledge) power differentials so you may be running afoul of this without realizing it. Power can come from many places:</p><ul><li><p><strong>Explicit</strong>: managers <em>(at all levels)</em> are responsible for people&#8217;s livelihoods which is the closest thing to &#8220;life or death&#8221; on this list.</p></li><li><p><strong>Role-based</strong>: technical leads and mentors hold less authority than managers but are granted a lot of deference.</p></li><li><p><strong>Expertise</strong>: holding an outsized share of knowledge, or having a particular job level (senior/staff/principal), implicitly puts pressure on everyone around you.</p></li><li><p><strong>Relational</strong>: &#8220;early hires&#8221; hold a lot of sway regardless of official role because of the proximity to leadership stemming from being employee #15 or whatever.</p></li><li><p><strong>Structural:</strong> members of the majority have privileges that their underrepresented peers do not: chiefly the ability to <a href="https://lolno.net/the-privilege-of-vulnerability/">speak out with impunity</a>.</p></li></ul><p>&#8230;and many more. <a href="https://www.ted.com/talks/eric_liu_why_ordinary_people_need_to_understand_power?language=en">Power literacy</a> is just as important for those <em>with power</em> as it is for those seeking it.</p><h3><strong>Problem #3: apple pie opinions waste time</strong></h3><p>If these opinions effectively have no content, what&#8217;s the harm? <strong>Wasted time, frustration, disillusionment</strong>. Each such position motivates a lot of extra work. The extra overhead makes everyone feel unproductive. It puts the brakes on new (but fragile) ideas because they often cannot stand up to the scrutiny of a cost/benefit analysis or a detailed project plan early on. Your team will start feeling like this isn&#8217;t a place where they can be productive or innovative.</p><p>&#8220;We need more data.&#8221; Someone has to collect, clean, and analyze it&#8230;not to mention all of the subsequent discussions. &#8220;We need to define success metric.&#8221; It takes time to identify measures worth committing in such an official fashion, and that doesn&#8217;t even account for the added overhead of everyone involved continuously bending their work in service of these success metrics.</p><p>None of these things are innately bad mind you&#8230;but if they were entirely motivated by no more than a powerful person trying to sound smart in a meeting, then it&#8217;s all in service to nothing.</p><h2><strong>Contributing constructively</strong></h2><p>Before you fly into rage, know that I have sincerely said all of these things before&#8230;and still do on a regular basis. The issue is not the sentiments themselves, but rather <em>why and how</em> they are being said at all. Hence it is better to think of these opinions not as innately &#8220;anodyne&#8221; but rather &#8220;dangerous.&#8221; Dangerous in the sense that if wielded irresponsibly it will do harm to you, your projects, and your team.</p><h3><strong>Check your motivation</strong></h3><p>Speaking up for the sake of speaking up (appearing smart, scoring points, etc) is not a sound reason to share an apple pie opinion. Good leaders know when their input is critical and when it is superfluous. If asked directly for your opinion when you have none, be honest: &#8220;I have nothing to add at this time, it sounds like you&#8217;re on the right track, I&#8217;ll let you know if I think of anything else offline.&#8221;</p><h3><strong>Speak candidly</strong></h3><p>I see a lot of apple pie opinions come out because someone disagrees, but is not willing/able to be honest.</p><p><strong>Consider this scenario:</strong> someone is discussing their chosen approach to a project in a team meeting. You disagree with some of the technical decisions, but don&#8217;t want to so &#8220;publicly&#8221; call out the individual and put them on the spot; you&#8217;re not even sure you&#8217;re right and don&#8217;t want to seem like a micromanager. Instead you reach for an apple pie opinion that will steer them towards rethinking these decisions: &#8220;some of this seems pretty complicated, we really need to get an MVP out the door and iterate based on customer feedback.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ImHY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ImHY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 424w, https://substackcdn.com/image/fetch/$s_!ImHY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 848w, https://substackcdn.com/image/fetch/$s_!ImHY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 1272w, https://substackcdn.com/image/fetch/$s_!ImHY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ImHY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png&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;:&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_!ImHY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 424w, https://substackcdn.com/image/fetch/$s_!ImHY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 848w, https://substackcdn.com/image/fetch/$s_!ImHY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.png 1272w, https://substackcdn.com/image/fetch/$s_!ImHY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8a0abc-c8ee-4bc3-948e-80ff34f5caff_500x500.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 aria-hidden="true" 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><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&#8217;ve fallen into what <a href="https://www.radicalcandor.com/">Kim Scott calls either &#8220;Ruinous Empathy&#8221; or &#8220;Manipulative Insincerity.&#8221;</a> Failing to speak honestly and challenge directly can lead to a lot of wasted time and frustration as both sides keep &#8220;taking past each other.&#8221; Overcorrecting the other direction (into &#8220;obnoxious aggression&#8221;) will surely avoid anodyne opinions, but come at a much greater cost in the long run.</p><p>If, after considering what&#8217;s right for <em>both the people and project </em>before you, it still seems like one of these positions is the right choice, then you can proceed.</p><h3><strong>Include context</strong></h3><p>Once you&#8217;ve resolved that one of these dangerous opinions is the necessary and right position to espouse, pay attention to your delivery.</p><p>Don&#8217;t just say &#8220;we need more data.&#8221; Explain why you believe that to be true, including any assumptions you are making (either about the problem or the beliefs of others in the room). While it is almost impossible to argue against &#8220;more data,&#8221; it is much more plausible to refute the reasoning behind your statement and thus have a productive discussion.</p><h3><strong>Putting it all together: delivering a </strong><em><strong>constructive</strong></em><strong> opinion</strong></h3><p>Here is an example combining all of the above advice:</p><blockquote><p><strong>Earl, you mentioned that it will take a couple months to get this product rolled out to the early adopters. Since a lot of the benefits of Project X require customers to also change their habits, I assume that it will take a long time (1+ year) before we know if this idea is going to work. Therefore, I recommend we come up with some success metrics that can be used to gauge our progress and course correct as needed, else I worry we will spend a lot of time for not very much gain. Do you think that will help or just be a tax?</strong></p></blockquote><ul><li><p>All assumptions are stated up front so no one is second guessing why you might suggest this.</p></li><li><p>Your understanding of the concept at hand is restated in your own words, inviting corrections.</p></li><li><p>Ending on a leading question suggests that you&#8217;re open to hearing contrary opinions.</p></li></ul><p>I can confidently state that no one I work with is an &#8220;<a href="https://www.dictionary.com/browse/empty-suit">empty suit</a>.&#8221; Nevertheless, I&#8217;ve been in plenty of discussions that devolved into a circular exchange of apple pie opinions. This is a natural side effect of working in a professional environment, and thus a phenomenon that needs to be explicitly kept in check&#8230;.lest we all lose the ability to communicate except through increasingly inscrutable managerese.</p>]]></content:encoded></item><item><title><![CDATA[Succeeding as a Mid-Career Hire]]></title><description><![CDATA[Starting your first job is tough: you have to juggle learning the ropes of professional life alongside skilling up as a new engineer.]]></description><link>https://lolno.com/p/succeeding-as-a-mid-career-hire</link><guid isPermaLink="false">https://lolno.com/p/succeeding-as-a-mid-career-hire</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sat, 09 Jan 2021 15:48:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!v_-l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v_-l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v_-l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 424w, https://substackcdn.com/image/fetch/$s_!v_-l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 848w, https://substackcdn.com/image/fetch/$s_!v_-l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 1272w, https://substackcdn.com/image/fetch/$s_!v_-l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v_-l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67754,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205060937?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v_-l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 424w, https://substackcdn.com/image/fetch/$s_!v_-l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 848w, https://substackcdn.com/image/fetch/$s_!v_-l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 1272w, https://substackcdn.com/image/fetch/$s_!v_-l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf73e1b-efbb-4dec-8504-63324501cf59_2400x1600.webp 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 aria-hidden="true" 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><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>Starting your first job is tough: you have to juggle learning the ropes of professional life alongside skilling up as a new engineer. You&#8217;re probably doing this concurrently to a whole host of other life changes: leaving home/college, moving across the country, etc. As such, you might believe the going gets easier each subsequent job switch. Sorry to disappoint: it doesn&#8217;t&#8211;taking a new job mid-career comes with <em>increased expectations</em>.</p><p>You&#8217;re no longer &#8220;entry level&#8221; and will be expected to arrive as a mostly competent and productive member of the team. The pressure is further increased by the fact that job changes often result in a title bump: how does one live up to the expectations of <em>Senior</em> Software Engineer when virtually all of your new colleagues will be outperforming you for the foreseeable future&#8211;even the ones without the shiny new title?</p><p>Worry not: you&#8217;ve got this. You <em>do</em> have something valuable to contribute. The fact you&#8217;re here means something; software hiring and interview practices have not become Machiavellian torture tests for nothing. That doesn&#8217;t mean you can just show up and start acting like you always know best; what matters most is that you <em>stay humble</em>. Getting the most out of this experience requires keeping an open mind to different ways of working. Over my own career, I&#8217;ve developed a basic 3-step process to ramp up quickly, learn a lot, and start making a big impact <em>fast.</em></p><h2><strong>Phase 1: naturalize and observe</strong></h2><p>In the beginning, your strategy should be to listen and learn. Joining an established organization, your biggest hurdle will be navigating the existing structures and norms, and none of the short-hands and relationships that carried you in your old job will exist. <strong>The goal is to understand the unique culture of the team and what is (implicitly) expected of you as a newly minted member of that culture.</strong></p><p>The company and your manager likely have <em>some </em>sort of onboarding planned for you; put all your energy into that and be <em>present</em>. During your onboarding you should take notes; write everything down&#8230;especially 1:1 advice, as well as anything you have to figure out and research on your own. Collect useful links and documentation you come across. This serves three purposes:</p><ol><li><p>You can enhance the existing onboarding documentation, and guide future new hires as someone who has recently been through the experience.</p></li><li><p>Peers and managers will offer a lot of advice during this period, and much of it will never be repeated once you&#8217;re considered a fully vested employee.</p></li><li><p>Much of the information you encounter will parse differently rereading it 3 months/6 months/12 months into the job.</p></li></ol><p>Do your best to follow instructions and perform responsibilities as directed. When in doubt (or for lack of guidance), identify a role model and copy them. Formalizing your relationship with this role model as a <em>mentor</em> will further increase your access to tips and tricks for navigating the new environment, and bolster your work social network early, when it is sorely needed.</p><p>As an experienced hire, you may be inclined to show up and start agitating right away: you should already know how to do the job, and were hired for your knowledge and experiences right? If you keep it to yourself then what&#8217;s the point!? Don&#8217;t, stop, cease, wait&#8230;no! This way lies madness (and much animosity).</p><p>I&#8217;m not saying you should be meek and complicit. Rather, you would be well advised to prioritize <em>listening</em> so you can actually understand what others expect of you and avoid operating off prior assumptions. Moreover, in an ideal world, you would be joining a company you respect and want to learn as much as you can about their unique culture/secret sauce/system of work as you can. Some of the key cultural aspects and behavioral norms I look out for include:</p><ul><li><p><strong>Communication norms: </strong>when does the team use chat, email, or a meeting? How polished are meeting presentations and agendas? When do discussions and decisions get recorded in writing? How long and formal are these documents? Does the group do any form of collective brainstorming, pair programming, etc?</p></li><li><p><strong>Decision making rules: </strong>how does the team make decisions? Who is involved? What approvals are sought and when? What decisions can you make solo and which should be formed via consensus? How are decisions recorded and shared?</p></li><li><p><strong>Jargon:</strong> what terms of art, nonce phrases, and aphorisms get used? What are the preferred phrases for key concepts (e.g. I have worked at places where saying &#8220;CI&#8221; would get blank stares, but &#8220;postpush testing&#8221; is crystal clear)? What terms are verboten or conjure up violent negative reactions?</p></li><li><p><strong>Transparency and socialization: </strong>how much or how little do people share about their personal lives and preferences? How tolerant is the group of &#8220;chit-chat&#8221; or &#8220;small talk?&#8221; When does socialization occur and between whom?</p></li><li><p><strong>Polish and failure</strong>: how complete and refined are solutions and ideas before they are shared or publicized? How and when are problems/blockers declared? How tolerant is the group of failure and taking bets&#8230;how often do others fail?</p></li></ul><p>Fully engaging in your onboarding, and attempting to learn the traits of a model team member gives you a strong foundation for future success. As you start to influence the culture, make changes, and even come into conflict, you have a &#8220;safe haven&#8221; to return to when things aren&#8217;t working out: a set of behaviors that you know will be accepted (and rewarded). <strong>Most importantly, this demonstrates a great deal of humility and respect, and will make you a more effective change agent: </strong>others will be more receptive to your ideas and criticisms believing they come from a place of understanding, rather than a blind attempt to be more like &lt;previous employer X&gt;.</p><h2><strong>Phase 2: compare and contrast</strong></h2><p>As you start to get more comfortable in your new job, you&#8217;ll want to expand your impact and scope of practice to be more than just task completion&#8211;focusing on how to multiply the overall efficacy of your new team. This is hard&#8230;like, really hard, like the-whole-point-of-your-career hard.</p><p><strong>The overarching goal at this point is to bring to bear all of your hard-won experience. </strong>The best way I have found to do this is to draw comparisons, identifying aspects that are similar and forming 1:1 maps from your new role, team, and company to previous encounters. Through this process interesting &#8220;diffs&#8221; will emerge that explain unique challenges (or advantages) for you to exploit. You will sometimes find the silver bullet lies in one of your past experiences, it just wasn&#8217;t obvious how it applied until you constructed the metaphor. This applies just as much to interpersonal and leadership problems as it does to technical issues. Some examples from my life include:</p><ul><li><p>The Verve Asset Manager (VAM) I inherited at Verve stores data in a user-configurable schema that allows customers to specify arbitrary fields and relationships for all the items they want to track. This turned out to be very similar to the feature set and problem domain of the custom CMDB in use at &lt;redacted employer&gt;. The CMDB had run much longer, served a larger customer footprint, and had already surmounted many of the same technical hurdles (sharding, replication, asynchronous streaming, etc)&#8230;meaning VAM was able to avoid several pitfalls before they occurred.</p></li><li><p>Working in IT at UW-Madison gave me a lot of experience serving an internal customer base. Both the Architecture group at Two Sigma, and the Engineering Productivity group at Google function very similarly: providing services (consulting, tools, support, etc) to a captive customer base. Besides the experience itself, there is a wealth of literature, talks, and best practices to call upon when doing IT service design, and I was able to apply all of it&#8212;principally shifting the nature of our customer engagements from one of governance and control, to one of education and enablement that let us exert greater influence over technical direction and team dynamics.</p></li></ul><p>You never know when inspiration will strike and you see the hidden connection to something from your past. My last example raises an important source of inspiration: inter-disciplinary metaphors. If you have exposure to ideas outside of tech (or in parts of tech that are less frequently traveled by software engineers like IT, product, support, etc), you will find many &#8220;hard problems&#8221; are already partially solved. <em>Turns out software engineering isn&#8217;t the first field to attempt collective problem solving in a professional environment /s.</em></p><p>One of my favorite <em>ah-ha!</em> moments of late was coming across Vargo and Lusch&#8217;s &#8220;Evolving to a New Dominant Logic for Marketing.&#8221; In this paper, the author&#8217;s claim that the fundamental economic shift from exchanging value in the form of tangible goods and products, to exchanging value via intangible resources like knowledge, relationships, and services, leads to a similarly fundamental rewiring in the theory and execution of marketing. One aspect of this shift is how &#8220;goods are transmitters of operant resources (embedded knowledge); they are intermediate &#8216;products&#8217; that are used by [customers] as appliances in the value-creation process.&#8221; How does any of this apply to my day job?</p><p>I work in Engineering Productivity at Google, wherein I aim to create the best place to be a developer: where folks can come and focus on building great products and experiences, and the tools and processes to do so fade into the background. The problem? There is no silver bullet; I can&#8217;t just build the most-magical-CI-system-you&#8217;ve-ever-seen and have that make everything better. Some improvements can only come when the way the software is designed and implemented changes. What do you do when it&#8217;s not your product or team that needs influencing? The key mindset shift that is required is to stop thinking in terms of delivering a tangible product (a piece of software like a CI/CD platform), and more in terms of delivering a service (software engineering and methodology consulting). Through that lens, the tools I build become the &#8220;transmitters&#8221; of the actual &#8220;operant resources:&#8221; my particular philosophy and approach to software. I&#8217;m not selling a tool, I&#8217;m selling a lifestyle&#8230;ready-made tools propagate that lifestyle in a very attractive package.</p><p>&#8220;Evolving to a New Dominant Logic for Marketing&#8221; describes this shift in detail, and if you continue to extend the metaphor, there are even more novel and applicable takeaways for anyone in roles such as mine. Exposing your new team to foreign ideas and concepts that they might not encounter otherwise is one simple way to start providing extra &#8220;value add&#8221; even before you&#8217;ve fully mastered the new gig and have your &#8220;sea legs&#8221; underneath you.</p><h2><strong>Phase 3: invent and expand</strong></h2><p>Thinking in metaphors can take you very far, and as you get further soaked in context, you will start to make novel leaps and new ideas that are all your own. Bear in mind there are no bonus points for originality, but it definitely feels good when you&#8217;re able to solve a problem with your own creativity.</p><p>I have no secret wisdom to share: you will know when you&#8217;re here because your brain will form new connections and pick up on provocative ideas almost entirely unbidden&#8230;the subconscious mind at work.</p><p>At this phase you should take care to avoid fixating on &#8220;innovation for innovation&#8217;s sake.&#8221; The urge to change things and pursue new projects will intensify as the volume of your insights increases, but you should remain anchored in <em>solving real problems</em>.</p><ul><li><p>Continually assess alignment with the team, product, and business. Solving imagined problems or working towards a divergent end goal delivers no value.</p></li><li><p>Use <em>leverage</em> as your yardstick for measuring effectiveness, rather than just <em>output</em>. Time is your most limited resources as unlike other resources, time cannot be stored, extended, or replaced.</p></li><li><p>Think of (almost) everything as an <em>experiment</em> and ask yourself what you should do to maximize the amount of new information you can gain, even if that experiment should &#8220;fail.&#8221;</p></li></ul><h2><strong>Enduring beyond the first year</strong></h2><p>I have used this mental model while starting 4 new jobs over the last 6 years, and it has served me well. While job hopping has become quite typical for software engineers&#8211;increasing the need for guidance such as this&#8211;it is still the case that you need to find a job and stick with it for some number of years to build real mastery. 5 years of &#8220;1 year of experience&#8221; is very different from &#8220;5 years of experience.&#8221; I have done 3 such extended stays in my career (6 years, 4 years, and 2 years in duration).</p><p>In year 1, much of your work and priorities are predetermined. The manager that hired you had to justify your headcount somehow, and that typically requires 1+ year worth of high-value projects on the backlog that are ready to go. You spend your first year nailing those projects, and relying on your team/boss&#8217;s social networks to get things done&#8230;then year 2 rolls around the real challenge begins.</p><p>In year 2+, you will be expected to continue delivering value, but there may not be a shovel-ready project in the wings. How you source, identify, and select the next big thing you work on is critical&#8230;it doesn&#8217;t matter if you do this as an individual or as a team. That is why the tips I have shared here are singularly focused on bringing your innate creativity to bear.</p><p>It&#8217;s can be nerve-wracking to start over mid-career&#8230;the challenge of getting back to your former level of productivity and effectiveness will be different every time (maybe that&#8217;s partly why more and more of us are drawn to job hopping?). Good luck, and enjoy your new job <span>&#128522;</span></p>]]></content:encoded></item><item><title><![CDATA[Talking About Trade-offs]]></title><description><![CDATA[You can&#8217;t make it more than 1 paragraph/slide/minute into a piece of media discussing microservices without encountering admonitions to &#8220;carefully consider the trade-offs.&#8221; This is promptly followed by not mentioning or explaining any trade-offs, and resuming to filibuster around whatever point they were trying to make, as if being direct and complete would make their position technically indefensible.]]></description><link>https://lolno.com/p/talking-about-trade-offs</link><guid isPermaLink="false">https://lolno.com/p/talking-about-trade-offs</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 29 Nov 2020 16:53:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!To4L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!To4L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!To4L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!To4L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!To4L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!To4L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!To4L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179886,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://managerscraft.substack.com/i/204937374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!To4L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!To4L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!To4L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!To4L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a5cfe5-ae36-4ee2-b2da-5098b745b8d3_1792x1024.webp 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 aria-hidden="true" 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><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 can&#8217;t make it more than 1 paragraph/slide/minute into a piece of media discussing microservices without encountering admonitions to &#8220;carefully consider the trade-offs.&#8221; This is promptly followed by not mentioning or explaining any trade-offs, and resuming to filibuster around whatever point they were trying to make, as if being direct and complete would make their position technically indefensible.</p><h2>Software Architecture does not mean what you think it means</h2><p>I don&#8217;t think these authors are being disingenuous; the trade-offs involved are context-specific, so how could they ever offer something here that would be above reproach? <strong>Here&#8217;s the problem: without some treatment of the trade-offs you navigated, from the perspective of your particular project, it&#8217;s impossible to gather any useful takeaways.</strong></p><p>The recommendation or pattern you are trying to share is not &#8220;architecture.&#8221; It is the <em>output</em> of architecture (which is more a process than a tangible artifact). How we collect, analyze, and reconcile competing requirements to craft a system that meets our needs within a set of constraints is architecture, and it&#8217;s what elevates rote programming to software engineering.</p><p>By leaving out how you arrived at the result and all the surrounding context, you strip your message of the most instructive parts and stuff them into the hand-wave &#8220;consider the trade-offs.&#8221; It&#8217;s like reading a math textbook only to have a profound theorem&#8217;s proof excluded as an &#8220;exercise to the reader.&#8221; I won&#8217;t go so far as to call this gate-keeping, but it suffices to say that those in-the-know (and likely do not require your guidance) will &#8220;get it&#8221; and those who could benefit from your experience will leave with the wrong takeaways.</p><p>It&#8217;s the sort of education that breeds charlatanism; where real technical decision making and architecture get completely elided by resume-driven development, or stalled out by someone sagely uttering &#8220;consider the trade-offs&#8221; and thinking it profound. Of course we will consider the trade-offs&#8230;that&#8217;s what we&#8217;re doing, that&#8217;s engineering! Anodyne opinions like this can only be refuted at great personal cost, and so entire organizations entertain these arguments in costly ways (analysis paralysis anyone?) even though the person who proffered this statement sometimes has no deeper meaning or insight.</p><p>If the intent is to spread good ideas and sound architecture, then we need to also accompany our ideas with examples of how real-world constraints and trade-offs manifested, and how our approach balanced those concerns to open a new way forward.</p><p>This does not mean belaboring every talk and blog post with a universal framework for decision-making. It would suffice to share the context and experience that led you to speak out, and allow the reader to judge how that does (or does not) apply to them. Being able to [describe CQRS] is trivia; knowing that [when faced with problem X, constraint Y, and requirement Z that CQRS led to the following virtues and vices] is wisdom.</p><h2>You need non-functional requirements in your life</h2><p>&#8220;Requirements gathering&#8221; smacks of archaic software engineering practices that predate the post-Agile era&#8230;but that&#8217;s exactly what you&#8217;re doing when you design systems. Requirements are more than just bewildering TODO lists of conflicting features, authored by despotic business leaders. Nor do you need to do requirements gathering all-at-once, waterfall-style. Once you break the association of &#8220;requirements&#8221; with this unhealthy modality you can recoup the most useful tool in our arsenal.</p><p>The first step in resuscitating &#8220;requirements&#8221; is to recognize they fall into three categories:</p><ul><li><p><strong>Functional Requirements:</strong> what you classically think of when you hear &#8220;requirements.&#8221; Things the software must be able to do, and how it should behave and react to runtime stimuli. For example, &#8220;users should receive an alert when their order ships.&#8221;</p></li><li><p><strong>Non-functional Requirements: </strong>also known as &#8220;software quality attributes,&#8221; these are qualifications of the functional requirements and describe the operation of the system. Things like timing requirements (&#8220;performance&#8221;) and other &#8220;ilities&#8221; like maintainability, availability, scalability, operability, etc. <a href="https://en.wikipedia.org/wiki/List_of_system_quality_attributes">See a more complete list here</a>. For example, &#8220;users should receive password reset emails within 30 seconds of requesting a reset.&#8221;</p></li><li><p><strong>Constraints:</strong> a design decision with zero degrees of freedom. These can come in the form of implicit standards in your organization&#8212;e.g. &#8220;all services are written in Java&#8221;&#8212;in the form of edicts&#8212;e.g. &#8220;everyone must publish an OpenAPI spec&#8221;&#8212;or in the form of previous decisions that are being ruled as out-of-scope for the current project&#8212;e.g. &#8220;we are using flatbuffers instead of protobuffers.&#8221;</p></li></ul><p>Constraints and functional requirements are not very transformative, but non-functional requirements give you a way to discuss trade-offs&#8230;especially because some non-functional requirements appear to be foils of each other. A classic trade-off is security vs. usability: requiring a user to 2Fa significant configuration changes is less usable, but more secure. Non-functional requirements offer firm definitions for these concepts, patterns for achieving them, and allows you to be complete in your accounting of what you&#8217;re giving up for the sake of the other.</p><blockquote><p>Security is the system&#8217;s ability to protect data from unauthorized access.</p><p>Usability is a measure of how easy it is for a user to accomplish a desired task and learn system features. This includes learning system features, minimizing the impact of errors, adapting the system to user needs, and increasing confidence and satisfaction.</p></blockquote><p>It is not necessary to detail all functional and non-functional requirements up front to approach architecture this way. You may only know a few requirements, or have a notion of what you want absent the challenges that may make it untenable (&#8220;I want consistency, availability, AND partition tolerance&#8230;oh wait&#8230;). It is natural to have requirements emerge during the implementation process, and to have their relative importance shift as the boundaries of what&#8217;s possible (and what&#8217;s necessary) become clear.</p><p>Non-functional requirements do not present a solution to changing requirements (and the need to be &#8220;agile&#8221;), they provide:</p><ol><li><p>A framework to conduct systematic searches through the space of possible requirements and complications.</p></li><li><p>A language that codifies the essential abstractions and common ground needed to productively discuss software design, without getting waylaid by details of a particular instantiation, talking past one another, and excessive reliance on nonce terms.</p></li></ol><p>&#8230;in other words, exactly what&#8217;s needed to help your audience &#8220;consider the trade-offs.&#8221;</p><h2>Making sense of microservices</h2><p>Returning to the example that motivated this article, let&#8217;s talk about microservice trade-offs.</p><p>It&#8217;s easy to accidentally attribute a lot of virtues to microservices related to modularity (single responsibility principle, interface segregation principle) but that does not capture the <em>essence</em> of microservices. It is perfectly reasonable to organize your code using strong namespacing and interfaces, granting you much the same modularity in a single process. Microservices take this a step further by achieving (enforcing?) through process isolation of subcomponents. With this in mind, we can now summarize essential strengths and weaknesses of microservices, as viewed through non-functional requirements.</p><h3>Strengths</h3><ul><li><p><strong>Scalability</strong>: each process can be scaled (horizontally or vertically) independent of the others. That is not to say a &#8220;monolithic&#8221; process cannot be scaled horizontally, but that typically requires sharding where microservices may be able to avoid that altogether.</p></li><li><p><strong>Conceptual Integrity</strong>: the single responsibility principle ensures that the process has a small surface area, and theoretically can implement a single coherent concept better than multiple competing features. This eases maintainability, but also makes the system easier to reason about in production.</p></li><li><p><strong>Reusability:</strong> processes that publish a well-defined API can be reused in almost any context: different teams, different companies, different programming languages, different use-cases.</p></li><li><p><strong>Reliability</strong>: separate processes build in &#8220;bulk heads&#8221; into your application that isolate failures. With sufficiently defensive IPC (retries, back-offs, deadlines, etc), even faulting systems may still be able to deliver partial-to-full functionality.</p></li><li><p><strong>Organizational Autonomy</strong>: each process can be built in some modicum of isolation from the others, coordinating via the shared API and contracts. This isn&#8217;t exactly perfect (in my experience, a lot of growing pains experienced by MSFT/AMZN/GOOG are a direct result of this), but it does enable a product team to sustain productivity even as it scales into the hundreds of engineers.</p></li></ul><h3>Weaknesses</h3><ul><li><p><strong>Operability</strong>: each process is another mouth to feed. It needs deployment orchestration, testing, monitoring, an oncall rotation, and more. As the number of processes grows, it becomes almost impossible to hold a complete mental model of the system in your head.</p></li><li><p><strong>Observability</strong>: user-facing features and user journeys take place across a constellation of services, communicating using generic API&#8217;s. It is more challenging to observe the flow of a single request, and it&#8217;s more difficult for the system to make reasonable service-level decisions (request prioritization, load shedding).</p></li><li><p><strong>Supportability</strong>: when something goes wrong, it will be more challenging to reconstruct the context and end-to-end flow that precipitated the failure. Troubleshooting and reproducing issues is made more complicated by the number of moving pieces that must be started and manipulated to construct a hermetic repro.</p></li></ul><p>All of the above can be improved with additional architectural patterns&#8230;each with their own quality attributes. By using the language of non-functional requirements, you can methodically navigate these &#8220;trade-offs&#8221; and make better, contextual decisions&#8230;as opposed to always chasing the latest tech trend.</p><h2>S.O.S. (save our systems)</h2><p>I&#8217;m lampooning microservices quite a bit in this article, when in reality that was just the topic of the most recent tech talk that made me want to drive my car into the ocean. There are also plenty of authors who understand this problem and treat it appropriately. However, I have seen too much puffery and too many projects doomed by quixotic, resume-driven architectures to believe there isn&#8217;t a gap in how we train and educate software engineers at large.</p><p>Using the language of requirements and constraints, you can ground your thinkpieces in the realities of bringing software into the world, you can hold more productive design discussions, and you can accelerate the training of the next generation of software engineer.</p><p>Architecture is the confluence of <em>people</em>, <em>processes</em>, and <em>structures </em>used to design systems; do not forget to talk about the <em>people </em>and <em>processes </em>as they determine more about the <em>structures </em>than you think.</p>]]></content:encoded></item><item><title><![CDATA[Beware Weaponized Trust]]></title><description><![CDATA[The future is a boot stamping on a human face while a recorded message urging self-care plays, forever.]]></description><link>https://lolno.com/p/beware-weaponized-trust</link><guid isPermaLink="false">https://lolno.com/p/beware-weaponized-trust</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 16 Aug 2020 15:59:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cQvf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cQvf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cQvf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!cQvf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!cQvf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!cQvf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cQvf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6060815,&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://lolno.com/i/205067262?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.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_!cQvf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!cQvf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!cQvf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!cQvf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62182728-89a5-4b45-8118-94acfa72648a_2816x1536.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 aria-hidden="true" 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><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>Literature on the importance of empathetic leadership is everywhere, especially in software engineering. You would be hard pressed to find anyone that <em>doesn&#8217;t</em> use the language of empathy when describing their approach to management. Someone who eschews personal connection and empathy in the workplace entirely sounds like a caricature&#8230;a cartoon villain that couldn&#8217;t possibly exist.</p><p>However, just because we now <em>talk</em> about things like relationships, emotions, trust, and authenticity at work does not mean that we have all magically become more empathetic. In fact, the situation is more complicated than ever. Sociopaths walk among us and now have a beautifully crafted Trojan horse to conceal their machinations within. Even well-meaning managers have to walk a fine line between outright manipulation and influence.</p><h2><strong>Empathetically Dishonest</strong></h2><p>We believe ourselves to be empathetic people, either as a natural facet of our personality or through practice and explicit effort. We read books like <a href="https://www.amazon.com/Radical-Candor-Revised-Kick-Ass-Humanity/dp/1250235375">Radical Candor</a> and <a href="https://www.amazon.com/Nonviolent-Communication-Language-Life-Changing-Relationships/dp/189200528X">Nonviolent Communication</a> (both terrific, btw). In one-on-one&#8217;s, we listen attentively and express deep, almost personal, concern for the other&#8217;s feelings and experiences.</p><p>&#8230;and then we go right on ahead and manipulate them anyways. It was just a performance. What happened?</p><p><strong>Intent is everything</strong>. An empathetic point of view enables you to feel someone else&#8217;s pain, but that does not require you to <em>act</em> on those feelings of reciprocity. In practice, that means your personal goals and needs are still the driving motivator for all your actions. Without realizing it, you stop seeing people as people, and instead see them as tools to get what you want.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lolno.com/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">lol, no 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><p>Consider the following incident, which (partially) prompted this entire article:</p><p>I was a rising manager at a growing company; we had recently hired engineer #14 and a formal org structure was emerging. I had not yet assumed management of all the teams, and for this team in particular I was just the project manager. Bob, my boss and CTO, was officially manager and technical lead of the product this team produced. Ryan was an individual contributor hired to replace Bob as the technical lead, due to his many years of experience with the underlying technology.</p><p>Bob and Ryan were not getting along. Ryan would submit code that was much more defensive than the norm for that product, and often structured his work in a way divergent from Bob&#8217;s. It wasn&#8217;t necessarily wrong, just different. Like anyone else, his code had gaps and flaws that Bob would point out in code review. Mixed in with the valid criticism were comments that boiled down to &#8220;this isn&#8217;t how I would do it, therefore it is wrong, please do it my way instead.&#8221;</p><p>After months of this, the relationship had degenerated into outright micromanagement. Ryan could not submit a line of code that was not close to, if not exactly, what Bob would write&#8230;even in cases where Ryan&#8217;s code would have been more resilient. One severe occurrence of Bob overriding Ryan occurred over our team chat, and as the conversation unfolded I saw Ryan (who sat across from me) become physically agitated&#8230;he had clearly had enough. I asked him to take a walk with me.</p><div class="callout-block" data-callout="true"><p><strong>Me:</strong> what&#8217;s on your mind?<br><strong>Ryan:</strong> I just can&#8217;t work like this, he keeps forcing me to change my code at the last minute and I can&#8217;t get anything done.<br><strong>Me:</strong> it feels horrible when nothing we do is ever &#8220;good enough&#8221; and the other party can never articulate what they really want.<br><strong>Ryan:</strong> I feel completely paralyzed, I want to do good work but every line of code I think &#8220;is this what Bob would do?&#8221; and get stuck.<br><strong>Me:</strong> it would be a mistake for us to hire someone with your experience just to throw that all away by forcing you to work like Bob.</p></div><p><em>(the conversation proceeds back and forth, with me listening and reciprocating Ryan&#8217;s feelings)</em></p><div class="callout-block" data-callout="true"><p><strong>Ryan:</strong> I was worried about this before I got hired actually.<br><strong>Me:</strong> oh?<br><strong>Ryan:</strong> I didn&#8217;t accept right away, citing concerns about not having the autonomy to really technically lead &lt;the product&gt;. In my past jobs this has been a big source of strife for me. Bob assured me this would not be an issue.<br><strong>Me:</strong> yet here we are.<br><strong>Ryan:</strong> yea&#8230;</p></div><p><em>(at this point I&#8217;m looking for a way forward, I know I can&#8217;t fix Bob but I need to give Ryan hope for the future and get him solution-oriented rather than wallowing in the present situation)</em></p><div class="callout-block" data-callout="true"><p><strong>Me:</strong> I can&#8217;t make excuses for Bob, but I can conjecture what makes him act this way.<br><strong>Ryan:</strong> oh? Tell me more, you&#8217;ve worked with him a lot longer than I have.<br><strong>Me:</strong> he invented this product, which arguably is the reason our company is so successful, and now he has to hand it off to someone else to develop as his role has changed. This is something he hasn&#8217;t really done before, and it&#8217;s believable that he&#8217;s being a little bit protective and clingy.<br><strong>Ryan:</strong> sure&#8230;<br><strong>Me:</strong> &#8230;and so if what you want is the autonomy to lead <em>your</em> way, you&#8217;ll first have to prove to Bob that he can trust you to take care of &#8220;his baby.&#8221; That&#8217;s what I had to do before he handed me control over &lt;other team&gt;.</p></div><p><em>(the apologetics are in full swing, I talk about different behaviors Bob respects and how Ryan can shape his personal workflow to include checkpoints with Bob to avoid late-stage blow ups and, hopefully, build trust)</em></p><div class="callout-block" data-callout="true"><p><strong>Me:</strong> I know this doesn&#8217;t &#8220;fix&#8221; the problem or make what happened any less harmful.<br><strong>Ryan:</strong> Yes, but I feel like this is a problem I can handle now&#8230;and I really am in it for the long haul so I want to try my best to overcome this!<br><strong>Me:</strong> that&#8217;s great! This isn&#8217;t the easiest place to work, but I respect your resilience. I&#8217;m here to support you any time you need.</p></div><p>In that story, did I help Ryan with his problem or manipulate him? All I wanted for him was a sense of <a href="https://www.youtube.com/watch?v=1SfmmuC9IWs">autonomy, mastery and purpose</a>&#8212;classic sources of motivation and self-actualization&#8212;and I knew the most plausible route to that would require gaining Bob&#8217;s trust. I listened closely and came to understand (in my mind) what Ryan needed and gave him advice on how to get that. Seems fine, but let&#8217;s talk about my <em>intent.</em></p><p>As project manager, I had massive incentives to see work getting done on schedule (career growth, money). Whether or not I was explicitly, consciously thinking about that motivation, it still decided most of my actions. I knew Bob&#8217;s micromanaging proclivities and had previously made attempts to fix the issue. Knowing the root cause was beyond my influence, I was &#8220;playing with the hand I was dealt.&#8221; This blow up was just another hurdle between me and my ultimate goal of a happy team that finished projects on time&#8230;so how could I get Ryan to put this behind him (like I myself did previously) and get back to work?</p><ol><li><p>Before the incident, accrue an empathetic persona. Speak frequently on the importance of building relationships and the &#8220;human&#8221; side of making software.</p></li><li><p>After the incident, make the offended party feel heard and respected. Ask questions, give them space to say their piece, and display active listening with the likes of &#8220;<a href="http://sourcesofinsight.com/agree-build-and-compare/">agree, build, compare.</a>&#8220;</p></li><li><p>Use the subtle cues and view points you hear from the other person to steer the conversation. Plant the idea in their head that what they desire (and why this incident was so inflammatory for them) is autonomy, and that the environment is as much to blame for the lack of it as the person.</p></li><li><p>Leverage the trust you&#8217;ve accrued and the existing power dynamic to offer &#8220;sage&#8221; advice on how to get autonomy: prove you can be trusted to execute tasks superlatively and can handle direct feedback when needed.</p></li></ol><p>That was quite the song and dance to basically say &#8220;suck it up and get back to work&#8230;it&#8217;ll (hopefully) work out eventually.&#8221; Viewed through the lens of my own personal goals and intent, I didn&#8217;t just commiserate and advise&#8230;I actively manipulated; it was just cloaked in the language of empathy and understanding.</p><h2><strong>Self Deception is a Defense Mechanism</strong></h2><p>Was this just a case of what Radical Candor calls &#8220;manipulative insincerity?&#8221; At no point during the exchange above was I plotting to get what <em>I</em> wanted (work getting done, no drama). I thought I was focused on Ryan and how to help him make the best out of the situation.</p><p>Therein lies the self-deception: I knew even in the heat of the moment that what was really needed was fixing Bob&#8217;s micromanagement issues&#8212;one way or another&#8212;or else issues like this would multiply. Saying I was just helping Ryan understand his situation and find a way forward is how I justified to myself the original betrayal of leaving the hard problem untouched (Bob) and focusing on the more pliable person (Ryan).</p><p>My ego needed that excuse, otherwise I would have to confront either the limits of my efficacy (I knew I couldn&#8217;t fix Bob) or my self-preservation instinct (I need this work done, which means I need this problem to go away).</p><p><strong>True empathy requires the ability to consistently remove the self from consideration&#8230;but how?</strong></p><h3><strong>Insights from Esther Perel</strong></h3><p>Esther Perel is a therapist whose podcast &#8220;<a href="https://www.estherperel.com/podcast">Where Should We Begin?</a>&#8221; features recordings of couples undergoing therapy; clips were featured on <a href="https://www.thisamericanlife.org/617/fermis-paradox/act-two-5">This American Life 617: Fermi&#8217;s Paradox, Act Two</a>. What was just some idle background noise while I was at the gym turned out to be the key insight in answering this question.</p><p>In the episode, Esther is counseling a couple where the wife discovered her husband had been cheating on her &#8220;widely, and compulsively&#8221; for decades. She wanted to stay together if at all possible, and keep all the good things in their life: kids, grandkids, etc. Turns out that being lied to for decades makes it hard to move forward.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;95138b97-9952-4ef5-b375-6f3ad50f8bbf&quot;,&quot;duration&quot;:null}"></div><p>From that point forward the whole session is about getting the husband to actually acknowledge the pain his wife is feeling, <em>without </em>talking about himself. There are flashes where he seems to understand this, but then lapses into talking about himself and what <em>he</em> did.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;3a111c10-8320-4c24-94a4-a69bdc240ffb&quot;,&quot;duration&quot;:null}"></div><p>It was in that I realized one of the ways to solve my problem was to check my language. When speaking in a supposedly empathetic situation, can I say what I need to say without invoking myself: the way I feel, my actions, or my experiences? For example, if I am trying to communicate &#8220;I understand&#8221; by sharing my own past experiences (as a sort of conversational compare-and-contrast), then I may be slipping into the empathy-as-influencing-tool trap.</p><h2><strong>Keeping Yourself Honest</strong></h2><p>When empathy is used as a <em>tool</em>, it becomes the vehicle by which you create an emotional context ripe for manipulation and abuse. This is a feature, not a bug. In a normal relationship between equals, the closer you become the more vulnerable you are&#8230;the more each can inflict great pain or great joy upon the other. It can be a wonderful experience with the right intentions.</p><p>As much as I am agonizing over this issue, and trying to get you to do the same, there is truth in the quip &#8220;a spoonful of sugar makes the medicine go down.&#8221; As a manager you will need to influence your team to do things that may not be their first instinct or their most preferred path forward. Your job is to find the intersection of what each individual needs and what the company needs.</p><p>The intimacy you breed will ultimately conceal the power dynamics underlying your influence&#8230;from your reports as well as yourself. It is a slippery slope from a well-meaning and emotionally aware leader to manipulative sociopath. If you fear this down slide as much as I do, consider adding some self-checks to your personal event loop:</p><ol><li><p><strong>The Esther Perel Check</strong>: after one-on-ones, take a moment to reflect on the conversation and whether the focus was primarily on <em>you and your experiences </em>or the other person in the room&#8230;was that focus reflected in the language?</p></li><li><p><strong>The Crucial Conversations Check</strong>: before an important meeting or conversation, ask yourself &#8220;what do I want? How would I act if that was truly what I am after?&#8221;</p></li><li><p><strong>The Peer Check:</strong> find someone removed from your workplace (a mentor or even a therapist) to talk through tricky situations or replay important conversations. It takes a really honest friend to say &#8220;lol, are you a sociopath?&#8221; but a dispassionate professional can easily gut-check these things.</p></li></ol><p>The proliferation of self-help and people management literature aimed at improving EQ has democratized access to <em><strong>very</strong></em> effective tools for influencing others. Intent makes all the difference; make sure you use your super powers for good.</p><div><hr></div><p>If this article spoke to you, consider reading <a href="https://www.amazon.com/Leadership-Self-Deception-Getting-Out-Box/dp/1523097809">Leadership and Self-Deception</a>. Ultimately what I described here is the act of &#8220;getting out of the box&#8221; from that book, and it wasn&#8217;t until after I started writing this post and doing background research that I found this gem&#8230;it could have saved me quite a lot of pain.</p>]]></content:encoded></item><item><title><![CDATA[3 Building Blocks for an Effective Meeting]]></title><description><![CDATA[I spend a majority of my time in meetings as a manager (and even in the past as a senior IC).]]></description><link>https://lolno.com/p/3-building-blocks-for-an-effective</link><guid isPermaLink="false">https://lolno.com/p/3-building-blocks-for-an-effective</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 19 Apr 2020 14:39:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GdEq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GdEq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GdEq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 424w, https://substackcdn.com/image/fetch/$s_!GdEq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 848w, https://substackcdn.com/image/fetch/$s_!GdEq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 1272w, https://substackcdn.com/image/fetch/$s_!GdEq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GdEq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png" width="1024" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:1024,&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;: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_!GdEq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 424w, https://substackcdn.com/image/fetch/$s_!GdEq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 848w, https://substackcdn.com/image/fetch/$s_!GdEq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.png 1272w, https://substackcdn.com/image/fetch/$s_!GdEq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e9e3ce2-defd-4705-9cf3-677a234a5778_1024x576.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 aria-hidden="true" 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><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><span>I spend a majority of my time in meetings as a manager (and even in the past as a senior IC). </span><a href="https://www.youtube.com/watch?v=NHPUnXhyZH4">Like Jack Donaghy, I aspire to be featured in Meeting Magazine</a><span>. Running effective meetings is not just a point of personal pride&#8212;I deliver most of my impact by pushing the whole group forward. Ensuring everyone is aligned around a single direction is my top priority; building support for that direction </span><em>must </em><span>be conducted in the open to establish </span><a href="https://en.wikipedia.org/wiki/Procedural_justice">procedural justice</a><span>. Despite their necessity and prevalence, I attend a huge number of meetings that are duds.</span></p><p>Hosting meetings with 3 or more people is a little bit of a dark art. Unlike a 1-on-1, larger group settings don&#8217;t benefit from spontaneity. The group gets side tracked, talks in circles, and by the end of the meeting no one is sure what was accomplished. The fix is <strong>structure</strong>. As the host, you establish structure by deciding in advance the <em>topics</em> of the meeting, the <em>desired outcomes</em> for each of those topics, and the <em>techniques</em> you will use to achieve those outcomes. I&#8217;m avoiding calling this an agenda because just having an ordered list of discussion topics is not enough; you need all three elements to get the most out of a large meeting.</p><p>This involves a certain amount of regimentation. Structured meetings won&#8217;t feel very natural, and you&#8217;ll lose a good dose of socialization. You may feel reluctant to take charge with a group of your peers, or as is often the case with larger meetings: members of your management chain. If your team has a more egalitarian culture, the whole idea of structure will seem out of place&#8230;like trying to use <a href="https://en.wikipedia.org/wiki/Parliamentary_procedure">parliamentary procedure</a> to pick a dinner spot with friends. I promise it&#8217;s not that awkward, and your meeting participants will thank you for taking the lead. To understand why, try to get in the head of someone invited to your meeting:</p><ul><li><p><strong>They&#8217;re trying to be helpful.</strong> They know you invited them for a reason and want to live up to your expectations&#8230;how do you make it obvious what you want from them?</p></li><li><p><strong>They&#8217;re trying to perform.</strong> With a large group present, meeting participants will feel pressure to put their best foot forward&#8230;how can you help them avoid embarrassment?</p></li></ul><p>Structure is the way you can help participants perform, while hopefully getting something done yourself at the same time!</p><h1>Topics</h1><p>Start by figuring out what you want to address in the meeting e.g. &#8220;annual employee survey results.&#8221; While it is possible to cover multiple topics in a single sitting, you will get better participation if you stick to one item. Assume your participants will need to spend some time preparing for the meeting&#8212;with fewer topics to prepare, they will come ready to make higher-quality contributions.</p><p>Consider whether or not the topic requires a significant amount of context, or requires participants to wade into a lot of technical details. If so, provide pre-work in the form of references. You may end up spending half of the meeting just getting everyone up to speed anyways.</p><p>Standing staff meetings usually have multiple topics that need immediate action, so you won&#8217;t be able to uphold the single-topic recommendation in all situations. That&#8217;s just fine, it simply makes the <em>outcomes</em> and <em>techniques</em> even more important.</p><h1>Outcomes</h1><p><span>With your topic(s) selected, the next step is to determine your desired outcome. In my experience </span><em>most</em><span> meeting topics will fit into 1 of 6 categories:</span></p><ol><li><p><strong>Sharing information</strong> e.g. presenting annual employee survey results and bringing new-joiners up to speed on results from previous years.</p></li><li><p><strong>Collective brainstorming</strong> e.g. coming up with different options for addressing the problems identified in survey responses.</p></li><li><p><strong>Providing input</strong> e.g. obtaining opinions and rationale on a proposed program for increasing employee engagement.</p></li><li><p><strong>Making decisions</strong> e.g. finalizing the actions each member of the management team will take as part of the new engagement program.</p></li><li><p><strong>Building capacity</strong> e.g. training everyone on the basics of analyzing survey results with <a href="https://jupyter.org/">Jupyter</a> so they can form their own conclusions and contribute to a later <em>collective brainstorming</em> meeting.</p></li><li><p><strong>Building community</strong> e.g. celebrate improvements from last year&#8217;s results with a team social.</p></li></ol><p>It is also possible to move through multiple outcomes in a single meeting i.e. sharing a new problem, brainstorming how to solve it, and deciding on a course of action. The key thing is to call out the distinct phases to the conversation; preventing attendees from getting ahead of themselves, making room for everyone to contribute, and ensuring you leave the meeting with </p><h1>Techniques</h1><p>Now that you have a list of topics, and each topic mapped to the desired outcomes, you have 80% of the recipe for a successful meeting. If you stop here then you&#8217;re already going to have a significantly more effective and enjoyable meeting for everyone involved. To get the final 20%, you must map the desired outcomes to techniques suited for achieving those results.</p><ul><li><p>Sharing information: presentations and reports (do you really need a meeting for this?), &#8220;ask the expert&#8221; Q&amp;A</p></li><li><p>Collective brainstorming, split into pairs, <a href="http://agilecoffee.com/leancoffee/">lean coffee</a>, drawing flowcharts i.e. process/value stream/workflow mapping,</p></li><li><p>Providing input: <a href="https://www.nngroup.com/articles/dot-voting/">dot voting</a>, <a href="https://medium.com/swlh/the-silent-meeting-manifesto-v1-189e9e3487eb">silent meetings</a>, <a href="https://en.wikipedia.org/wiki/Fishbowl_(conversation)">fishbowl meetings</a></p></li><li><p>Making decisions: <a href="https://www.lucidmeetings.com/glossary/gradients-agreement">gradients of agreement</a>, <a href="https://en.wikipedia.org/wiki/Straw_man_proposal">straw-man proposals</a>, <a href="https://www.artsfwd.org/6-types-of-group-decisions/">setting decision-making rules</a></p></li><li><p>Building capacity: <a href="https://betterexplained.com/articles/adept-method/">ADEPT model</a>, <a href="https://codelabs.developers.google.com/">hands-on self-directed learning i.e. codelabs</a></p></li><li><p>Building community: <a href="https://soapboxhq.com/blog/employee-motivation/employee-recognition-creating-a-culture-of-kudos">kudos</a>, <a href="https://en.wikipedia.org/wiki/Lightning_talk">lightning talks</a></p></li></ul><p>Picking a technique avoids opening a topic, just to have the only directive be &#8220;now&#8230; discuss!&#8221; Lacking any guidance, participants aren&#8217;t sure how to contribute, and you&#8217;re basically handing control of the meeting to the dominant personalities in the room&#8212;squelching the </p><h1>Putting it all together: The Structured Meeting</h1><p>Share the topics, outcomes, and techniques in advance; either via a formal agenda or just jotting a note in the meeting invite. Once you&#8217;re in the room, open each topic by explaining the desired outcome and the basic approach the group will take to get there. As the meeting progresses, use the structure to keep participants on topic and from getting lost in the weeds. You&#8217;ll be empowered to call people out directly as the facilitator of a structured meeting because everyone knows what is expected at a given moment.</p>]]></content:encoded></item><item><title><![CDATA[Mastering the Phone Screen]]></title><description><![CDATA[What&#8217;s the most dreaded interview in the standard software engineering hiring funnel?]]></description><link>https://lolno.com/p/mastering-the-phone-screen</link><guid isPermaLink="false">https://lolno.com/p/mastering-the-phone-screen</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Sun, 12 Apr 2020 14:33:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!p--N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p--N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p--N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 424w, https://substackcdn.com/image/fetch/$s_!p--N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 848w, https://substackcdn.com/image/fetch/$s_!p--N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 1272w, https://substackcdn.com/image/fetch/$s_!p--N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p--N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp&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;:451010,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lolno.com/i/205059176?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p--N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 424w, https://substackcdn.com/image/fetch/$s_!p--N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 848w, https://substackcdn.com/image/fetch/$s_!p--N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 1272w, https://substackcdn.com/image/fetch/$s_!p--N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7801890-359d-49a6-94e8-60962e667f9f_2400x1350.webp 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 aria-hidden="true" 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><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>What&#8217;s the most dreaded interview in the standard software engineering hiring funnel? No no, not as an applicant&#8230;but an interviewer! Is it the technical? Coming up with questions that are neither brain teasers nor walks in the park? The team-fit? What do you even ask to get the right signals without injecting bias?</p><p>None of the above! I think it&#8217;s the phone screen. In a phone screen you have limited time to make a judgment about a candidate&#8230;someone you have just met and know practically nothing about. Worse, for many of us, phone screens are our first foray into interviewing. Junior and mid-level engineers are given phone screens as a practice ground before being allowed into on-site technicals. This folly aside, the phone screen touches <em>every</em> candidate in your pipeline and thus determines who even gets a chance to show what they&#8217;re capable of in the later rounds. Getting the phone screen wrong can have dire consequences for your hiring pipeline.</p><h2><strong>Is this candidate worth your time?</strong></h2><p>Each stage of an hiring funnel is designed to gather a specific type of data about the candidate, and that guides how those conversations are structured. Unlike later stages, like the technical interview or the team-fit interview, the phone screen does not have an obvious main topic. The consequence is that many interviewers have a natural inclination to treat the phone interview as a little bit of everything, capturing a very incomplete picture of the candidate. Without enough information to make a firm decision, our natural curiosity takes over and the candidate is let through to the next stage.</p><p>Such false positives can be a tremendous risk:</p><ol><li><p>It wastes the time/resources of both parties, as the next stage is usually a technical. For the candidate this requires preparation, taking time-off, and usually some travel. For the company, this can be 8+ hours of lost productivity building and executing the interview.</p></li><li><p>The candidate is one step closer to a job offer, but you haven&#8217;t actually made any progress confirming they are the right person for the job! The <a href="https://hackernoon.com/hiring-woes-the-costs-of-bad-hires-and-how-to-avoid-them-413395b5ef3">cost</a> of a <a href="https://theundercoverrecruiter.com/5-programmers-cost-you-big/">bad hire</a> is <a href="https://sneakerheadvc.com/the-most-dangerous-person-in-silicon-valley-8c6feb73a713">astronomical</a>, so making sure each stage of the hiring funnel is <em>actually </em>contributing to making better decisions is more than just sound economics.</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_!oDbg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oDbg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 424w, https://substackcdn.com/image/fetch/$s_!oDbg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 848w, https://substackcdn.com/image/fetch/$s_!oDbg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 1272w, https://substackcdn.com/image/fetch/$s_!oDbg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oDbg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png" width="1200" height="1011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1011,&quot;width&quot;:1200,&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;:false,&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_!oDbg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 424w, https://substackcdn.com/image/fetch/$s_!oDbg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 848w, https://substackcdn.com/image/fetch/$s_!oDbg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 1272w, https://substackcdn.com/image/fetch/$s_!oDbg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964a6f36-04e8-4685-a452-e81d79c5a32f_1200x1011.png 1456w" sizes="100vw"></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 aria-hidden="true" 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><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>Every stage of the hiring funnel has a different goal that can be used to frame the conversation. The technical and team-fit conversations are about <em>getting to &#8220;yes</em>.&#8221; You should leave such interviews convinced the candidate is the one for the job, that you would unequivocally answer &#8220;yes&#8221; when asked &#8220;should we hire this person?&#8221; If you leave those meetings a &#8220;maybe,&#8221; &#8220;I don&#8217;t know,&#8221; or &#8220;more information required,&#8221; most companies will ere on the side of caution and pass on the candidate.</p><p>The phone screen is different. The conclusion of a phone screen is not &#8220;yes&#8221; or &#8220;no&#8221;&#8230; it is &#8220;no&#8221; or &#8220;not no.&#8221;</p><p>Bad phone screens happen when interviewers ask questions that are about getting to &#8220;yes,&#8221; rather than getting to &#8220;not no.&#8221; There isn&#8217;t enough time to build an adequate picture of the candidate, and the medium is poorly suited for the nuanced conversations that build up the confidence required to say &#8220;yes.&#8221; That means the data you extract from the phone screen is unlikely to be useful in making the final hiring decision as later interviews will do a much better job of revealing the pertinent facts about a person.</p><p>Therefore the phone screen serves to gate access to the more intensive technical and team-fit interviews, that&#8217;s it. It answers the question, &#8220;Is this candidate worth our time?&#8221;</p><p>A more altruistic way to frame this is, &#8220;Would this candidate have a positive experience with our interview process?&#8221; If someone is just going to get steamrolled by the technical prompts in the on-site, or feel utterly out of their depth in the behavioral questions from the hiring manager, then save them some humiliation and pass now.</p><h1><strong>Getting to &#8220;Not No&#8221;</strong></h1><p>I won&#8217;t suggest a generic template for all phone screens, <a href="https://lethain.com/designing-interview-loops/">the most effective interview loops are </a><em><a href="https://lethain.com/designing-interview-loops/">designed</a> </em>and consider not only the requisite job skills for the position, but also company values and culture. What I outline here are the behaviors you can use as an interviewer to execute the design in a way that ensures the phone screen pulls its weight.</p><h2><strong>Keep it short and sweet</strong></h2><p>Phone screens should take 30-45 minutes at most, and feature a single interviewer&#8212;no panels. By virtue of coming early in the hiring funnel, you will be doing<em> a lot </em>of them. This also applies to the candidates who will be having similar calls with many other companies simultaneously. Long, panel-based phone screens run counter to their proposed value of cheaply disqualifying candidates that would struggle in later stages of the interview.</p><p>Phone screens can be kept on time by limiting them to a single purpose: assessing the candidate. They are not about explaining the role, bootstrapping the relationship, or preparing the candidate for the interview process&#8230;<strong>that should happen before the phone screen</strong>.</p><p>Therefore you should always precede phone screens with a &#8220;warm up&#8221; call. The warm up call is your first high-fidelity moment of contact with the candidate&#8212;giving you an opportunity to start selling the position, answer questions about the company, and explain the interview procedure. This post isn&#8217;t about hosting warm-up calls or techniques for closing however: try <a href="https://sockpuppet.org/blog/2015/03/06/the-hiring-post/#warmup">this</a> or <a href="https://firstround.com/review/make-stronger-offers-to-engineering-candidates-and-boost-your-closes/">this</a> or <a href="https://blog.usejournal.com/this-is-how-to-reduce-employee-turnover-and-hire-top-performers-ff93202745fd">this</a> if you&#8217;re interested.</p><p>Once you have 30-45 minutes of time dedicated to assessing the candidate, the next step is being realistic with what you can accomplish in that time window. In my experience you can fit 4-5 simple technical questions (e.g. &#8220;Explain the difference between a process and a thread.&#8221;), OR 1-2 behavioral questions (e.g. &#8220;Tell me about a time you ____&#8221; and follow-ups).</p><p>Without role-specific guidance, my general approach is to blend the two as follows:</p><ul><li><p>Open with a behavioral question based on something on their resume. People like talking about themselves, it will make them comfortable and it shows you&#8217;re interested. As a secondary benefit, you get a quick read on how much of their resume is bluster and how much is legit.</p></li><li><p>Move on with 3-4 technical questions. Never make them up on the spot, and ideally practice them on a peer before trying them &#8220;in production.&#8221;</p></li><li><p>If there is any time left over, ask if they have any questions.</p></li></ul><p>The hardest part about this format is it will feel awkward. Transitioning cleanly and conversationally between different prompts is hard, and the result is it will feel a bit like recitation. If the warm-up call has set the context correctly, then the candidate will come in expecting this and no harm, no foul. Keep practicing, as masters of the craft will be able to keep the entire thing conversational, and thereby directly contribute towards closing the candidate.</p><h2><strong>Remove yourself from the conversation</strong></h2><p>The phone screen is supposed to be about them, not you. It&#8217;s very easy to slip into a call where the real thing being tested is how well someone can hold an engaging conversation. Signs you may be taking over the conversation include:</p><ul><li><p><strong>Faux active listening</strong>: you repeat back what you heard the candidate say, but you &#8220;clean it up&#8221; by applying your own knowledge to remove rough edges.</p></li><li><p><strong>Long speeches</strong>: you find yourself giving long explanations, usually in response to an implied question, as a way of sharing your ideology towards removing some of the mystery about yourself and the company.</p></li></ul><p>The result of either is the same: it pulls the center of attention away from the person being interviewed, and onto you. It&#8217;s an <a href="https://hbr.org/1995/09/the-power-of-talk-who-gets-heard-and-why">unconscious assertion of dominance</a>, and the candidates that pick up on this shift and play along with the appropriate rejoinders and conversational norms are likely to receive high marks from you in interview feedback. You probably won&#8217;t even realize the real person you&#8217;re evaluating in the feedback is yourself. This is a recipe for unconscious bias.</p><p>The root of the problem is that the power-dynamic in any interview strongly favors the interviewer. <a href="https://www.researchgate.net/publication/279886194_Socially-mediated_syntactic_alignment">Humans are biologically wired to key off power signals, even adopting similar manners of speech</a>. Beyond that, it&#8217;s just sound strategy to figure out what an interviewer likes/wants and to provide that in the conversation. By over-participating, you effectively give the candidate the answers by showing them something to imitate that they know you&#8217;ll respond positively towards.</p><p>The solution? Shut up. Stop talking and listen. Get the urge to correct them or &#8220;subtly&#8221; nudge them towards a better answer? Don&#8217;t. Let them show you what <em>they</em> know and drive the conversation. If you&#8217;re actually interested in these candidates as people and not just resources, you&#8217;ll give them the courtesy of being themselves. Then, all you need to do is determine if <em>their </em>unique skills and personality will be a boon to the team.</p><h2><strong>Be selective</strong></h2><p>50% of all candidates should fail the phone screen.</p><p>If that number sounds high, consider that even at Verve&#8212;a tiny, no-name industrial software company where I led engineering&#8212;about <em>50 people</em> made it through to the phone screen per open requisition. With a 50% pass rate, that was still 25 people x 8 hours x 3 interviewers = 600 hours of interviewing in the subsequent stages.</p><p>More than that, if &gt;50% of people are passing it&#8217;s probably because you aren&#8217;t collecting the right information about the candidate. You probably tried to figure out if they are a fit for the job, rather than if they would thrive in your interview process. There&#8217;s just no way to do that in a single sitting over the phone, and your natural curiosity likely leads you to &#8220;giving them the benefit of the doubt&#8221; and forwarding them through to the next round. You don&#8217;t want to miss out on a good candidate right!?</p><p>Instrument your hiring funnel, and keep an eye on the number of candidates that are passing. When that number crests above 50%, it&#8217;s time to conduct an investigation and figure out what&#8217;s going on in your interviews. Sometimes the cause will be benign&#8212;an uptick in recruiter-sourced candidates is likely to correspond to an uptick in phone screen success&#8212;other times it&#8217;s more serious. I call process health indicators like this &#8220;trip wires,&#8221; and they strike a balance between negligence and hyper-vigilance.</p><h2><strong>Don&#8217;t talk about experience</strong></h2><p>At first glance, it&#8217;s not obvious what sorts of questions work well over the phone. Technical questions are limited by the lack of access to a whiteboard, IDE, or other tools. If you take the advice of &#8220;removing yourself from the conversation,&#8221; than you may be inclined to ask about the candidate&#8217;s prior work. That should reveal a lot about them right?</p><p>Maybe, but it is more likely to lead to the same outcome: a feeling of uncertainty and an inclination to give them the benefit of the doubt.</p><p>The problem with asking people about their experience is that they almost certainly know more about it than you. Unless they have worked in an identical area, you don&#8217;t have enough expertise to assess the caliber of their answers. There can be no &#8220;wrong&#8221; answers when talking about experience, so you&#8217;re liable to apply your own personal judgments to their background and whether or not it is relevant to the position at hand. Instead, you need to let<em> the candidate</em> show you that their experience has prepared them for the role. This allows you to open the door to people from non-traditional and under-represented backgrounds that might be at a disadvantage under experienced-based regimes.</p><p>The sorts of questions that allow a candidate&#8217;s to apply their experiences rather than recite them, while upholding an objective standard, are also the same sorts of question that make it easy for you to shut up and listen rather than dominate the conversation.</p><p>Good technical questions for a phone screen&#8230;</p><ul><li><p>&#8230;permit a range of responses that will reflect a candidate&#8217;s knowledge. Think like a grading rubric from primary school: needs improvement, developing, proficient, accomplished, and distinguished. You-know-it-or-you-don&#8217;t questions like, &#8220;What is the signature of the copy-constructor in C++?&#8221; are a bad choice because the range of responses is binary.</p></li><li><p>&#8230;are specific and do not allow a candidate to hand-wave an answer without revealing something about their knowledge level. &#8220;Describe how decorators are defined and used in Python,&#8221; is better than, &#8220;Tell me about your level of proficiency with Python?&#8221;</p></li><li><p>&#8230;tie back to a specific job requirement. The phone screen shouldn&#8217;t feel like a CS quiz. Not going to have this person write sorting algorithms once they get hired? Then you probably shouldn&#8217;t ask about <code>quicksort</code>.</p></li><li><p>&#8230;challenge the candidate and solicit a complex response. Questions that can receive 1-sentence answers, or seem excessively trivial, will make the candidate feel like they are completing a verbal version of fizz buzz. I have actually watched someone ask a candidate, &#8220;What is an IP address?&#8221; only 30 seconds after they got done answering a 20-minute long design question.</p></li></ul><p>A question I frequently use, despite it&#8217;s surface appearance as CS trivia, is &#8220;Explain to me how a hashtable works in as much detail as possible.&#8221; The number of possible answers and levels of detail is endless, it&#8217;s just about the only data structure 100% of developers use no matter the job, and I can sit back and let the candidate drive instead of having to &#8220;pull&#8221; them through a multi-part scenario-driven question.</p><p>Technical questions aren&#8217;t the only safe haven for avoiding experiential questions. Start by picking a functional skill that is important to the job. For example building consensus is critical for senior-level developers that are expected to be change agents. Then probe the candidate to explain how that functional skill is done e.g. &#8220;What does it mean to be good at building consensus?&#8221; and &#8220;What do <em>you</em> do when you are trying to build consensus?&#8221; Candidates will have a tendency to talk in abstract, so push them to talk about what <em>they</em> would do (or have done) specifically.</p><p>Candidates who can do the job will be able to answer any of the above questions without making appeals to their experience to make their points. It shows they can apply analytical reasoning to determine the best course of action, and would be able to share that reasoning to build support and cohesion once they are in the role.</p><h1><strong>Prioritizing the Litmus Test</strong></h1><p>The software engineering interview is an evolving art, and as screening procedures have been found to be ineffective or prejudice, we have discarded them. It&#8217;s been a long time since I&#8217;ve seen companies use brain teasers, and whiteboard-centric algorithms tests seem like they might be next on the chopping block.</p><p>Phone screens, however, are unlikely to leave us anytime soon because many of the interview processes that are emerging to replace teasers, whiteboards, and algorithms are even more time-intensive. That means we need increasingly effective early-stage screening to make such time investments tenable for both the organization and the candidate.</p><p>If this is your first foray into interviewing, don&#8217;t assume it&#8217;s just a training ground before you move on to the &#8220;big leagues&#8221; of on-site technicals. The phone screen is an equally critical node in the hiring funnel; you do yourself, your employer, and your candidates a service by taking the time to master the art.</p><p>I have started referring to these types of phone screens as litmus tests (<a href="https://en.wikipedia.org/wiki/Litmus_test_(politics)">a metaphor for a practice by the same name in politics</a>). It&#8217;s a nifty short-hand to combine the mindsets of &#8220;getting to not no,&#8221; &#8220;are they worth my time?&#8221; and &#8220;will they have a positive experience?&#8221; For those that are mathematically inclined, you may prefer the expression &#8220;necessary but not sufficient.&#8221; With these first principles, you will be able to go out in the world and host effective phone screens&#8212;phone screens that are short, emphasize the candidate&#8217;s skills over their background/conversation abilities, and selective.</p>]]></content:encoded></item><item><title><![CDATA[What I Learned Creating Junction]]></title><description><![CDATA[Syncing GitHub Markdown with Confluence]]></description><link>https://lolno.com/p/what-i-learned-creating-junction</link><guid isPermaLink="false">https://lolno.com/p/what-i-learned-creating-junction</guid><dc:creator><![CDATA[Jim Hughes]]></dc:creator><pubDate>Thu, 09 Apr 2020 15:56:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EEpU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EEpU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EEpU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 424w, https://substackcdn.com/image/fetch/$s_!EEpU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 848w, https://substackcdn.com/image/fetch/$s_!EEpU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 1272w, https://substackcdn.com/image/fetch/$s_!EEpU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EEpU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://managerscraft.substack.com/i/204937653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EEpU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 424w, https://substackcdn.com/image/fetch/$s_!EEpU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 848w, https://substackcdn.com/image/fetch/$s_!EEpU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 1272w, https://substackcdn.com/image/fetch/$s_!EEpU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e35285a-36fc-48b5-8281-329efe5ce604_2000x1333.webp 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 aria-hidden="true" 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><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><a href="https://github.com/huu/junction">Junction</a> is a Python package that allows developers to publish markdown files tracked in a <a href="https://git-scm.com/">Git</a> repository to <a href="https://www.atlassian.com/software/confluence">Confluence</a>. With Junction, you can use existing Git workflows for managing code (pull requests, code review, release branches, etc) to also manage how documentation gets released to your wiki.</p><p>It&#8217;s available on PyPI as a pure-python dependency:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;5cd71d75-07dd-4f8a-b924-ce4667fe168a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">pip install confluence-junction</code></pre></div><h2>Keep your documentation by your code</h2><p>The idea for Junction came about in 2017 when I worked at <a href="https://www.twosigma.com/">Two Sigma</a>. As one the firm&#8217;s lead architects, I advocated for the adoption of <a href="https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records?ref=lolno.net">lightweight architecture decision records</a>.</p><p>Lightweight architecture decision records capture the reasoning and context behind changes to your software&#8217;s design. They work best when kept near the code they pertain to because developers will find them in the course of working, and they can be created as part of the PR introducing a change&#8212;all ensuring the pertinent context is available with minimal searching. You can see an example of this in use by the <a href="https://github.com/alphagov/govuk-aws/tree/master/doc/architecture/decisions">UK government</a>.</p><p>The problem was that over the course of years, Confluence had become the center of gravity for internal documentation and was the first place people went to find designs, best practices, and reference material. Moreover, not all documentation fits naturally into the codebase as markdown files, so many teams wished to have a single view that combined in-repo docs with richer wiki pages.</p><p>Since then I&#8217;ve seen this same problem play out again and again, everywhere I see development teams using Confluence. With some free time on my hands, and an itch to work on a side project, Junction was born.</p><div><hr></div><p>As a side project, I wanted to not only solve a problem (how do I make in-repo docs available on a wiki?) but to also broaden my horizons and try something new. I didn&#8217;t have unlimited time, and wanted to reach a reasonable level of completion in only a few weeks&#8230;hence using an entirely new language or toolkit was out of bounds.</p><p>Therefore I chose to use my current-strongest language, Python, but to try and make use of newer features and emerging standards:</p><ul><li><p>Python 3.8</p></li><li><p>Typed Python (with static type checking)</p></li><li><p>Poetry and pyproject.toml</p></li><li><p>GitHub Actions</p></li><li><p>Managing the entire project form GitHub (issues, projects, etc)</p></li></ul><p>It turned out to be quite informative! Here are my top 5 takeaways that may help you evaluate and get started with any of the above:</p><h2>1. Don&#8217;t go overboard with Python typing</h2><p>The Junction codebase uses statically typed Python everywhere, no exceptions. In fact, the requirement to type-annotate every single function signature is enforced by <a href="http://mypy-lang.org/">mypy</a> as part of a pre-commit hook and build rule. Here is an example:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;a570afc4-0ef8-4d36-a8ca-813c73b9d536&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">def markdown_to_storage(text: Optional[Union[str, bytes]]) -&gt; str:
&#9;pass</code></pre></div><p>This function converts markdown text to a string containing Confluence storage representation. The markdown text can come in as <code>None</code>, a string, or bytes. The function will handle the different argument types without complaint. Besides self-documenting how to safely use this function, it allows for static type checking.</p><p>I have lusted for static typing in Python for a long time. Witnessing brutally simple bugs slip into production because of developer-error is painful. Don&#8217;t get me wrong: Python is my primary language these days for a reason. I don&#8217;t necessarily believe statically-typed languages are inherently safer than dynamically-typed: in fact, compilers often lend developers a false sense of confidence.</p><p>That doesn&#8217;t mean type-checking is a waste of time! <strong>After I went back and added in all of the type annotations, mypy managed to find ~4 different bugs in my code! Nice!</strong></p><p>In the end, though, I do not recommend typed Python for every project under the sun.</p><ul><li><p><a href="https://www.python.org/dev/peps/pep-0544/">Typing support didn&#8217;t really reach maturity until Python 3.8</a> which is still inconsistently supported by other community projects and is less likely to be available in your runtime environment than say Python 3.7.</p></li><li><p>mypy will happily report 0 errors when your code is not fully typed, leading to overconfidence. <a href="https://github.com/HUU/Junction/blob/master/mypy.ini#L2">You need to explicitly configure mypy to disallow this.</a> Moreover, it&#8217;s very easy to accidentally let an <code>Any</code> or two into your typing, and inadvertently cause an entire critical path to essentially go unchecked, with none the wiser. This isn&#8217;t a mypy flaw, more like mixing duck-typing and static-typing is an inherently tricky task.</p></li><li><p>Trying to actually make use of Python&#8217;s fast-and-fluid duck-typing and &#8220;trust the developer&#8221; mentality is almost impossible. In fact, those aspects of the language actively fight you when statically typing and can make you very unproductive as a result.</p></li></ul><p>In effect, using Python with totally enforced static typing makes the dynamic aspect of the language a burden, while loading you up with the overconfidence of static type checking to boot.</p><p>My advice? The choice is not between dynamically typed or statically typed Python. You should view static typing as a <em>safety </em>tool: it makes code safer to change by pointing out unexpected side-effects early, and documents your code in a way that is very accessible to other contributors. Does your project actually have a requirement for that level of safety? If yes, then typing is for you&#8230;and even then, maybe only the parts of your project that are relatively stable and mature.</p><h2>2. New Python features have a long bake time</h2><p>I normally use a fairly standard Python project layout which makes use of <code>setup.py</code>, <code>requirements.txt</code>, <code>src/</code>, <code>test/</code>, <code>pip</code>, and <code>virtualenv</code>. Before jumping in with my usual boilerplate, I decided to take a look around because I knew some exciting things were on the horizon back in 2017 when I last assessed the environment management and packaging landscape.</p><p><a href="https://pipenv.pypa.io/en/latest/">Pipenv</a> and <code>Pipfile</code>&#8216;s were high on my list for solving the pains of using a mosaic of different tools and configs across dev, test, and release. However that project has two gaps: (1) you still need to maintain <code>setup.py</code> if you intend to release, and (2) you can&#8217;t use pre-release packages without permitting pre-release packages for <em>everything</em>.</p><p>No matter, what other options exist for leaving behind <code>setup.py</code> and friends? PEP518 and <code>pyproject.toml</code>. Nothing makes this new standard more appealing and user friendly than <a href="https://python-poetry.org/">Poetry</a>. From getting setup with the right version of Python, to activating my environment and resolving dependencies&#8230;it was painless. With Poetry in place, I could lean into the use of <code>pyproject.toml</code> and avoid littering the root of my project with one-off <code>ini</code> files!</p><p>Despite years of maturation and community adoption, not all projects have picked up support for this new configuration option: Flake8 still uses <code>.flake8</code>, mypy requires <code>mypy.ini</code>, and even Tox only has <a href="https://tox.readthedocs.io/en/latest/example/basic.html#pyproject-toml-tox-legacy-ini">partial support</a>.</p><p>These little compatibility land mines pop up in other arenas as well. Python 3.8 adds support for assignment expressions (<code>:=</code> AKA <a href="https://www.python.org/dev/peps/pep-0572/">PEP572</a>), but both <code>pyflakes</code> and <code>pycodestyle</code> lack support and will report false-negatives..unless you&#8217;re using the latest pre-release builds.</p><p>All annoyances and no major road blockers, but the experience has left me doubtful. When you choose to develop in Python, you must acknowledge how critical these community-supported tools are to providing a fully-fleshed out SDLC. Python 3.8 is 6 months old at this point, and <code>pyproject.toml</code> has been around for ~3 years.</p><p>This paints a pretty bleak picture about how long advancements in Python take before they can be adopted and embraced by developers at large. So what&#8217;s to be done? Well, if you can, start contributing to these tools yourself! PyCQA and PyPA may sound super-official, but they aren&#8217;t paid endeavors. It&#8217;s still just people like you and me largely <em>donating </em>their time to creating amazing tools that make our favorite programming language more usable. You can make a difference by lending a hand. In fact, the next release of pyflakes and pycodestyle with full 3.8 support <a href="https://github.com/PyCQA/pyflakes/issues/520">appears to be orchestrated by a very helpful community member</a>.</p><h2>3. OpenAPI is still painful</h2><p>Confluence Cloud publishes an OpenAPI (formerly known as Swagger) specification for their API. Just finding that specification was an exercise in frustration, because it&#8217;s hidden behind a link in a &#8220;&#8230;&#8221; menu in the corner of their website.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GHE5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GHE5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 424w, https://substackcdn.com/image/fetch/$s_!GHE5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 848w, https://substackcdn.com/image/fetch/$s_!GHE5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 1272w, https://substackcdn.com/image/fetch/$s_!GHE5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GHE5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png" width="1268" height="344" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:344,&quot;width&quot;:1268,&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_!GHE5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 424w, https://substackcdn.com/image/fetch/$s_!GHE5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 848w, https://substackcdn.com/image/fetch/$s_!GHE5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.png 1272w, https://substackcdn.com/image/fetch/$s_!GHE5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff6401e-705e-45a6-a2da-3bef980ba6b8_1268x344.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 aria-hidden="true" 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><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>Once I found the actual spec I thought my troubles were over and I could get a fully working API client with the help of <a href="https://github.com/OpenAPITools/openapi-generator">OpenAPI Generator</a>. I mean, that&#8217;s the entire value proposition of OpenAPI isn&#8217;t it? And surely things have gotten better since when I last tried to this with Swagger (OpenAPI 2.0)?</p><p>lol, no.</p><ol><li><p>The Confluence Cloud API spec has bugs in it. It&#8217;s massive, clocking in at 13,000 lines of JSON. It&#8217;s clearly generated from the actual API stubs in their server code, and whatever is generating this is broken.</p></li><li><p>After you manually fix the bugs, OpenAPI Generator doesn&#8217;t produce valid Python code. It doesn&#8217;t put down the proper imports for handling the object hierarchy found inside Confluence&#8217;s API.</p></li><li><p>Apparently not everyone agrees with the direction of OpenAPI Generator, so the original <a href="https://github.com/swagger-api/swagger-codegen">Swagger Codegen</a> is still maintained and under active development, however the code it generates is even more broken. Open source fragmentation is cool.</p></li></ol><p>In the end I made <a href="https://github.com/HUU/Junction/tree/master/src/junction/confluence">my own lightweight API client</a>. It took forever and was mostly mechanical&#8230;sounds like a job for codegen ?. OpenAPI still has a ton of potential, but the codegen feels like the same toy/tech demo it was back in 2016 when I tried it last. Without reliable codegen, I honestly see very little value in publishing OpenAPI specs for my own API&#8217;s&#8230;it&#8217;s just setting my users up for frustration.</p><h2>4. GitHub Actions are great; YAML is not</h2><p><a href="https://github.com/features/actions">Actions</a> are the new(ish) CI/CD offering from GitHub built in to your repository. The reception of Actions has been universally positive and enthusiastic in my extended social circle, so I was excited to try it out. It definitely lives up to the hype, here are my favorite parts</p><ul><li><p>There is a large (and growing) <a href="https://github.com/marketplace?type=actions">library of community-contributed actions</a> which make building out your workflow almost effortless.</p></li><li><p>It&#8217;s <a href="https://github.com/pricing">free for public repositories</a>, and you get up to 2000 minutes/month for private repositories&#8230;which is way more than enough for hobby projects.</p></li><li><p>Sooo fast; <a href="https://github.com/huu/junction/actions">with only ~10s per job spent on setup/teardown</a>.</p></li><li><p>Beautiful <a href="https://help.github.com/en/actions">documentation</a>, seriously a gold standard that leaves nothing to the imagination. No need to spin up an experiment just to see how something works.</p></li></ul><p>In spite of my new-found love for Actions, it&#8217;s hampered by writing workflows in YAML, software engineering&#8217;s most ubiquitous <s>accomplishment</s> mistake. GitHub provides a competent web UI for editing workflows, but there is an upper-bound on how usable any YAML-driven tool can be in my opinion. For any sufficiently expressive configuration system (i.e. CI pipelines), the YAML devolves into a domain-specific language. This sort of &#8220;meta programming&#8221; is a poor replacement for a full-fledged imperative programming language that has mature IDE support and the possibility of running locally. Even when keeping your workflows lightweight and deferring the heavy lifting to in-repo scripts, you&#8217;ll still be keeping the workflow YAML specification close at hand to muddle through ever so slowly.</p><p>None of this is really the fault of GitHub Action&#8217;s, and maybe just an expression of some pent-up frustration with Kubernetes, but the nail in the coffin is that there is no way to run the workflows locally (or directly form the web editor) without pushing a commit. Having a way to test the workflows quickly tightens the feedback loop and eases the pain associated with idiosyncratic YAML DSL&#8217;s.</p><p>Matters of taste aside, I still recommend Actions to everyone, even if that means migrating your project from another source control platform.</p><h2>5. Click is my new goto tool for CLI&#8217;s</h2><p>I make a lot of CLI&#8217;s. They are a quick way to provide functionality to a developer, as well as a cheap &#8220;API&#8221; when something more serious is overkill (see: CI/CD workflows). The usability of a CLI is largely a function of its presdictable (and forgiving) parsing of arguments/flags, and towards that end pretty much every language has a goto library for argument parsing:</p><ul><li><p>Java has <a href="http://commons.apache.org/proper/commons-cli/">Apache Commons CLI</a>, which I despise.</p></li><li><p>C# has <a href="https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/how-to-write-a-simple-cmdlet?view=powershell-7">PowerShell cmdlets</a>, which I enjoy.</p></li><li><p>Python has <a href="https://docs.python.org/3/library/argparse.html">argparse</a>, which I find toilsome.</p></li><li><p>Bash has <a href="https://linux.die.net/man/1/getopt">getopt(1)</a>, which I use for simple cases.</p></li></ul><p>The <a href="https://github.com/huu/junction#usage">CLI for Junction is fairly tricky</a> to use so I wanted strict parsing and detailed help text, and to do so with <code>argparse</code> alone would have been a large effort. After a short search, I stumbled upon <a href="https://click.palletsprojects.com/en/7.x/">Click</a>.</p><p>I will never look back.</p><p>Click made producing Junction&#8217;s CLI take less than 2 hours&#8230;and that includes figuring out how to use the library. My CLI has gloriously detailed help text, as well as clean output with ANSI coloring on supported terminals! <a href="https://github.com/HUU/Junction/blob/master/src/junction/cli.py">The whole thing fits in less than 200 SLOC</a>. Seriously, I have never felt &#8220;good&#8221; about any CLI I have ever released because I <em>know</em> they are full of bugs and edge cases, but are <em>juuust </em>good enough to pass. With Click I am confident this CLI is going to work, and if I want to unit test the hell out of it, <a href="https://click.palletsprojects.com/en/7.x/testing/">I can with ease</a>.</p><div><hr></div><h2>High-quality side projects are hard</h2><p>The hardest part about this entire experience wasn&#8217;t grappling with these unfamiliar elements&#8230; it was the basics of maintaining good developer hygiene: writing good issue descriptions, leaving useful commit messages, documenting architecture, and unit testing. In fact I probably failed at 3/4 of the above because the only thing I really did was <a href="https://github.com/HUU/Junction/wiki/Junction-Architecture">document the architecture</a> (and it felt like pulling teeth despite being one of my favorite activities at my day job).</p><p>What was missing? Well obviously not everyone finds the above intrinsically enjoyable. More than that though, what I felt missing was a feeling of community. What motivates me to do any of these hygiene tasks well and to do them regularly is the obligation I feel to my peers and the sense of pride I receive as a craftsman.</p><p>I am able to draw a few fundamental takeaways from this whole experience then:</p><ol><li><p><strong>Don&#8217;t sweat the small stuff, just do what you can.</strong> If not writing enough unit tests stopped me from starting (or finishing) this project I would have missed out on a wealth of experience.</p></li><li><p><strong>When starting a new project, prioritize building a sense of team.</strong> Shared commitments and interpersonal morality are strong motivators for all the things that keep development projects healthy i.e. documentation, testing, and communication.</p></li><li><p><strong>As a hiring manager, don&#8217;t hold a lack of side projects against someone.</strong> If I had a child, a spouse, or other commitments there is no way in hell this project would have happened&#8230;it was a slog. GitHub and Stack Overflow profiles can be useful, but at most they can be used to abridge the interview process..never to filter someone out.</p></li></ol>]]></content:encoded></item></channel></rss>