<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text" xml:lang="en">Public Interest Tech Webring - All Posts</title>
  <link type="application/atom+xml" href="https://pitwebring.billhunt.dev/feed.xml" rel="self"/>
  <link href="https://pitwebring.billhunt.dev/"/>
  <updated>2026-03-08T00:50:21Z</updated>
  <id>https://pitwebring.billhunt.dev/</id>

  <entry>
    <title>Modernizing Government Regulations with AI</title>
    <author>
      <name>Civic Innovations</name>
      <uri>https://civic.io/</uri>
    </author>
    <link rel="alternate" type="text/html" href="https://civic.io/2026/03/05/modernizing-government-regulations-with-ai/" />
    <published>2026-03-05T21:30:07+00:00</published>
    <updated>2026-03-05T21:30:07+00:00</updated>
    <id>https://civic.io/2026/03/05/modernizing-government-regulations-with-ai/</id>
    <content type="html">
      
&lt;p class=&quot;wp-block-paragraph&quot;&gt;Somewhere in the tens of millions of words that make up a typical state&amp;#8217;s statutory code, there are requirements that no longer make sense.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Provisions that demand wet signatures when digital alternatives exist. Reports that agencies must file but few people read. Approval chains that add weeks to processes without adding any value. Conflicts between statutes passed decades apart. Requirements that may have seemed reasonable in isolation but interact to create bureaucratic obstacles that frustrate both government employees and the people they serve. Everyone agrees that government regulations need to be updated. The challenge is how to do it well at scale.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Manual review is the traditional approach to this problem, and it has obvious limits. Assign a team of policy analysts to read through the state code, title by title, flagging problematic provisions. They&amp;#8217;ll find some things. But they&amp;#8217;ll also miss things, because human attention flags over millions of words. And the work will take years, by which point new provisions will likely have accumulated.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This is why teams working on regulatory reform are starting to explore how AI tools might help. The appeal of these tools is obvious &amp;#8211; AI can process text at a scale humans cannot. Point a model at a state&amp;#8217;s entire legal code and ask it to flag provisions that match patterns associated with administrative burden. In theory, you would get comprehensive coverage of state statutes and regulations in a fraction of the time.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But &amp;#8220;point AI at the problem&amp;#8221; is not a methodology. The teams doing this work seriously are thinking carefully about how to structure the effort so that AI analysis actually produces useful, trustworthy results. Having spent time developing a methodology for a structurally similar problem, I think some important lessons transfer that can be used by teams looking to revise state regulatory rules.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;The Parallel With Legacy System Modernization&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The challenge of finding burden in regulations has a structural kinship with legacy system modernization that may not be immediately obvious.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Large government agencies run on a collection of systems built decades ago. These systems work, mostly, but they encode business rules that no individual fully understands. The original developers may be retired or gone. Documentation is often incomplete or outdated. The knowledge of what these systems actually do is embedded in the code itself, accumulated across thousands of modifications over decades.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;When agencies try to modernize these systems, they face a fundamental problem: you can&amp;#8217;t safely replace what you don&amp;#8217;t understand. And understanding a codebase of hundreds of thousands or millions of lines exceeds human capacity for comprehensive review.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The parallel to regulatory burden is clear. State legal codes are massive textual corpora that encode requirements accumulated over many decades. The original intent behind provisions may be unclear. The interactions between different provisions are often complex or poorly documented. And the task of understanding what&amp;#8217;s actually in this grand body of text exceeds what human reviewers can accomplish through direct reading.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;In both cases, AI offers the possibility of analysis at scale. And in both cases, the question is how to structure that analysis so it produces results humans can trust and act on.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;SpecOps and System Specifications&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;I&amp;#8217;ve developed &lt;a href=&quot;https://spec-ops.ai/&quot;&gt;a methodology for legacy system modernization called SpecOps&lt;/a&gt;. The core tenet of this approach is that AI should produce an intermediate artifact that humans can verify, rather than producing final outputs directly.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;In legacy modernization, that intermediate artifact is a specification document: a human-readable description of what the legacy code actually does. AI analyzes the code and generates the specification. Domain and policy experts review the specification and verify whether it accurately captures the system&amp;#8217;s behavior. Only after verification does anyone write new code.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This is important because AI can confidently produce outputs that are wrong. It may miss edge cases, misinterpret logic, or generate plausible-looking analysis that doesn&amp;#8217;t hold up under scrutiny. If AI outputs flow directly into action without a verification checkpoint, errors can propagate. The specification document creates a place where human judgment can catch what AI might get wrong.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;For regulatory reform efforts, the parallel would be structured findings that policy analysts can review. AI would scan legal code and related documents and produce analysis: here are provisions that appear to require reports, here are potential conflicts between statutes, here are requirements that may be duplicative. But the AI doesn&amp;#8217;t determine that these provisions are actually burdensome. It surfaces candidates. Humans review the candidates and make determinations.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This framing sets appropriate expectations. AI doesn&amp;#8217;t replace the policy judgment required for reform. It makes that judgment possible by surfacing relevant material from a corpus too large for humans to review comprehensively.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Instruction Sets as Portable Knowledge&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;One of the most useful concepts from SpecOps is the instruction set &amp;#8211; the explicit guidance that teaches AI how to analyze a specific type of material (like legacy code) &amp;#8211; are shareable.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;An instruction set for understanding COBOL code includes patterns for recognizing how COBOL structures logic, common idioms in government COBOL systems, and guidance for extracting business rules from procedural code. The instruction set is what transforms generic AI capability into context-specific analysis.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;These instruction sets turn out to be highly portable. An instruction set for comprehending COBOL eligibility calculations works whether you&amp;#8217;re modernizing a benefits system in California or a tax system in New York. The COBOL is similar enough, and the patterns of government system design are common enough, that the instruction set transfers and is useful in multiple contexts.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The same principle also applies to regulatory analysis. An instruction set for identifying reporting requirements in statutory language should work across states. One for spotting conflicts between statutes and implementing regulations could be refined through use in one jurisdiction and then shared with others. The patterns of legal drafting are similar enough that instruction sets should transfer.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This creates an opportunity for cumulative improvement. A first-generation instruction set for identifying burden sources will likely have some gaps. Those gaps become visible when policy analysts review the output and note what was missed or mischaracterized. The instruction set can then be iteratively improved, and subsequent analysis will be more accurate. Each jurisdiction that uses and refines these instruction sets can make them more valuable for the next jurisdiction that uses them.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;If tools are built around explicit, shareable instruction sets rather than opaque proprietary products, the knowledge of how to find regulatory burden becomes a public good that accumulates over time.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Simple Tooling Is All You Need&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;One implication worth emphasizing: the tooling required for this work is not exotic.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The minimum viable toolchain for SpecOps is a Git repository, an AI coding agent, basic instruction sets, a markdown or text editor, and a pull request workflow for reviews. No specialized or expensive platform is required.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The regulatory analysis equivalent would be very similar: a frontier AI model with sufficient context window, instruction sets tuned for identifying burden patterns in legal text, a repository for managing those instruction sets and storing outputs, and a review workflow that routes findings to policy analysts for verification.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The value is in the methodology and the shareable instruction sets, not in proprietary tooling. This is important for sustainability and for cross-jurisdiction sharing. States can adopt and adapt the approach using tools they very likely already have access to.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;The Future of Regulatory Reform&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Teams are actively exploring how AI can accelerate the identification of administrative burden in government regulations. The opportunity is real: AI can help humans see what&amp;#8217;s in these massive textual corpora at a scale that manual review alone simply cannot achieve.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But the goal isn&amp;#8217;t AI-generated reform recommendations. The goal is comprehensible representations that allow humans to exercise judgment effectively. AI can surface candidate options for change. Humans haver to verify these findings and make decisions about what to actually change.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The &lt;a href=&quot;https://spec-ops.ai/&quot;&gt;SpecOps methodology&lt;/a&gt; was developed for legacy system modernization, but the core principles applies to regulatory reform as well: before you can safely change complex accumulated logic, you need to understand what&amp;#8217;s actually there.&lt;/p&gt;

    </content>
  </entry>
  <entry>
    <title>2026-02-22 Update</title>
    <author>
      <name>Bryce Willey</name>
      <uri>https://brycewilley.xyz/</uri>
    </author>
    <link rel="alternate" type="text/html" href="https://brycewilley.xyz/2026/02/update" />
    <published>2026-02-23T00:00:00+00:00</published>
    <updated>2026-02-23T00:00:00+00:00</updated>
    <id>https://brycewilley.xyz/2026/02/update</id>
    <content type="html">
      &lt;h2 id=&quot;work-stuff&quot;&gt;Work Stuff&lt;/h2&gt;

