PageSourceSearch

https://blog.lunatech.com/posts/2026-05-12-ai-is-collapsing-the-cost-of-software/

html lunatech.com collected 2026-09-25 14:11:54 UTC 15,658 bytes, 367 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4  <meta charset="utf-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1">
6
7
8
9  <!-- SEO TITLE -->
10  
11  <title>AI Is Collapsing the Cost of Software. Here Are the Numbers. - Lunatech Blog</title>
12  <meta property="og:title" content="AI Is Collapsing the Cost of Software. Here Are the Numbers." />
13  <meta name="twitter:title" content="AI Is Collapsing the Cost of Software. Here Are the Numbers.">
14  <meta property="og:site_name" content="Lunatech Blog">
15  <!-- SEO DESCRIPTION -->
16  <meta name="description" content="Lunatech&#39;s engineer blog - articles on Scala, Java, Kotlin, functional programming and more.">
17  <meta property="og:description" content="Lunatech&#39;s engineer blog - articles on Scala, Java, Kotlin, functional programming and more." />
18  <meta name="twitter:description" content="Lunatech&#39;s engineer blog - articles on Scala, Java, Kotlin, functional programming and more.">
19  <!-- SEO AUTHOR -->
20  <meta property="article:author" content="pepite" />
21  <meta name="author" content="pepite" />
22
23  <!-- SEO URL -->
24  <link rel="canonical" href="https://blog.lunatech.com/posts/2026-05-12-ai-is-collapsing-the-cost-of-software/" />
25  <meta property="og:url" content="https://blog.lunatech.com/posts/2026-05-12-ai-is-collapsing-the-cost-of-software/" />
26  <meta name="twitter:url" content="https://blog.lunatech.com/posts/2026-05-12-ai-is-collapsing-the-cost-of-software/">
27
28  <!-- SEO TYPE -->
29  <meta property="og:type" content="article" />
30  <meta property="article:published_time" content="2026-05-12T00:00Z[Etc/UTC]" />
31
32<!-- SEO IMAGE -->
33<meta name="twitter:card" content="summary_large_image" />
34<meta name="twitter:image:src" content="https://blog.lunatech.com/images/og-default.png" />
35<meta property="og:image" content="https://blog.lunatech.com/images/og-default.png" />
36  <!-- SEO COLLECTION PAGES -->
37  <link rel="prev" href="https://blog.lunatech.com/posts/2026-05-19-from-coding-to-orchestrating/" />
38  <link rel="next" href="https://blog.lunatech.com/posts/2026-05-05-the-cost-of-inaction/" />
39  <!-- SEO LOCALE -->
40  <meta property="og:locale" content="en" />
41  <!-- SEO GENERATOR -->
42  <meta name="generator" content="Quarkus Roq v2.1.8" />
43  <link rel="alternate" type="application/rss+xml" title="Lunatech Blog" href="https://blog.lunatech.com/feed/"/>
44
45  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
46  <link rel="preconnect" href="https://fonts.googleapis.com">
47  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
48  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap">
49  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0">
50  <link rel="stylesheet" type="text/css" href="/css/main.css">
51
52  <!-- Plausible analytics -->
53  
53<script defer data-domain="blog.lunatech.com" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.tagged-events.js"></script>
53
54  
54<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
54
55</head>
56<body>
57<header class="header">
58  <a class="logo-full" href="/"><img src="/images/logo-lunatech-full.svg" alt="Lunatech"></a>
59  <input class="menu-btn" type="checkbox" id="menu-btn">
60  <label class="menu-icon" for="menu-btn"><span class="navicon"></span></label>
61  <div class="header__menu">
62    <p class="header__title">Menu</p>
63    <a class="link" href="https://lunatech.com/">Official website</a>
64    <nav class="header__nav">
65      <a class="btn btn__primary" href="https://recruitment.lunatech.com/">Join us</a>
66    </nav>
67  </div>
68</header>
69
70  <main id="target">
71<div id="progress-display">
72  <div id="progress-over"></div>
73  <div id="progress-impend"></div>
74</div>
75
76<div class="post">
77  <div class="wrapper">
78    <div class="grid">
79      <section class="post__content">
80        <h1 class="post__title">AI Is Collapsing the Cost of Software. Here Are the Numbers.</h1>
81        <hr class="post__line">
82        <div class="author">
83          <div class="flexbox">
84              <img class="author__avatar author__avatar-lg" src="https://github.com/pepite.png" onerror="this.onerror=null;this.src='/images/elty.jpg'" alt="">
85              <a class="author__text" href="https://github.com/pepite">Nicolas Leroux</a>
86          </div>
87          <div class="flexbox">
88            <span></span>
89            <p class="author__date">12 May 2026</p>
90            <span></span>
91            <div class="author__time">
92              <p id="progress-time">4</p>
93              <p>&nbsp;min read</p>
94            </div>
95          </div>
96        </div>
97        <div class="flexbox ff-wrap">
98            <a class="tag" href="/tags/ai">AI</a>
99            <a class="tag" href="/tags/software-cost">software cost</a>
100            <a class="tag" href="/tags/agentic-coding">agentic coding</a>
101            <a class="tag" href="/tags/productivity">productivity</a>
102            <a class="tag" href="/tags/legacy-modernization">legacy modernization</a>
103            <a class="tag" href="/tags/en">en</a>
104        </div>
105        <div class="post__cover">
106          <img src="/posts/2026-05-12-ai-is-collapsing-the-cost-of-software/background.png" alt="" onerror="this.onerror=null;this.src='/images/default-cover.png';">
107        </div>
108        <article id="progress-measure"> <div id="preamble">
109 <div class="sectionbody">
110 <p> <div class="paragraph">
111 <p>
112Every previous industrial revolution replaced muscle. Steam engines, assembly lines, tractors -- each one amplified physical labor and made goods cheaper to produce. The revolution happening right now is different in kind. For the first time, what is being replaced is the ability to produce structured intellectual output: code, documentation, test plans, architecture decisions, migration scripts, compliance reports.
113 </p>
114 </div>
115</p>
116 </div>
117 </div>
118 <div class="paragraph">
119 <p>
120This is not a future scenario. It is already measurable, benchmarked, and accelerating.
121 </p>
122 </div>
123 <div class="sect1" id="_the_timeline_of_aiassisted_development">
124  <h2>The timeline of AI-assisted development</h2>
125 <div class="sectionbody">
126 <div class="paragraph">
127 <p>
128The shift has happened in barely five years. In 2020, AI in software development meant autocomplete -- Copilot-style code suggestions that saved a few keystrokes. By 2022, ChatGPT had replaced Stack Overflow as the first place developers looked for answers. In 2024, AI became embedded in CI/CD pipelines: generating tests, reviewing pull requests, checking architecture consistency. And in 2026, we have entered the era of agentic coding -- AI agents that plan, implement, and verify multi-step tasks autonomously.
129 </p>
130 </div>
131 <div class="paragraph">
132 <p>
133Each of these stages represents not just a feature improvement but a qualitative shift in what AI can do. We have gone from &quot;help me write a function&quot; to &quot;here is the specification, the constraints, and the context -- build the module, write the tests, and verify the output.&quot;
134 </p>
135 </div>
136 </div>
137 </div>
138 <div class="sect1" id="_the_numbers_do_not_lie">
139  <h2>The numbers do not lie</h2>
140 <div class="sectionbody">
141 <div class="paragraph">
142 <p>
143The benchmarks are clear and consistent across multiple independent studies.
144 </p>
145 </div>
146 <div class="paragraph">
147 <p>
14846% of code written by GitHub Copilot users is now AI-generated. A study across 4,000 developers showed a 26% productivity boost. Controlled experiments report 55% faster task completion.
149 </p>
150 </div>
151 <div class="paragraph">
152 <p>
153And these are already outdated figures. GPT-4 in 2023 was good at snippets. Claude 3.5 in 2024 could handle full-file rewrites. Claude Code in 2025 introduced agentic workflows -- multi-step tasks with self-correction. Claude Opus 4 brought multi-step planning, self-verification, and parallel agent execution.
154 </p>
155 </div>
156 <div class="paragraph">
157 <p>
158Every six months, a generation leap. The curve is not flattening -- it is steepening.
159 </p>
160 </div>
161 <div class="imageblock">
162 <div class="content">
163 <img src="cost-collapse.png" alt="Costs">
164 </div>
165 </div>
166 </div>
167 </div>
168 <div class="sect1" id="_what_becomes_economically_viable">
169  <h2>What becomes economically viable</h2>
170 <div class="sectionbody">
171 <div class="paragraph">
172 <p>
173The real impact is not that developers type less. It is that entire categories of projects that were previously too expensive suddenly become affordable.
174 </p>
175 </div>
176 <div class="paragraph">
177 <p>
178Legacy systems that were too expensive to replace? Now within reach. Custom softw
178are that was reserved for large budgets? Accessible to smaller companies. Complete test suites that nobody had time to write? Generated automatically.
179 </p>
180 </div>
181 <div class="paragraph">
182 <p>
183Consider the concrete numbers:
184 </p>
185 </div>
186 <table class="tableblock frame-all grid-all stretch">
187  <colgroup>
188   <col style="width: 33%;">
189   <col style="width: 33%;">
190   <col style="width: 33%;">
191  </colgroup>
192  <thead>
193   <tr>
194    <th class="tableblock halign-left">
195 Project     </th>
196    <th class="tableblock halign-left">
197 2020 (Traditional)     </th>
198    <th class="tableblock halign-left">
199 2026 (AI-Accelerated)    </th>
200   </tr>
201  </thead>
202  <tbody>
203   <tr>
204    <td class="tableblock halign-left">
205<p class="tableblock">
206 COBOL Migration (1M lines)</p>
207    </td>
208    <td class="tableblock halign-left">
209<p class="tableblock">
210 $9.1M, 18 months</p>
211    </td>
212    <td class="tableblock halign-left">
213<p class="tableblock">
214 $2-4M, 6-8 months</p>
215    </td>
216   </tr>
217   <tr>
218    <td class="tableblock halign-left">
219<p class="tableblock">
220 Custom CRM Development</p>
221    </td>
222    <td class="tableblock halign-left">
223<p class="tableblock">
224 $500K, 12 months</p>
225    </td>
226    <td class="tableblock halign-left">
227<p class="tableblock">
228 $80K, 3 months</p>
229    </td>
230   </tr>
231   <tr>
232    <td class="tableblock halign-left">
233<p class="tableblock">
234 Full Test Suite (legacy app)</p>
235    </td>
236    <td class="tableblock halign-left">
237<p class="tableblock">
238 $200K, 6 months</p>
239    </td>
240    <td class="tableblock halign-left">
241<p class="tableblock">
242 $15K, 2 weeks</p>
243    </td>
244   </tr>
245  </tbody>
246 </table>
247 <div class="paragraph">
248 <p>
249Same scope. Same quality. Fraction of the cost.
250 </p>
251 </div>
252 </div>
253 </div>
254 <div class="sect1" id="_why_this_matters_for_legacy_modernization">
255  <h2>Why this matters for legacy modernization</h2>
256 <div class="sectionbody">
257 <div class="paragraph">
258 <p>
259For decades, the standard answer to &quot;should we modernize?&quot; has been a cost-benefit analysis where the costs were terrifyingly high and the benefits were uncertain. That calculus has fundamentally changed.
260 </p>
261 </div>
262 <div class="paragraph">
263 <p>
264The average cost of modernization -- $9.1 million per Deloitte -- was the perfect excuse to do nothing. But when AI can reverse-engineer business rules from a COBOL codebase in two weeks instead of three months, when it can translate modules with verified behavioral equivalence, when it can generate test suites from golden datasets automatically, the cost curve collapses.
265 </p>
266 </div>
267 <div class="paragraph">
268 <p>
269This does not mean modernization becomes trivial. It means it becomes feasible. The economic barrier that protected legacy systems from replacement has eroded. What remains is the organizational will to act.
270 </p>
271 </div>
272 </div>
273 </div>
274 <div class="sect1" id="_the_inaction_tax_is_now_unbearable">
275  <h2>The inaction tax is now unbearable</h2>
276 <div class="sectionbody">
277 <div class="paragraph">
278 <p>
279When action cost millions and took years, inaction could be rationalized. The system works. The risk is too high. We will revisit next quarter.
280 </p>
281 </div>
282 <div class="paragraph">
283 <p>
284But when action costs a fraction of what it did, and the alternative is continuing to pay $200K per year just to keep the lights on, the calculation flips. The &quot;inaction tax&quot; -- the cumulative cost of maintaining, patching, and working around a legacy system -- now exceeds the cost of replacing it.
285 </p>
286 </div>
287 <div class="paragraph">
288 <p>
289When action costs almost nothing, inaction becomes inexcusable.
290 </p>
291 </div>
292 <div class="paragraph">
293 <p>
294In the next article, we will explore what this means for the people who build software. If AI is producing the code, what is the new role of the engineer?
295 </p>
296 </div>
297 <div class="paragraph">
298 <p>
299'''
300 </p>
301 </div>
302 <div class="paragraph">
303<em>This is the third in a series of five articles based on the talk &quot;Software Will Cost Almost Nothing. What Happens Next?&quot; Read the full series on our blog.</em> </div>
304 <div class="paragraph">
305<em>Sources: GitHub Copilot Impact Study (2025), McKinsey Digital Productivity Report (2024), Google DeepMind (2024), Deloitte Legacy Modernization Cost Analysis (2025), Lunatech client data.</em> </div>
306 </div>
307 </div>
308</article>
309      </section>
310    </div>
311  </div>
312</div>
313
314<span class="scroll-up material-symbols-outlined">expand_less</span>
315
316  </main>
317
318<footer class="footer">
319  <div class="footer__part">
320    <a class="logo-letter" href="/"><img src="/images/logo-lunatech-letter.svg" alt="Lunatech"></a>
321    <div class="social">
322      <a class="social__link" href="https://www.linkedin.com/company/lunatech-research"><img src="/images/linkedin.svg" alt="LinkedIn"></a>
323      <a class="social__link" href="https://twitter.com/lunatechlabs"><img src="/images/twitter.svg" alt="Twitter"></a>
324      <a class="social__link" href="https://github.com/lunatech-labs"><img src="/images/github.svg" alt="GitHub"></a>
325      <a class="social__link" href="https://www.instagram.com/lunatech_nl"><img src="/images/instagram.svg" alt="Instagram"></a>
326    </div>
327  </div>
328  <div class="footer__part">
329    <p>&copy; 
329<script>document.write(new Date().getFullYear())</script>
329 Lunatech. All rights reserved.</p>
330    <div class="flexbox">
331      <div class="stats">
332        <p class="stats__text">459<span>posts</span></p>
333      </div>
334      <a class="logo-visual" href="/"><img src="/images/logo-lunatech-visual.svg" alt="Lunatech"></a>
335    </div>
336  </div>
337</footer>
338
339  
339<script src="/js/highlight.pack.js"></script>
339
340  
340<script>
341    (function () {
342      var hl = window.hljs && (hljs.highlightElement || hljs.highlightBlock);
343      if (hl) { document.querySelectorAll('pre.highlight code, pre.highlightjs code').forEach(function (b) { hl.call(hljs, b); }); }
344
345      var header = document.querySelector('header');
346      var pd = document.getElementById('progress-display');
347      var po = document.getElementById('progress-over');
348      var pi = document.getElementById('progress-impend');
349      var su = document.querySelector('.scroll-up');
350
351      window.addEventListener('scroll', function () {
352        var top = window.scrollY || document.documentElement.scrollTop;
353        if (header) { header.classList.toggle('scroll', top > 700); }
354        if (pd) {
355          pd.style.display = top >= 80 ? 'block' : 'none';
356          var h = document.documentElement.scrollHeight - window.innerHeight;
357          var pct = h > 0 ? (100 / h * top) : 0;
358          if (po) { po.style.width = pct + '%'; }
359          if (pi) { pi.style.width = (100 - pct) + '%'; }
360        }
361        if (su) { su.style.display = top >= 4000 ? 'flex' : 'none'; }
362      });
363      if (su) { su.addEventListener('click', function () { window.scrollTo({ top: 0, behavior: 'smooth' }); }); }
364    })();
365  </script>
365
366</body>
367</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.