<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://rugg.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://rugg.io/" rel="alternate" type="text/html" /><updated>2026-08-22T20:34:18+00:00</updated><id>https://rugg.io/feed.xml</id><title type="html">Matt Ruggio</title><subtitle>Writing about software engineering, system design, and the strategy behind technical decisions.</subtitle><author><name>Matt Ruggio</name><email></email></author><entry><title type="html">Necessary Is Not Strategic</title><link href="https://rugg.io/2026/08/21/necessary-is-not-strategic/" rel="alternate" type="text/html" title="Necessary Is Not Strategic" /><published>2026-08-21T00:00:00+00:00</published><updated>2026-08-21T00:00:00+00:00</updated><id>https://rugg.io/2026/08/21/necessary-is-not-strategic</id><content type="html" xml:base="https://rugg.io/2026/08/21/necessary-is-not-strategic/"><![CDATA[<p>One of the easiest mistakes to make in software strategy is confusing necessary work with strategic work. A capability can be essential to your product without being strategically valuable to build. That distinction matters because every organization operates with finite engineering time, capital, and attention. If we treat every important capability as something we should own ourselves, we can spend enormous amounts of energy recreating things that only bring us up to the standard the market already expects.</p>

<p>I did not arrive at this distinction because I consistently made the right build-versus-buy decisions. Some of the clarity came from looking back at systems I helped build and asking whether owning them actually made the business better at the things that mattered most. Earlier in my career, working in print, we built a considerable amount of custom software around running the business. In hindsight, I wonder whether we should have leaned more heavily on the job-shop systems already available and reserved more of our engineering capacity for the parts of the business where we could truly differentiate. We sometimes treated <em>specific to our business</em> as though it meant <em>strategic to our business</em>. Those are not the same thing.</p>

<p>That experience helped shape a question I still use today:</p>

<blockquote>
  <p><strong>If we build this successfully, will it move us ahead of the market, or will it simply help us catch up?</strong></p>
</blockquote>

<p>I think about that question in terms of <strong>competitive advantages</strong> and <strong>competitive disadvantages</strong>. A competitive advantage meaningfully differentiates the product. It might be a capability competitors do not have, an area where the company has unique expertise, or something that deepens the reason customers choose you. A competitive disadvantage is different. It is not necessarily bad or unimportant. In many cases, it is required. The disadvantage is that you are investing resources into something the market already expects. Success closes a gap and gets you to parity.</p>

<p>Payroll entry is a simple example. If you are building a payroll product, customers need a way to enter employees, hours, earnings, deductions, and other inputs. There is nothing optional about it. At the same time, every serious payroll provider already offers some version of that capability. A company could spend a year building an excellent payroll-entry experience and still emerge having mostly achieved what its competitors could already do. The work was necessary, but it was not necessarily strategic.</p>

<p>The same lesson can apply much deeper in the stack. In payroll, we also chose at times to build infrastructure ourselves, including a custom pub/sub eventing system, rather than relying on established technology such as <a href="https://kafka.apache.org/documentation/">Apache Kafka</a> or another available solution. There were reasonable technical motivations for those decisions, and hindsight makes alternatives look simpler than they often were. Still, I would start with a different question today: <strong>was owning eventing infrastructure part of our competitive advantage as a payroll company?</strong> Probably not. Our best opportunities to differentiate lived much closer to the payroll domain.</p>

<p>This is a difficult instinct for engineers because we like to build. We value control, we see weaknesses in existing tools, and we often understand our own requirements better than a vendor does. Sometimes we genuinely can build something better. But <strong>being able to build something better is not the same as that thing being strategically valuable to build</strong>. That is why I think build-versus-buy decisions should begin with strategic value, not technical possibility. If a capability represents proprietary knowledge, a core customer experience, or an area where internal investment can create a durable advantage, building it may compound in value. If the goal is simply to meet an established standard, buying or integrating an existing solution may be the better use of the organization’s time.</p>

<p>A useful rule of thumb is:</p>

<blockquote>
  <p><strong>Build differentiation. Buy parity.</strong></p>
</blockquote>

<p>It is not an absolute rule. Security, regulation, vendor risk, integration complexity, cost, or the lack of a suitable external option can all change the decision. The goal is not to create a rigid policy about what must be built or bought. It is to make the strategic value of the capability explicit before engineering momentum takes over.</p>

<p>The deeper issue is opportunity cost. Every year of engineering capacity invested in reproducing a commodity capability is a year that cannot be invested in the areas where the company is uniquely positioned to win. Sometimes closing a competitive gap is exactly the right thing to do, but we should recognize it for what it is. Necessary work allows us to participate. Strategic work gives us a reason to win.</p>

<p>That is the distinction I keep coming back to when thinking about roadmaps, platforms, and architecture decisions: <strong>are we investing to participate, or are we investing to differentiate?</strong> Both may be necessary, but they serve very different purposes. Knowing which is which helps protect our most limited resources for the capabilities that can actually become an advantage.</p>

<h2 id="tldr">TL;DR</h2>

<p>A capability can be necessary to your product without being strategically valuable to build. Some investments create <strong>competitive advantage</strong> by differentiating the product, while others close a <strong>competitive disadvantage</strong> and bring the product to parity. A useful default is to <strong>build differentiation and buy parity</strong>, while recognizing that real-world constraints can change the decision.</p>

<h2 id="domain-language">Domain Language</h2>

<dl>
  <dt>Competitive Advantage</dt>
  <dd>A capability, asset, or area of expertise that meaningfully differentiates a company from its competitors and improves its ability to win in the market.</dd>
  <dt>Competitive Disadvantage</dt>
  <dd>A gap between a product and the capabilities customers already expect from the market. Closing the gap may be necessary, but doing so generally creates parity rather than differentiation.</dd>
  <dt>Opportunity Cost</dt>
  <dd>The value of the alternative work an organization gives up when it commits finite capital, engineering capacity, or attention to a particular investment.</dd>
  <dt>Table Stakes</dt>
  <dd>Capabilities customers consider fundamental to participating in a market. Their absence creates a disadvantage, but their presence alone rarely creates an advantage.</dd>
</dl>

<h2 id="further-reading">Further Reading</h2>

<p>Michael Porter’s <a href="https://hbr.org/1996/11/what-is-strategy"><em>What Is Strategy?</em></a> explores the distinction between operational effectiveness and strategic positioning, which overlaps with the idea in this essay that necessary capabilities do not always create strategic advantage.</p>]]></content><author><name>Matt Ruggio</name></author><category term="strategy" /><category term="build-vs-buy" /><category term="engineering-leadership" /><summary type="html"><![CDATA[A capability can be necessary to your product without being strategically valuable to build. On competitive advantage, parity, and when to build versus buy.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://rugg.io/assets/images/og-necessary-is-not-strategic.png" /><media:content medium="image" url="https://rugg.io/assets/images/og-necessary-is-not-strategic.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>