&lt;p&gt;Its been a while.&lt;/p&gt;

&lt;p&gt;I left the IRS voluntarily last year during what was unarguably a shit time for federal employees.
I might write about my federal experience at some point, but theres not much to say that hasnt
already been said &lt;sup id=&quot;fnref:footnote1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:footnote1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;[footnote 1]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;Either way, Im back at the Suffolk LIT Lab, at my same old role, which coincidentally opened back
up right before I decided to leave the IRS last year (and definitely played a part in that decision).
Working on a lot of the same work there, which is better recorded at &lt;a href=&quot;https://suffolklitlab.org/blog/&quot;&gt;its blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Its fine.&lt;/p&gt;

&lt;h2 id=&quot;personal&quot;&gt;Personal&lt;/h2&gt;

&lt;h3 id=&quot;doing&quot;&gt;Doing&lt;/h3&gt;

&lt;p&gt;I dropped Spotify, and after a brief stint with Tidal, am just self-hosting &lt;a href=&quot;https://jellyfin.org/&quot;&gt;Jellyfin&lt;/a&gt;
as a Music streaming service, which is great. It just runs on my desktop, and I download whatever albums
Im listening to at the moment to FinAmp on my phone. It just works. Its gotten me listening to my
older music library at lot more.&lt;/p&gt;

&lt;p&gt;Upgraded to PopOS! 24.04 recently. Its fine, but the desktop environment, Cosmic, kinda sucks. Its
really buggy, and just doesnt work like it should. Switched to Gnome, and its fine.&lt;/p&gt;

&lt;p&gt;Ive become a bit of a home improvement DIY-er, painting my living room and working on making wall-to-wall shelves above the TV. Still in progress, maybe Ill post pics when Im done with that.&lt;/p&gt;

&lt;h3 id=&quot;listening-to&quot;&gt;Listening To&lt;/h3&gt;

&lt;p&gt;A ton of great stuff since I last updated. Some favs:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://fatdogfatdogfatdog.bandcamp.com/album/woof&quot;&gt;Fat Dog&lt;/a&gt; is my favorite new band, followed closely by &lt;a href=&quot;https://touchdownjesus.bandcamp.com/album/it-s-all-feast-or-famine&quot;&gt;Touchdown Jesus&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;As is tradition, listened to a lot of Bad Bunny before and after his Superbowl performance.&lt;/li&gt;
  &lt;li&gt;Graham Kartna has been around a while, but I only recently listened to his full length albums,
&lt;a href=&quot;https://grahamkartna.bandcamp.com/album/for-your-safety-and-the-safety-of-others&quot;&gt;For Your Safety and the Safety of Others&lt;/a&gt;, and its incredibly catchy and surprisingly good
song writing and lyricism.&lt;/li&gt;
  &lt;li&gt;Im about 7 years late, but Persona 5 has the best game soundtrack of all time. Been listening
a lot to the &lt;a href=&quot;https://christopherlarkin.bandcamp.com/album/hollow-knight-silksong-original-soundtrack&quot;&gt;Silksong Soundtrack&lt;/a&gt; recently too.&lt;/li&gt;
&lt;/ul&gt;

&lt;table class=&quot;listening&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;width: 10%&quot;&gt;&amp;nbsp;&lt;/th&gt;
      &lt;th style=&quot;width: 40%&quot;&gt;Song&lt;/th&gt;
      &lt;th style=&quot;width: 50%&quot;&gt;Artist&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
  &lt;td&gt;&lt;img src=&quot;https://upload.wikimedia.org/wikipedia/en/e/ef/Bad_Bunny_-_Deb%C3%AD_Tirar_M%C3%A1s_Fotos.png&quot; alt=&quot;The album cover for Bad Bunny&apos;s &quot; height=&quot;71&quot; width=&quot;71&quot; /&gt;&lt;/td&gt;
  &lt;td&gt;BAILE INoLVIDABLE&lt;/td&gt;
  &lt;td&gt;&lt;a href=&quot;https://tidal.com/search?q=Bad+Bunny+BAILE+INoLVIDABLE&quot;&gt;Bad Bunny&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

    &lt;tr&gt;
  &lt;td&gt;&lt;img src=&quot;https://f4.bcbits.com/img/a2085224863_16.jpg&quot; alt=&quot;The album cover for Christopher Larkin&apos;s &quot; height=&quot;71&quot; width=&quot;71&quot; /&gt;&lt;/td&gt;
  &lt;td&gt;Lace&lt;/td&gt;
  &lt;td&gt;&lt;a href=&quot;https://christopherlarkin.bandcamp.com/track/lace-2&quot;&gt;Christopher Larkin&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

    &lt;tr&gt;
  &lt;td&gt;&lt;img src=&quot;https://f4.bcbits.com/img/a0372447363_16.jpg&quot; alt=&quot;The album cover for Touchdown Jesus&apos;s &quot; height=&quot;71&quot; width=&quot;71&quot; /&gt;&lt;/td&gt;
  &lt;td&gt;I Love My Wife&lt;/td&gt;
  &lt;td&gt;&lt;a href=&quot;https://touchdownjesus.bandcamp.com/track/i-love-my-wife&quot;&gt;Touchdown Jesus&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

    &lt;tr&gt;
  &lt;td&gt;&lt;img src=&quot;https://f4.bcbits.com/img/a0287207445_16.jpg&quot; alt=&quot;The album cover for Fat Dog&apos;s &quot; height=&quot;71&quot; width=&quot;71&quot; /&gt;&lt;/td&gt;
  &lt;td&gt;King of the Slugs&lt;/td&gt;
  &lt;td&gt;&lt;a href=&quot;https://fatdogfatdogfatdog.bandcamp.com/track/king-of-the-slugs-1&quot;&gt;Fat Dog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

    &lt;tr&gt;
  &lt;td&gt;&lt;img src=&quot;https://f4.bcbits.com/img/a2394464159_16.jpg&quot; alt=&quot;The album cover for Kainalu&apos;s &quot; height=&quot;71&quot; width=&quot;71&quot; /&gt;&lt;/td&gt;
  &lt;td&gt;Folds Like Origami&lt;/td&gt;
  &lt;td&gt;&lt;a href=&quot;https://kainalu.bandcamp.com/track/folds-like-origami&quot;&gt;Kainalu&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;

  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;gaming&quot;&gt;Gaming&lt;/h3&gt;

&lt;p&gt;I happened to break my leg after getting hit by a car on my bike last year, so I had a lot
of time to play games and got through a good chunk of my backlog.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Balatro: fun game, but didnt keep me sucked in for more than a few days.&lt;/li&gt;
  &lt;li&gt;Outer Wilds: amazing game. Go in blind.&lt;/li&gt;
  &lt;li&gt;Persona 5: As mentioned above, incredible soundtrack. The gameplay I enjoyed less though, and it got extremely repetitive / grindy in the endgame.&lt;/li&gt;
  &lt;li&gt;Read Dead Redemption 2: Similar complaints to Persona 5; the gameplay is fine, but gets so grindy by
the end. But despite that, it tells a great story, and cant really be separated from all of that grind.&lt;/li&gt;
  &lt;li&gt;Silksong: Good game, but idk, it crosses the line into not fun because of the boss difficulty. Set it down
multiple times for like a month at a time when I got stuck on bosses, and just gave up at the Act 3 final boss.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;reading&quot;&gt;Reading&lt;/h3&gt;

&lt;p&gt;Read embarissingly little this last year.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I did get through the entirety of Berserk, through the last Miura chapters. Its good, gorgeous, and has somehow affected even more of the media I consume that I thought it had.&lt;/li&gt;
  &lt;li&gt;Getting through House of Leaves now, I like it, and enjoy the complexity, but storywise, Im halfway through
and feel like Ive got it, I dont know what else they could do.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:footnote1&quot;&gt;
      &lt;p&gt;For clarity, Fuck Trump, Fuck ICE, and Fuck Musk. &lt;a href=&quot;#fnref:footnote1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;[go back to reference]&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
    </content>
  </entry>
  <entry>
    <title>From Sharing Code to Sharing Knowledge</title>
    <author>
      <name>Civic Innovations</name>
      <uri>https://civic.io/</uri>
    </author>
    <link rel="alternate" type="text/html" href="https://civic.io/2026/02/18/from-sharing-code-to-sharing-knowledge/" />
    <published>2026-02-18T16:25:10+00:00</published>
    <updated>2026-02-18T16:25:10+00:00</updated>
    <id>https://civic.io/2026/02/18/from-sharing-code-to-sharing-knowledge/</id>
    <content type="html">
      
&lt;h3 class=&quot;wp-block-heading&quot;&gt;&lt;strong&gt;How AI Tools are  Changing Government Technology Collaboration Forever&lt;/strong&gt;&lt;/h3&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The world of software development is changing rapidly, and the implications for how governments share technology are only beginning to come into focus.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;For two decades, the vision for reducing waste in government technology has been straightforward: build once, share widely. Fifty states all need unemployment insurance systems. They all need licensing systems, benefits administration, tax processing. Why should each one spend the effort to build essentially the same thing? The legacy contractors who currently dominate this space have built their moats around proprietary code and switching costs, charging full price to build similar systems in state after state. The logic of sharing drove open source policies like the &lt;a href=&quot;https://digital.gov/resources/requirements-for-achieving-efficiency-transparency-and-innovation-through-reusable-and-open-source-software&quot;&gt;Federal Source Code Policy&lt;/a&gt; and the &lt;a href=&quot;https://www.congress.gov/bill/118th-congress/house-bill/9566&quot;&gt;SHARE IT Act&lt;/a&gt;, which require agencies to make custom code available for reuse.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;A recent piece in the Law and Political Economy Project blog, &lt;a href=&quot;https://lpeproject.org/blog/the-means-testing-industrial-complex/&quot;&gt;&amp;#8220;The Means-Testing Industrial Complex&amp;#8221;&lt;/a&gt;, offers a thoughtful examination of this dysfunction. The author &amp;#8211; Luke Farrell, a veteran federal technology leader &amp;#8211; shines a bright light on the waste of the current contractor-dominated model and the extraction enabled by private equity consolidation. Luke&amp;#8217;s piece is an important read. But it also suggests, almost in passing, an idea that deserves more scrutiny &amp;#8211; that CMS could build an open source version of Medicaid eligibility software for states to use and build on, following the model of IRS Direct File.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This idea encapsulates some assumptions that deserve closer examination, assumptions that may no longer hold as AI-assisted development tools mature.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;The Friction Points of Code Sharing&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;There is room for debate about the success of government open source code initiatives, at least as far as driving reuse of code in one agency or government that is built by another. There are some clear examples of how open source software and code sharing have worked really well. Shared platforms like &lt;a href=&quot;http://cloud.gov&quot;&gt;cloud.gov&lt;/a&gt; and &lt;a href=&quot;http://login.gov&quot;&gt;Login.gov&lt;/a&gt;, and shared standards like the &lt;a href=&quot;https://designsystem.digital.gov/&quot;&gt;U.S. Web Design System&lt;/a&gt; are some notable examples. But leaving aside questions about the efficacy of this approach, the traditional model of sharing code between agencies and between governments faces inherent friction.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Different jurisdictions have genuinely different requirements. A licensing system for professional engineers encodes specific requirements about education, examination, and experience that can vary (sometimes widely) by state. A benefits eligibility system implements rules that reflect each jurisdiction&amp;#8217;s specific policy decisions. Adopting another jurisdiction&amp;#8217;s code means either accepting their policy choices or doing significant adaptation work.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;A reasonable counterargument is that well-designed software can separate jurisdiction-specific policy logic from common infrastructure through modular architecture and configuration. In theory, you could build a licensing system where the core workflows are shared while the specific requirements for each profession in each state are configuration parameters. But building software this way is harder and more expensive than building for a single use case. It requires anticipating variation, designing clean abstractions, and maintaining flexibility that may never be used. Government contracts typically reward delivering specific functionality on time and within budget, not elegant architecture or modularity that hypothetical future adopters &lt;em&gt;might&lt;/em&gt; appreciate. The agency paying for the system bears the cost of building for reuse while the benefits accrue to other agencies that may or may not ever adopt it. The existing incentive structure works against modularity even when everyone agrees it would be valuable in the abstract.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Technology stack fragmentation also creates barriers to traditional software sharing. One state may use Ruby on Rails, another may use Python and Django, a third favors Java or the .NET Framework. Even functionally similar systems can become difficult to share when the adopting jurisdiction lacks expertise in the originating jurisdiction&amp;#8217;s technology choices.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Adoption requires capacity the adopter simply may not have. Understanding someone else&amp;#8217;s codebase, evaluating whether it fits your needs, identifying what must change, making those changes without breaking things, and maintaining the modified version over time all demand technical expertise. For agencies that struggle to maintain their existing systems, taking on a complex external codebase may not reduce their burden at all.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Maintenance obligations can persist after adoption. Once an agency has adopted open source code, someone has to keep it running, patch security vulnerabilities, update dependencies, and adapt to changing requirements. The original developers may have moved on; the adopting jurisdiction now owns this burden now.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;How AI Changes the Equation&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;AI-assisted coding tools are shifting the economics of software development in ways that change what&amp;#8217;s worth sharing.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;a href=&quot;https://civic.io/2026/01/29/the-collapsing-cost-of-software-development/&quot;&gt;The cost of writing code is dropping&lt;/a&gt;. Tasks that once required days of developer time can now be accomplished in hours with AI assistance. Generating a working implementation from a clear description of requirements is becoming routine. Code is becoming way less expensive to produce.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The cost of understanding existing code is also dropping. Large language models excel at code comprehension. They can explain what unfamiliar code does, trace through logic, identify where specific functionality lives, and answer questions that would previously have required access to the original developers.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But while the economics of what we can learn from legacy code has changed, we still need humans to specify what the code should do. An AI assistant can be used to build a benefits eligibility system, but only if someone (a human) provides clear requirements about eligibility rules, edge cases, integration points, and workflow logic. The knowledge of how government programs actually work remains essential.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This changes what is scarce and what is valuable &amp;#8211; and ultimately, what governments should focus on sharing and reusing. If code is cheap to generate and adapt, but domain knowledge remains hard-won, then the knowledge becomes the asset worth sharing rather than the code itself.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;What Knowledge Sharing Looks Like&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Consider what an AI coding assistant needs if it will be used to successfully build a government software system. It needs to understand the domain: what the system does, what workflows it supports, what edge cases exist. It needs to understand the regulatory context: accessibility requirements, security standards, compliance obligations. It needs to understand integration patterns: how this system connects to others, what data flows where, what APIs exist.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This knowledge can be captured and shared in ways that sidestep the friction points of traditional code sharing. The key is recognizing that some layers of knowledge are more portable than others.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The things that vary by jurisdiction: specific eligibility thresholds, fee structures, examination requirements, documentation rules, reciprocity agreements. These reflect policy choices that differ from state to state. The things that don&amp;#8217;t vary much: the general workflow of receiving an application, verifying credentials, checking against requirements, issuing or denying a license, handling renewals, managing complaints. The structural patterns of how licensing systems work are common even when the specific parameters differ from jurisdiction to jurisdiction.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;a href=&quot;https://civic.io/2025/12/12/what-does-a-good-spec-file-look-like/&quot;&gt;Shareable software specifications&lt;/a&gt; can describe these common workflow patterns while leaving room for jurisdiction-specific policy parameters. The specification captures the general shape of the system, the decisions that need to be made at each step, the data that needs to be captured, the integrations that need to exist. Each jurisdiction supplies their own rules to fill in the blanks. This is similar to how &lt;a href=&quot;https://openfisca.org/en/&quot;&gt;OpenFisca&lt;/a&gt;, the open source rules-as-code engine, operates: the engine and the structure for expressing rules are shared across countries, while each country models its own tax and benefit policies using the common framework.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Instruction sets can inform AI assistants about government domains, legacy platforms, and common patterns. An instruction set for understanding COBOL has value whether you&amp;#8217;re modernizing benefits systems in California or tax systems in New York. An instruction set describing the common patterns in professional licensing workflows can help an AI assistant generate better code regardless of which state&amp;#8217;s specific requirements it&amp;#8217;s implementing. The knowledge is portable even when the policy details are not.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Reference architectures can describe how systems should connect, what security boundaries matter, what integration patterns work. This structural knowledge helps any implementation fit into the broader ecosystem. In this model, jurisdictions build their own systems, generating much of the code with AI assistance.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But they build from shared specifications of common patterns, informed by shared domain knowledge, validated against shared structural tests. The knowledge of how these systems generally work transfers even when the specific policy logic doesn&amp;#8217;t.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;The Maintenance Advantage&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Knowledge sharing also addresses the maintenance burden differently than traditional code sharing.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;When you adopt someone else&amp;#8217;s code, you own the obligation to maintain it. When you generate code from shared specifications using AI tools, you can regenerate or modify it as needs change. The specification remains the source of truth; &lt;a href=&quot;https://civic.io/2026/01/26/disposable-software-and-the-future-of-government-technology/&quot;&gt;the code becomes more disposable&lt;/a&gt;.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Maintaining specifications and instruction sets still requires effort. Rules change, edge cases get discovered, better patterns emerge. But the burden differs from maintaining a running codebase. And updates to shared knowledge resources benefit everyone building from them, without requiring coordinated deployments or version management across independent instances.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Looking Ahead&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The&amp;nbsp; case for traditional government code sharing rests on the assumption that code is expensive to write and therefore should be reused. AI-assisted software development is eroding that assumption. Code is becoming cheaper to produce. The scarce resource is no longer working code, but the knowledge required to specify what code should do.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This suggests the future of government technology collaboration may look less like code sharing and more like a system for sharing open source software specifications Specifications, test suites, domain models, instruction sets that encode understanding of how government actually works. It can all be shared, and it is increasingly becoming more valuable than code itself.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;I explore this shift in detail in &lt;a href=&quot;https://spec-ops.ai/book&quot;&gt;&lt;em&gt;The SpecOps Methodology&lt;/em&gt;&lt;/a&gt;, which describes an approach to legacy system modernization built around capturing and sharing institutional knowledge. In a world where AI tools can generate implementations from specifications, the specifications themselves become the durable, shareable asset.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The people who have spent years advocating for government technology sharing aren&amp;#8217;t wrong that collaboration should reduce waste and improve outcomes. But the question of what governments share, and what they reuse is changing. As the economics of software development shift, the answer may be shifting too.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;/p&gt;

    </content>
  </entry>
  <entry>
    <title>Failing to run a server on 3 different phones</title>
    <author>
      <name>Bryce Willey</name>
      <uri>https://brycewilley.xyz/</uri>
    </author>
    <link rel="alternate" type="text/html" href="https://brycewilley.xyz/2026/02/failing-phones" />
    <published>2026-02-13T01:00:00+00:00</published>
    <updated>2026-02-13T01:00:00+00:00</updated>
    <id>https://brycewilley.xyz/2026/02/failing-phones</id>
    <content type="html">
      &lt;p&gt;Ive had &lt;a href=&quot;https://far.computer/how-to/&quot;&gt;this article&lt;/a&gt; on how to turn an old phone into a web server bookmarked for months, and finally got around to actually trying it. 
I, for some strange reason, have a series of old phones in my closet. You can sometimes trade in old phones for a credit when getting a new phone, but
I end up keeping my phones long enough that the credit is $0, lol. This is the exact sort of thing Ive been waiting to use my old phones for.&lt;/p&gt;

&lt;p&gt;While the post itself is simple, trying to actually do any of this is kinda ridiculous, mostly due to battery and unlocking issues. I couldnt even get past the first section of that post. All of my attempts failed, so Ill recap in order of simplest failure, to most complex.&lt;/p&gt;

&lt;h2 id=&quot;the-moto-x&quot;&gt;The Moto X&lt;/h2&gt;

&lt;p&gt;My &lt;a href=&quot;https://en.wikipedia.org/wiki/Moto_X_(1st_generation)&quot;&gt;Moto X&lt;/a&gt;, already a budget phone when I got it in late 2013, is now 13 years old! Unfortunately, that means its completely borked. I plug it in to charge, the change screen comes up with 0%, it charges for about a minute, shows the Moto boot screen, vibrates, then dies.
I assume that it cant even hold enough voltage to turn on. So thats a no go unfortunately. I could try to replace the battery, but that has gone poorly for me in the past (see the next section).&lt;/p&gt;

&lt;h2 id=&quot;the-pixel-3-at-least-the-phone-turns-on&quot;&gt;The Pixel 3: At least the phone turns on&lt;/h2&gt;

&lt;p&gt;The next phone is the most recent one; a &lt;a href=&quot;https://en.wikipedia.org/wiki/Pixel_3&quot;&gt;Pixel 3&lt;/a&gt;. I originally replaced this one after attempting a battery swap and not being able to turn the phone on after. Im not sure how, but after leaving it plugged in for ~30 minutes, it charges! It inconsistently turns on, but at least it does! A miracle that will quickly be stymied.&lt;/p&gt;

&lt;p&gt;Following our article, we first go to the &lt;a href=&quot;https://wiki.postmarketos.org/wiki/Google_Pixel_3_(google-blueline)&quot;&gt;Postmarket OS wiki page for the phone&lt;/a&gt;. The first step to make any progress is to unlock the bootloader of the phone. It differs from each Android version, but in most of them you find the build number for the phone in the settings (under settings, System info or About this phone), and tap the build number a bunch of times. Eventually (after like 7 or 8 taps), youll get a prompt to keep tapping to become a developer. This unlocks some more options in your settings, meant for app developers working on the hardware, but IMO are always useful to enable. On that page, there should be an option labeled &lt;strong&gt;OEM unlocking&lt;/strong&gt;, and one labeled &lt;strong&gt;USB Debugging&lt;/strong&gt;. You have switch both on to be able to put Postmarket OS on your phone.&lt;/p&gt;

&lt;p&gt;I immediately hit a wall, because the OEM unlocking option is grayed out with the message connect to the internet or cantact your carrier. Hm. Its already connected to the internet. After various searching, I try:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Updating to the latest OS. Doesnt work.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://source.android.com/docs/setup/test/flash#enable-usb&quot;&gt;Forcing a check in by going to the phone and dialing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*#*#CHECKIN#*#*&lt;/code&gt;&lt;/a&gt;. No change.&lt;/li&gt;
  &lt;li&gt;Factory reset. Still nothing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I see a bunch of people saying that Verizon carrier phones cant be unlocked, but I remember specifically getting this phone from the Google store directly, unlocked, for this reason. I eventually find &lt;a href=&quot;https://support.google.com/pixelphone/thread/305048887/google-pixel-oem-unlocking-greyed-out-phone-is-not-carrier-locked?hl=en&quot;&gt;this gravestone of a post&lt;/a&gt;: if a phone has an encrypted bootloader, it cant be unlocked.  It is what it is, and theres no point in attempting to pursue the matter further. Everything sucks and the appeal of Android is a lie.&lt;/p&gt;

&lt;h2 id=&quot;the-nexus-6p-the-furthest-along-the-most-frustrating&quot;&gt;The Nexus 6P: The furthest along, the most frustrating&lt;/h2&gt;

&lt;p&gt;My &lt;a href=&quot;https://en.wikipedia.org/wiki/Nexus_6P&quot;&gt;Nexus 6P&lt;/a&gt; was in the best condition of all of these so far, and it still turns on okay.
The &lt;a href=&quot;https://wiki.postmarketos.org/wiki/Google_Nexus_6P_(huawei-angler)&quot;&gt;Postmarket OS wiki page for the Nexus 6P&lt;/a&gt; is sparser than the Pixel one, but we know about the secret unlocking step &lt;sup id=&quot;fnref:footnote1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:footnote1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;[footnote 1]&lt;/a&gt;&lt;/sup&gt;. Luckily, this phone doesnt have an ecrypted or carried locked bootloader, so the setting can be easily turned on.&lt;/p&gt;

&lt;p&gt;Oh, but that just gives you the ability to unlock the phone. Unmentioned anywhere on the Postmarket wiki (that I could find) is that you need to also install &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;adb&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fastboot&lt;/code&gt; to actually unlock the phone. These can be installed on Ubuntu with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt install adb fastboot&lt;/code&gt;. Keeping the phone on, plug it in to your computer and accept the prompt asking if it should allow USB debugging. Confirm that your computer can see the phone by running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;adb devices&lt;/code&gt;. Then, turn the phone off, and hold the power and volume down buttons until a weird little screen with the android being dissected comes up.&lt;/p&gt;

&lt;p&gt;Just look at him. Somebody help the lil guy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;../../assets/failed_phones/fallen_droid.jpg&quot; alt=&quot;The green android mascot depicted laying down, with the abdominal region opened to reveal a mirrored blue interior with circuitry&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fastboot devices&lt;/code&gt; should show the phone now (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;adb devices&lt;/code&gt; wont). From there, you run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fastboot flashing unlock&lt;/code&gt; to actually unlock it.&lt;/p&gt;

&lt;p&gt;Next step is to install &lt;a href=&quot;https://wiki.postmarketos.org/wiki/Pmbootstrap/Installation&quot;&gt;pmbootstrap&lt;/a&gt; on my computer, straight forward enough thanks to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uv&lt;/code&gt;&lt;sup id=&quot;fnref:footnote2&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:footnote2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;[footnote 2]&lt;/a&gt;&lt;/sup&gt;. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pmbootstrap init&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pmbootstrap install&lt;/code&gt; run fine, and I mostly follow the defaults at each prompt.&lt;/p&gt;

&lt;p&gt;After that, you can run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pmbootstrap flasher flash_rootfs&lt;/code&gt; (and also &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pmbootstarp flasher flash_kernel&lt;/code&gt;?). At this point, its supposedly done, and you can ssh in to the device when its plugged into your computer, but I cannot get this part to work. It doesnt show up when I see what IP addresses Im connected to with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ip a&lt;/code&gt;, and it just shows the Google logo the whole time. Idk why, I just seem to be at an impasse. I initially tried using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;console&lt;/code&gt; UI for Postmarket, and thought that maybe a different UI would show more information, so I tried again with the buffyboard UI instead. No luck. Discovered on a different page of the Postmarket OS wiki that I should be running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pmbootstrap chroot fastboot reboot&lt;/code&gt; after installing to make sure everything wrote correctly, but no change, still a mystery Google screen.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion?&lt;/h2&gt;

&lt;p&gt;Idk. Ill probably recycle the Moto X and trade in the Pixel 3 (where it will probably also be recycled). I probably should with the Nexus too, but idk. Theres a reason I never got into hardware; its inscrutible and you hit hard walls that I just dont seem to with software. Bummer of an ending.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:footnote1&quot;&gt;
      &lt;p&gt;Note: the order of this article is not the order in which I tried these phones. I spend a very confused 30 minutes trying to figure out why it wasnt working on the Nexus before realizing I had to unlock the bootloader first. &lt;a href=&quot;#fnref:footnote1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;[go back to reference]&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:footnote2&quot;&gt;
      &lt;p&gt;Outside the scope of this article, but &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uv&lt;/code&gt; is the closest to just working that Ive ever seen the Python ecosystem get. Fairly refreshing, and makes me sad every time I have to interact with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pip&lt;/code&gt;. &lt;a href=&quot;#fnref:footnote2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;[go back to reference]&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
    </content>
  </entry>
  <entry>
    <title>Government Software at the Crossroads</title>
    <author>
      <name>Civic Innovations</name>
      <uri>https://civic.io/</uri>
    </author>
    <link rel="alternate" type="text/html" href="https://civic.io/2026/02/11/government-software-at-the-crossroads/" />
    <published>2026-02-11T14:58:09+00:00</published>
    <updated>2026-02-11T14:58:09+00:00</updated>
    <id>https://civic.io/2026/02/11/government-software-at-the-crossroads/</id>
    <content type="html">
      
&lt;p class=&quot;wp-block-paragraph&quot;&gt;The software industry is undergoing its most significant transformation since the rise of cloud computing. Last week, $285 billion in market cap evaporated from software stocks in a single day  a selloff traders are referring to as the &amp;#8220;SaaSpocalypse.&amp;#8221; Investors seem to have reached the conclusion that AI agents are going to reshape how organizations buy and use software. I don&amp;#8217;t think they are wrong.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Private sector companies are scrambling to adapt. But there&amp;#8217;s another sector that may be even more exposed to this shift, and far less prepared for it: government.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Really Bad Timing&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Many government technology leaders are being asked to make major procurement decisions during a period of unprecedented instability in the software industry. The assumptions that have traditionally guided smart technology investments for the past decade  buy commercial off-the-shelf software, pay per seat, move to the cloud  may no longer hold.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The problem is that the government procurement cycle is slow &lt;a href=&quot;https://civic.io/2014/06/18/built-to-fail/&quot;&gt;by design&lt;/a&gt;. Decisions being made today will bind agencies to contracts lasting as long as five to seven years. An enterprise agreement signed this in Q1 could lock an agency into paying for software seats that AI tools have made redundant by year three  with no easy off ramp.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The traditional mismatch between government procurement cycles and the pace of change in the technology industry is becoming even more acute in the AI era. &lt;a href=&quot;https://civic.io/2025/08/19/the-third-wave-of-government-disruption/&quot;&gt;This problem is only going to get worse&lt;/a&gt;.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;Still Fighting the Last War&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Most government technology leaders are still operating from a playbook written in the 2010s. The common strategy is to modernize legacy systems by migrating to commercial SaaS products. This may have been the right move ten years ago. Cloud-based software offered better security, lower maintenance burden, and faster feature updates than aging on-premise systems.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But the landscape has shifted significantly, particularly in the last 12 months. The value of software is migrating from user interfaces to APIs, from per-seat licenses to outcomes, from products to orchestration layers. AI agents don&amp;#8217;t need polished dashboards  they need access to data and the ability to execute tasks. A procurement strategy optimized for buying seats for commercial interfaces may be optimizing for exactly the wrong thing.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The mental model of &amp;#8220;replace the old thing with the new commercial thing&amp;#8221; simply doesn&amp;#8217;t account for a world where AI agents can wrap existing systems, orchestrate actions across them, and generate deliverables without requiring wholesale replacement of underlying infrastructure.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;A Matter of Trust&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Another concern for government organizations is that the organizations best positioned to advise them on these shifts &amp;#8211; existing legacy vendors &amp;#8211; are often not incentivized to do so.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Large systems integrators and consultancies that guide government technology strategy make their money from complexity and labor hours. A message of &amp;#8220;you may need fewer tools, less customization, and smaller teams  orchestrated by AI&amp;#8221; does not align with their business model. So government leaders may not hear that message they need to hear until the shift is already obvious and the contracts are already signed.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Even absent malice, the fact that these changes are misaligned with existing legacy vendors business models means that simply won&amp;#8217;t be incentivized to provide the information government leaders need to hear, when they need it.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;The Build-vs-Buy Calculus Is Changing Fast&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;There&amp;#8217;s another assumption baked into traditional government technology strategy that deserves a reexamination &amp;#8211; the economics of building software.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;For a long time, this logic was straightforward. Custom software development was expensive, slow, and risky. Projects routinely ran over budget and past deadlines. Maintaining bespoke systems required specialized staff that agencies struggled to hire and retain. Commercial off-the-shelf products offered a potential way out  vendors amortize development costs across many customers, governments benefit from continuous improvement and transfer the maintenance burden to external organizations built better for it.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This logic has driven the preference for COTS and SaaS procurement. Why build it when you can buy it?&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But the economics of software development have shifted dramatically in the past eight months. AI coding assistants have moved from novelty to core infrastructure. Recent analysis suggests that a meaningful percentage of code commits on major platforms are now authored by AI  not assisted by AI, but generated by it. The changes we are seeing are not trivial. Entire codebases are being refactored by AI agents working in parallel. This will change the math on custom development. The cost of building software tailored to an agency&amp;#8217;s specific needs  rather than adapting workflows to fit a vendor&amp;#8217;s product  is dropping rapidly.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;None of this means commercial software will go away overnight. But it does mean the factors that made COTS and SaaS the default safe choice are eroding. The question &amp;#8220;should we buy or build?&amp;#8221; deserves renewed analysis based on current economics, not assumptions inherited from an era when custom development was synonymous with cost overruns and contractor dependency.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;A Different Kind of Risk&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The traditional risk calculus in government technology focuses on project failure  the big modernization effort that goes over budget, misses deadlines, or fails to deliver promised functionality. These are real risks, and they&amp;#8217;ve shaped a culture of caution around major technology investments in government.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;But there&amp;#8217;s a different kind of risk emerging: the risk of committing to a technology strategy that becomes obsolete mid-execution. The risk isn&amp;#8217;t that the project fails  it&amp;#8217;s that it succeeds at the wrong thing. An agency could execute flawlessly on a cloud migration strategy and still end up paying for years of software licenses that deliver diminishing value as AI reshapes workflows around them.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;This is new territory. The frameworks government uses to evaluate technology risk weren&amp;#8217;t designed for a world where the underlying economics of software could shift dramatically within a single contract period.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;What Would A Safe Approach Look Like?&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Given all this uncertainty, what would a prudent approach to government software strategy look like in early 2026? I think it looks something like this:&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;strong&gt;Shorter commitments where possible.&lt;/strong&gt; The long-term enterprise agreement that locked in favorable pricing made sense in a stable environment. In a period of rapid change, flexibility may be worth more than discounted pricing. Agencies should scrutinize contract terms that limit their ability to adapt quickly.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;strong&gt;Invest in understanding before deciding.&lt;/strong&gt; Before committing to a modernization path, invest in truly understanding existing systems  not just their code, but the institutional knowledge and business logic they embody. That understanding has value regardless of whether you eventually replace, wrap, or extend those systems. &lt;a href=&quot;https://spec-ops.ai/&quot;&gt;Methodologies like SpecOps&lt;/a&gt; that focus on generating verified specifications of legacy system behavior offer a way to preserve optionality while the landscape clarifies.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;strong&gt;Watch the API layer, not the interface.&lt;/strong&gt; When evaluating software, pay attention to how well it exposes functionality via APIs, not just how polished its user interface is. The interface matters less in a world where AI agents are increasingly the &amp;#8220;users&amp;#8221; of enterprise software.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;&lt;strong&gt;Cultivate independent perspective.&lt;/strong&gt; Seek out advisors whose business model doesn&amp;#8217;t depend on selling implementation services, and who have expertise in using AI to develop solution. The analysis that matters most right now is the analysis that might recommend doing less, not more.&lt;/p&gt;



&lt;h2 class=&quot;wp-block-heading&quot;&gt;The Time Is Now&lt;/h2&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;Government technology decisions have always involved balancing risk against opportunity. What&amp;#8217;s different now is the speed of change in the underlying assumptions.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The organizations that navigate this transition the best will be those that recognize the moment for what it is: not a time to double down on the strategies of the past decade, but a time to preserve optionality, invest in understanding, and resist the pressure to lock in long-term commitments based on a model of software value that may already be shifting beneath our feet.&lt;/p&gt;



&lt;p class=&quot;wp-block-paragraph&quot;&gt;The window to make these adjustments is right now  before the next round of multi-year contracts for COTS or SaaS software are signed, and before government agencies find themselves paying for a model of software that the rest of the world has moved on from.&lt;/p&gt;

    </content>
  </entry>
  
</feed>