<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://tharuka.xyz/learn/feed.xml" rel="self" type="application/atom+xml" /><link href="https://tharuka.xyz/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-10-30T20:52:45+00:00</updated><id>https://tharuka.xyz/learn/feed.xml</id><title type="html">Tharuka Sarathchandra | Articles</title><subtitle>Senior Lead AI Engineer at Virtusa&apos;s AI Lab, working across machine learning, NLP, generative and agentic AI, knowledge graphs and data engineering. Trains, fine-tunes and deploys AI systems; former lecturer and creator of Wizard LK.</subtitle><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><entry xml:lang="en"><title type="html">AI Software Factory — How Is Software Development Changing?</title><link href="https://tharuka.xyz/learn/en/ai-native-development/software-factory/" rel="alternate" type="text/html" title="AI Software Factory — How Is Software Development Changing?" /><published>2026-10-30T18:30:00+00:00</published><updated>2026-10-30T18:30:00+00:00</updated><id>https://tharuka.xyz/learn/en/ai-native-development/software-factory</id><content type="html" xml:base="https://tharuka.xyz/learn/en/ai-native-development/software-factory/"><![CDATA[<p>Today, AI coding agents can write code, run tests, fix bugs and create pull requests.</p>

<p>But do we need to prompt and manage agents separately for every one of these tasks?</p>

<p>What if we designed the entire <strong>software development lifecycle (SDLC)</strong> as an automated workflow?</p>

<p>This is where the concept of an <strong>AI software factory</strong> becomes important.</p>

<h2 id="what-is-a-software-factory">What is a software factory?</h2>

<p>Put simply, a software factory connects different steps of the development process through AI agents, automated tools and human oversight, creating a repeatable workflow.</p>

<p>For example:</p>

<blockquote>
  <p><strong>Issue → Triage → Spec → Implement → Review → Verify → Deploy → Monitor</strong></p>
</blockquote>

<p>A triage agent analyzes the task. If needed, a specification agent clarifies the requirements. An implementation agent writes the code. Review and verification agents check the results.</p>

<p>The workflow can request human approval for risky changes. After deployment, issues found through monitoring can feed back into the workflow.</p>

<h2 id="how-does-this-differ-from-an-ai-harness">How does this differ from an AI harness?</h2>

<p>In an earlier article, we discussed <a href="/learn/en/ai-native-development/ai-harness-engineering/">AI harness engineering</a>.</p>

<p>An <strong>AI harness</strong> supplies the environment, tools, context and execution controls an agent needs to operate.</p>

<p>A <strong>software factory</strong> orchestrates the development workflow from planning through deployment and monitoring. It may use one or several harnesses to do this.</p>

<h2 id="what-does-an-effective-software-factory-need">What does an effective software factory need?</h2>

<ul>
  <li><strong>Automation</strong> — Orchestrate workflows across agents and tools.</li>
  <li><strong>Context + skills</strong> — Provide project knowledge, rules and reusable skills.</li>
  <li><strong>Human in the loop</strong> — Require human approval for important decisions and risky changes.</li>
  <li><strong>Self-improvement</strong> — Improve skills and workflows using errors, review feedback and performance results.</li>
</ul>

<h2 id="light-factory-vs-dark-factory">Light factory vs dark factory</h2>

<p>We can think about two ways of running a software factory, depending on its level of automation.</p>

<ul>
  <li><strong>Light factory</strong> — AI agents do the work, with human review and approval as part of the process.</li>
  <li><strong>Dark factory</strong> — Activities such as code generation, review and deployment run automatically without routine human intervention.</li>
</ul>

<p>Not every project is suitable for a fully dark factory.</p>

<p>The concepts of <a href="/learn/en/ai-native-development/review-tax/">one-way and two-way doors, and blast radius</a> from the previous article can help us automate more low-risk changes while retaining human approval for high-risk changes.</p>

<p>For that reason, a <strong>hybrid approach</strong> is often more practical.</p>

<h2 id="what-is-a-self-improving-factory">What is a self-improving factory?</h2>

<p>It helps to think in terms of two loops:</p>

<ul>
  <li><strong>Inner loop</strong> — Develop software by resolving issues.</li>
  <li><strong>Outer loop</strong> — Improve the factory’s skills, rules and workflows using agent failures, review feedback and metrics.</li>
</ul>

<p>We continuously improve both the software and the system that creates it. Changes to that system should undergo validation and appropriate human oversight.</p>

<h2 id="how-does-our-focus-as-software-engineers-change">How does our focus as software engineers change?</h2>

<p>Our goal is to deliver more valuable software while maintaining quality and optimizing human time, token cost, review time and rework, rather than simply generating more code or pull requests.</p>

<p>That requires measuring the factory’s performance, identifying weaknesses and improving its workflows.</p>

<hr />

<p>This is the key shift in the <strong>software factory mindset</strong>:</p>

<p>We build software, and <strong>we engineer the system that builds the software</strong>.</p>

<p>How much of your project’s development workflow do you think could be automated with AI agents? Share your thoughts in a comment.</p>

<p>If this article was useful, share it with a friend. We will explore another technical topic in the next article.</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="SoftwareFactory" /><category term="AgenticAI" /><category term="AIEngineering" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[Connect AI agents, automated tools and human oversight into a repeatable workflow across the software development lifecycle, and improve the system that builds your software.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/software-factory-en.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/software-factory-en.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="si"><title type="html">AI Software Factory – Software Develop කරන ක්‍රමය වෙනස් වෙන්නේ කොහොමද?</title><link href="https://tharuka.xyz/learn/ai-native-development/software-factory/" rel="alternate" type="text/html" title="AI Software Factory – Software Develop කරන ක්‍රමය වෙනස් වෙන්නේ කොහොමද?" /><published>2026-10-30T18:30:00+00:00</published><updated>2026-10-30T18:30:00+00:00</updated><id>https://tharuka.xyz/learn/ai-native-development/software-factory</id><content type="html" xml:base="https://tharuka.xyz/learn/ai-native-development/software-factory/"><![CDATA[<p>අද AI Coding Agents භාවිතයෙන් අපිට Code ලියන්න, Tests Run කරන්න, Bugs Fix කරන්න සහ PRs නිර්මාණය කරන්න පුළුවන්.</p>

<p>නමුත් මේ හැම Task එකකටම අපි වෙන වෙනම Prompts ලබාදීලා Agents Manage කරන්න ඕනද?</p>

<p>ඒ වෙනුවට සම්පූර්ණ <strong>Software Development Lifecycle (SDLC)</strong> එක Automated Workflow එකක් විදිහට සැලසුම් කළොත්?</p>

<p>මෙතැනදී තමයි <strong>AI Software Factory</strong> කියන සංකල්පය වැදගත් වෙන්නේ.</p>

<h2 id="මොකක්ද-software-factory-එකක්">මොකක්ද Software Factory එකක්?</h2>

<p>සරලව කිව්වොත්, Software Development Process එකේ විවිධ පියවර AI Agents, Automated Tools සහ Human Oversight එකට සම්බන්ධ කරලා, නැවත නැවත භාවිත කළ හැකි Workflow එකක් නිර්මාණය කිරීමයි.</p>

<p>උදාහරණයක් විදිහට:</p>

<blockquote>
  <p><strong>Issue → Triage → Spec → Implement → Review → Verify → Deploy → Monitor</strong></p>
</blockquote>

<p>මෙහිදී Triage Agent එකක් Task එක විශ්ලේෂණය කරනවා. අවශ්‍ය නම් Spec Agent එකක් Requirements පැහැදිලි කරනවා. Implementation Agent එක Code ලියනවා. Review සහ Verification Agents ප්‍රතිඵල පරීක්ෂා කරනවා.</p>

<p>අවදානම් සහිත අවස්ථාවල Human Approval ලබාගන්නත්, Deploy කළාට පස්සේ Monitoring හරහා හඳුනාගන්නා Issues නැවත Workflow එකට යොමු කරන්නත් පුළුවන්.</p>

<h2 id="ai-harness-එකකට-වඩා-මෙය-වෙනස්-වෙන්නේ-කොහොමද">AI Harness එකකට වඩා මෙය වෙනස් වෙන්නේ කොහොමද?</h2>

<p>කලින් Post එකක අපි <a href="/learn/ai-native-development/ai-harness-engineering/">AI Harness Engineering</a> ගැන කතා කළා.</p>

<p><strong>AI Harness</strong> එකකින් Agent එකක් ක්‍රියාත්මක වීමට අවශ්‍ය Environment, Tools, Context සහ Execution Controls සපයනවා.</p>

<p><strong>Software Factory</strong> එකකින් Planning සිට Deployment සහ Monitoring දක්වා Development Workflow එක Orchestrate කරනවා. ඒ සඳහා Harness එකක් හෝ කිහිපයක් භාවිත කරන්න පුළුවන්.</p>

<h2 id="effective-software-factory-එකකට-අවශ්ය-මොනවාද">Effective Software Factory එකකට අවශ්‍ය මොනවාද?</h2>

<ul>
  <li><strong>Automation</strong> – Agents සහ Tools අතර Workflows Orchestrate කිරීම.</li>
  <li><strong>Context + Skills</strong> – Project Knowledge, Rules සහ Reusable Skills ලබාදීම.</li>
  <li><strong>Human in the Loop</strong> – වැදගත් තීරණ සහ අවදානම් සහිත වෙනස්කම් සඳහා Human Approval.</li>
  <li><strong>Self-Improvement</strong> – Errors, Review Feedback සහ Performance අනුව Skills සහ Workflows වැඩිදියුණු කිරීම.</li>
</ul>

<h2 id="light-factory-vs-dark-factory">Light Factory vs Dark Factory</h2>

<p>Automation මට්ටම අනුව Software Factories ක්‍රියාත්මක කරන ආකාර දෙකක් ගැන හිතන්න පුළුවන්.</p>

<ul>
  <li><strong>Light Factory</strong> – AI Agents වැඩ කරන අතර Human Review සහ Approval ක්‍රියාවලියේ කොටසක් වෙනවා.</li>
  <li><strong>Dark Factory</strong> – Code Generation, Review සහ Deployment වගේ ක්‍රියාවලීන් සාමාන්‍ය Human Intervention එකකින් තොරව ස්වයංක්‍රීයව සිදු වෙනවා.</li>
</ul>

<p>නමුත් හැම Project එකක්ම සම්පූර්ණ Dark Factory එකක් බවට පත් කරන්න සුදුසු නැහැ.</p>

<p>කලින් Post එකේ කතා කළ <a href="/learn/ai-native-development/review-tax/">One-Way / Two-Way Door සහ Blast Radius</a> වගේ සංකල්ප භාවිත කරලා, Low-Risk Changes වැඩි වශයෙන් Automate කරන්නත්, High-Risk Changes සඳහා Human Approval පවත්වාගන්නත් පුළුවන්.</p>

<p>ඒ නිසා බොහෝ අවස්ථාවල <strong>Hybrid Approach</strong> එකක් වඩාත් ප්‍රායෝගිකයි.</p>

<h2 id="self-improving-factory-එකක්-කියන්නේ-මොකක්ද">Self-Improving Factory එකක් කියන්නේ මොකක්ද?</h2>

<p>මෙහිදී Loops දෙකක් ගැන හිතන්න පුළුවන්.</p>

<ul>
  <li><strong>Inner Loop</strong> – Issues විසඳමින් Software Develop කිරීම.</li>
  <li><strong>Outer Loop</strong> – Agent Failures, Review Feedback සහ Metrics භාවිතයෙන් Factory එකේ Skills, Rules සහ Workflows වැඩිදියුණු කිරීම.</li>
</ul>

<p>ඒ කියන්නේ අපි Software එක විතරක් නොවෙයි, Software නිර්මාණය කරන පද්ධතියත් අඛණ්ඩව වැඩිදියුණු කරනවා. මෙවැනි වෙනස්කම් Validation සහ සුදුසු Human Oversight යටතේ සිදු විය යුතුයි.</p>

<h2 id="software-engineers-විදිහට-අපේ-අවධානය-වෙනස්-වෙන්නේ-කොහොමද">Software Engineers විදිහට අපේ අවධානය වෙනස් වෙන්නේ කොහොමද?</h2>

<p>අපේ අරමුණ වැඩි Code හෝ PRs ප්‍රමාණයක් Generate කිරීම විතරක් නෙවෙයි. Software Quality පවත්වාගෙන යමින්, Human Time, Token Cost, Review Time සහ Rework Optimize කරලා වැඩි වටිනාකමක් ඇති Software Deliver කිරීමයි.</p>

<p>ඒ සඳහා Factory එකේ Performance මැනීමත්, අඩුපාඩු හඳුනාගෙන Workflows වැඩිදියුණු කිරීමත් වැදගත්.</p>

<hr />

<p><strong>Software Factory Mindset</strong> එකේ වැදගත්ම වෙනස මෙයයි.</p>

<p>අපි Software එක නිර්මාණය කරනවා විතරක් නෙවෙයි. <strong>Software එක නිර්මාණය කරන පද්ධතියත් Engineer කරනවා.</strong></p>

<p>ඔබේ Project එකේ Software Development Workflow එකෙන් කොපමණ ප්‍රමාණයක් AI Agents භාවිතයෙන් Automate කරන්න පුළුවන් කියලා හිතනවද? ඔබේ අදහස් Comment එකකින් බෙදාගන්න.</p>

<p>මේ Post එක වැදගත් වුණා නම් ඔබේ මිතුරන් එක්කත් Share කරන්න. තවත් රසවත් තාක්ෂණික මාතෘකාවකින් ඊළඟ Post එකෙන් හමුවෙමු!</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="SoftwareFactory" /><category term="AgenticAI" /><category term="AIEngineering" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[AI Agents, Automated Tools සහ Human Oversight එකට සම්බන්ධ කරලා, සම්පූර්ණ Software Development Lifecycle එක නැවත නැවත භාවිත කළ හැකි Workflow එකක් විදිහට සැලසුම් කරන්නේ කොහොමද?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/software-factory-si.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/software-factory-si.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Code Review and Review Tax in the Agentic AI Era — Does Every PR Need the Same Review?</title><link href="https://tharuka.xyz/learn/en/ai-native-development/review-tax/" rel="alternate" type="text/html" title="Code Review and Review Tax in the Agentic AI Era — Does Every PR Need the Same Review?" /><published>2026-10-30T07:30:00+00:00</published><updated>2026-10-30T07:30:00+00:00</updated><id>https://tharuka.xyz/learn/en/ai-native-development/review-tax</id><content type="html" xml:base="https://tharuka.xyz/learn/en/ai-native-development/review-tax/"><![CDATA[<p>AI coding agents let us generate code and create pull requests very quickly.</p>

<p>But does the speed of reviewing that code and getting it into production increase just as much?</p>

<p>This is where the concept of <strong>review tax</strong> matters.</p>

<p>As AI-generated PRs multiply, reviewing, validating and correcting them can take more time. Code generation becomes faster, while the overall development process may become slower.</p>

<h2 id="does-every-pr-need-the-same-attention">Does every PR need the same attention?</h2>

<p>No. A few concepts help us decide how much review a change needs.</p>

<h3 id="1-one-way-doors-and-two-way-doors">1. One-way doors and two-way doors</h3>

<ul>
  <li><strong>Two-way door</strong> — A change that can easily be reverted, such as a limited UI change.</li>
  <li><strong>One-way door</strong> — A change that is difficult or expensive to reverse, such as deleting production data.</li>
</ul>

<h3 id="2-blast-radius">2. Blast radius</h3>

<p>How much of the system could the PR affect? Changing a small UI component and changing the authentication system do not carry the same risk.</p>

<h3 id="3-evidence-based-review">3. Evidence-based review</h3>

<p>An agent saying “tests pass” is not enough. Real evidence, such as test results, screenshots and before/after behavior, matters.</p>

<h2 id="how-should-the-review-process-change">How should the review process change?</h2>

<p>For PRs that are <strong>low risk, have a small blast radius and are easy to reverse</strong>, AI code review, automated tests and CI checks can support reduced human review or auto-merge, within appropriate safeguards.</p>

<p>Changes that are <strong>high risk, have a large blast radius or are difficult to reverse</strong> need greater attention and human approval.</p>

<p>AI can also help assess risk. Controls that validate those assessments remain important.</p>

<h2 id="what-should-software-engineers-focus-on">What should software engineers focus on?</h2>

<p>Our goal is to maintain software quality, allocate review effort according to risk, and move changes safely into production.</p>

<blockquote>
  <p>Give the most engineering attention to the PRs with the greatest risk, instead of spending the same review time on every PR.</p>
</blockquote>

<p>Does your team have a dedicated process for reviewing AI-generated PRs? Share your thoughts.</p>

<p>In the next article, we will discuss the concept of an <strong>AI software factory</strong>.</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="AgenticAI" /><category term="CodeReview" /><category term="ReviewTax" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[AI can generate pull requests quickly. Getting those changes safely into production requires review effort that matches their risk.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/review-tax-en.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/review-tax-en.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="si"><title type="html">Agentic AI යුගයේ Code Review සහ Review Tax – හැම PR එකක්ම එකම විදිහට Review කරන්න ඕනද?</title><link href="https://tharuka.xyz/learn/ai-native-development/review-tax/" rel="alternate" type="text/html" title="Agentic AI යුගයේ Code Review සහ Review Tax – හැම PR එකක්ම එකම විදිහට Review කරන්න ඕනද?" /><published>2026-10-30T07:30:00+00:00</published><updated>2026-10-30T07:30:00+00:00</updated><id>https://tharuka.xyz/learn/ai-native-development/review-tax</id><content type="html" xml:base="https://tharuka.xyz/learn/ai-native-development/review-tax/"><![CDATA[<p>AI Coding Agents භාවිතයෙන් අද අපිට ඉතා වේගයෙන් Code Generate කරන්න සහ Pull Requests (PRs) නිර්මාණය කරන්න පුළුවන්.</p>

<p>නමුත් Code ලියන වේගය වැඩි වුණාට, ඒ Code එක Review කරලා Production එකට යොමු කරන වේගයත් ඒ තරමටම වැඩි වෙනවද?</p>

<p>මෙතැනදී තමයි <strong>Review Tax</strong> කියන සංකල්පය වැදගත් වෙන්නේ.</p>

<p>AI-generated PRs වැඩි වෙනකොට ඒවා Review කරන්න, Validate කරන්න සහ නැවත නිවැරදි කරන්න වැඩි කාලයක් වැය වෙන්න පුළුවන්. අවසානයේ Code Generation වේගවත් වුණත් සමස්ත Development Process එක මන්දගාමී වෙන්න පුළුවන්.</p>

<h2 id="හැම-pr-එකකටම-එකම-අවධානය-දෙන්න-ඕනද">හැම PR එකකටම එකම අවධානය දෙන්න ඕනද?</h2>

<p>නැහැ! මෙතැනදී වැදගත් සංකල්ප කිහිපයක් තියෙනවා.</p>

<h3 id="1-one-way-door-vs-two-way-door">1. One-Way Door vs Two-Way Door</h3>

<ul>
  <li><strong>Two-Way Door</strong> – පහසුවෙන් Revert කරන්න පුළුවන් වෙනස්කම්. උදා: සීමිත UI වෙනස්කමක්.</li>
  <li><strong>One-Way Door</strong> – ආපසු හැරවීම අපහසු හෝ වියදම් අධික වෙනස්කම්. උදා: Production Data Delete කිරීමක්.</li>
</ul>

<h3 id="2-blast-radius">2. Blast Radius</h3>

<p>PR එකකින් System එකේ කොපමණ කොටසකට බලපෑමක් ඇති වෙන්න පුළුවන්ද? කුඩා UI Component එකක් වෙනස් කිරීම සහ Authentication System එක වෙනස් කිරීම අතර අවදානම එකම මට්ටමේ නැහැ.</p>

<h3 id="3-evidence-based-review">3. Evidence-Based Review</h3>

<p>AI Agent එක “Tests Pass” කියලා පැවසීම විතරක් ප්රමාණවත් නැහැ. Test Results, Screenshots සහ Before/After Behavior වගේ සැබෑ Evidence ලබාදීමත් වැදගත්.</p>

<h2 id="එහෙනම්-review-process-එක-වෙනස්-කරන්නේ-කොහොමද">එහෙනම් Review Process එක වෙනස් කරන්නේ කොහොමද?</h2>

<p><strong>Low Risk + Small Blast Radius + Easily Reversible</strong> PRs සඳහා AI Code Review, Automated Tests සහ CI Checks භාවිත කරලා, සුදුසු ආරක්ෂක සීමාවන් යටතේ Human Review අඩු කරන්න හෝ Auto-Merge කරන්න පුළුවන්.</p>

<p>නමුත් <strong>High Risk, Large Blast Radius</strong> හෝ <strong>Difficult-to-Reverse</strong> වෙනස්කම් සඳහා වැඩි අවධානයක් සහ Human Approval අවශ්යයි.</p>

<p>මේ Risk Assessment එකත් AI මඟින් සිදු කරන්න පුළුවන්. නමුත් ඒ තීරණ Validate කරන Controls තිබීම වැදගත්.</p>

<h2 id="software-engineers-විදිහට-අපි-අවධානය-දෙන්න-ඕන-මොකක්ද">Software Engineers විදිහට අපි අවධානය දෙන්න ඕන මොකක්ද?</h2>

<p>AI යුගයේ අපේ අරමුණ වැඩි PR ප්රමාණයක් Generate කිරීම විතරක් නෙවෙයි. Software Quality පවත්වාගෙන යමින්, අවදානම අනුව Review Effort එක වෙන් කරලා, Changes ආරක්ෂිතව Production එකට යොමු කිරීමයි.</p>

<blockquote>
  <p>හැම PR එකකටම සමාන Review Time එකක් වැය කරනවා වෙනුවට, වැඩිම අවදානමක් තියෙන PR වලට වැඩිම Engineering Attention එක ලබාදීමයි වැදගත්.</p>
</blockquote>

<p>ඔබේ Team එකේ AI-generated PRs Review කරන්න වෙනම Process එකක් තියෙනවද? ඔබේ අදහස් Comment එකකින් බෙදාගන්න.</p>

<p>මීළඟ Post එකෙන් <strong>AI Software Factory</strong> කියන සංකල්පය කතා කරමු!</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="AgenticAI" /><category term="CodeReview" /><category term="ReviewTax" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[AI Coding Agents භාවිතයෙන් අද අපිට ඉතා වේගයෙන් Code Generate කරන්න සහ Pull Requests (PRs) නිර්මාණය කරන්න පුළුවන්. නමුත් Review කරන වේගයත් ඒ තරමටම වැඩි වෙනවද?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/review-tax.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/review-tax.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">AI Coding Agents and the Doom Loop — The Real Cost of Poor Context</title><link href="https://tharuka.xyz/learn/en/ai-native-development/doom-loop/" rel="alternate" type="text/html" title="AI Coding Agents and the Doom Loop — The Real Cost of Poor Context" /><published>2026-10-30T06:30:00+00:00</published><updated>2026-10-30T06:30:00+00:00</updated><id>https://tharuka.xyz/learn/en/ai-native-development/doom-loop</id><content type="html" xml:base="https://tharuka.xyz/learn/en/ai-native-development/doom-loop/"><![CDATA[<p>Sometimes, when we give an AI coding agent a task, it does not deliver the result we expect. We prompt again. The code changes. The problem remains.</p>

<p>This cycle of repeatedly circling the same problem is called a <strong>doom loop</strong>.</p>

<p>One major cause is <strong>poor context</strong>.</p>

<p>Suppose our project’s architecture has changed, but the agent is still using old documentation. Even if it writes good code, the implementation may not match the actual requirements.</p>

<blockquote>
  <p>Wrong context → Wrong implementation → Re-prompting → Rework → Higher token use and development cost.</p>
</blockquote>

<h2 id="is-more-context-the-solution">Is more context the solution?</h2>

<p><strong>Not necessarily.</strong></p>

<p>Connecting every document, data source and MCP server in a project does not guarantee better results.</p>

<p>As the amount of information grows, identifying the right information can become harder, especially when sources are outdated, irrelevant or contradictory.</p>

<p><strong>Having access to information and identifying the right information are two different things.</strong></p>

<h2 id="what-is-the-solution">What is the solution?</h2>

<p>This is where <strong>context engineering</strong> and the idea of a <strong>context engine</strong> become useful.</p>

<p>We should focus on:</p>

<ul>
  <li><strong>Relevant context</strong> — Supply the information needed for the task.</li>
  <li><strong>Up-to-date context</strong> — Use accurate, current sources rather than outdated documentation.</li>
  <li><strong>Smart retrieval</strong> — Identify relationships between GitHub PRs, tickets, logs and documentation to retrieve what is needed.</li>
  <li><strong>Conflict resolution</strong> — Identify contradictory requirements and decisions, then confirm which information is correct.</li>
  <li><strong>Validation and feedback</strong> — Check whether the agent’s results match the real requirements.</li>
</ul>

<p>Adding AGENTS.md, rules files or MCP servers can help. The information they provide must also be accurate, relevant and trustworthy.</p>

<h2 id="what-should-software-engineers-focus-on">What should software engineers focus on?</h2>

<p>We need to <strong>engineer a way to provide the right context, at the right time, in the right amount</strong>.</p>

<p>This can reduce doom loops and unnecessary rework, optimize token use and development cost, and improve software quality and development efficiency.</p>

<hr />

<p><strong>The model’s capabilities matter. To use those capabilities effectively, the quality of the context it receives matters just as much.</strong></p>

<p>Have you experienced a doom loop while working with AI coding agents? Share your experience.</p>

<p>In the next article, we will discuss code reviews and the “review tax” in the agentic AI era.</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="ContextEngineering" /><category term="AIAgents" /><category term="DoomLoop" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[When an agent keeps changing code without solving the problem, the missing ingredient may be relevant, current and trustworthy context.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/doom-loop-en.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/doom-loop-en.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="si"><title type="html">AI Coding Agents සහ Doom Loop – වැරදි Context එකේ සැබෑ පිරිවැය</title><link href="https://tharuka.xyz/learn/ai-native-development/doom-loop/" rel="alternate" type="text/html" title="AI Coding Agents සහ Doom Loop – වැරදි Context එකේ සැබෑ පිරිවැය" /><published>2026-10-30T06:30:00+00:00</published><updated>2026-10-30T06:30:00+00:00</updated><id>https://tharuka.xyz/learn/ai-native-development/doom-loop</id><content type="html" xml:base="https://tharuka.xyz/learn/ai-native-development/doom-loop/"><![CDATA[<p>AI Coding Agent එකකට Task එකක් දුන්නාම සමහර වෙලාවට බලාපොරොත්තු වෙන ප්රතිඵලය ලැබෙන්නේ නැහැ. නැවත Prompt කරනවා, Code වෙනස් කරනවා, ඒත් ප්රශ්නය විසඳෙන්නේ නැහැ.</p>

<p>මේ විදිහට එකම ගැටලුව වටා නැවත නැවත යන තත්ත්වය <strong>Doom Loop</strong> ලෙස හඳුන්වනවා.</p>

<p>මෙයට බලපාන ප්රධාන හේතුවක් තමයි <strong>Poor Context</strong>.</p>

<p>හිතන්න අපේ Project එකේ Architecture එක වෙනස් වෙලා. නමුත් AI Agent එක තවමත් පරණ Documentation භාවිත කරනවා කියලා. එතකොට Agent එක හොඳ Code එකක් ලිව්වත්, ඒක සැබෑ Requirements වලට ගැළපෙන්නේ නැති වෙන්න පුළුවන්.</p>

<blockquote>
  <p>වැරදි Context → වැරදි Implementation → Re-prompting → Rework → වැඩි Token Usage සහ Development Cost.</p>
</blockquote>

<h2 id="වැඩි-context-ලබාදීම-විසඳුමක්ද">වැඩි Context ලබාදීම විසඳුමක්ද?</h2>

<p><strong>අනිවාර්යයෙන්ම නැහැ!</strong></p>

<p>අපේ Project එකේ තියෙන හැම Documentation එකක්ම, Data Source එකක්ම සහ MCP Server එකක්ම Agent එකට සම්බන්ධ කළා කියලා ප්රතිඵල වඩා හොඳ වෙනවා කියලා සහතික කරන්න බැහැ.</p>

<p>තොරතුරු ප්රමාණය වැඩි වෙනකොට Agent එකට නිවැරදි තොරතුරු හඳුනාගැනීම අපහසු වෙන්න පුළුවන්. විශේෂයෙන් පරණ, අදාළ නොවන හෝ එකිනෙකට පටහැනි තොරතුරු තියෙන විට.</p>

<p><strong>Information Access තිබීම සහ නිවැරදි Information එක හඳුනාගැනීම කියන්නේ වෙනස් දේවල් දෙකක්.</strong></p>

<h2 id="එහෙනම්-විසඳුම-මොකක්ද">එහෙනම් විසඳුම මොකක්ද?</h2>

<p>මෙතැනදී තමයි <strong>Context Engineering</strong> සහ <strong>Context Engine</strong> සංකල්ප වැදගත් වෙන්නේ.</p>

<p>අපි අවධානය දෙන්න ඕන:</p>

<ul>
  <li><strong>Relevant Context</strong> – Task එකට අවශ්ය තොරතුරු පමණක් ලබාදීම.</li>
  <li><strong>Up-to-date Context</strong> – පරණ Documentation වෙනුවට නිවැරදි සහ යාවත්කාලීන Sources භාවිත කිරීම.</li>
  <li><strong>Smart Retrieval</strong> – GitHub PRs, Tickets, Logs සහ Documentation අතර සම්බන්ධතා හඳුනාගෙන අවශ්ය දේ ලබාගැනීම.</li>
  <li><strong>Conflict Resolution</strong> – එකිනෙකට පටහැනි Requirements සහ Decisions හඳුනාගෙන නිවැරදි තොරතුරු තහවුරු කිරීම.</li>
  <li><strong>Validation &amp; Feedback</strong> – Agent එකේ ප්රතිඵල සැබෑ Requirements වලට ගැළපෙනවද පරීක්ෂා කිරීම.</li>
</ul>

<p>AGENTS.md, Rules Files හෝ MCP Servers එකතු කිරීම ප්රයෝජනවත් වුණත්, ඒවා හරහා ලැබෙන තොරතුරු නිවැරදිද, අදාළද සහ විශ්වාසදායකද කියන එකත් වැදගත්.</p>

<h2 id="software-engineers-විදිහට-අපි-අවධානය-දෙන්න-ඕන-මොකක්ද">Software Engineers විදිහට අපි අවධානය දෙන්න ඕන මොකක්ද?</h2>

<p>AI Agent එකට හැකි තරම් Context ලබාදීම වෙනුවට, <strong>නිවැරදි Context එක අවශ්ය වෙලාවට, අවශ්ය ප්රමාණයෙන් ලබාදෙන ක්රමවේදයක් Engineer කිරීමයි</strong> වැදගත්.</p>

<p>ඒ හරහා Doom Loops සහ අනවශ්ය Rework අඩු කරලා, Token Usage සහ Development Cost Optimize කරමින් Software Quality සහ Development Efficiency වැඩිදියුණු කරන්න පුළුවන්.</p>

<hr />

<p><strong>AI Model එකේ හැකියාවන් වැදගත්. නමුත් ඒ හැකියාවන් නිවැරදිව භාවිත වෙන්න නම්, Model එකට ලැබෙන Context එකේ Quality එකත් ඒ තරමටම වැදගත්.</strong></p>

<p>ඔබත් AI Coding Agents භාවිත කරද්දී මේ වගේ Doom Loops වලට මුහුණ දීලා තියෙනවද? ඔබේ අත්දැකීම් Comment එකකින් බෙදාගන්න.</p>

<p>මීළඟ Post එකෙන් Agentic AI යුගයේ Code Reviews සහ “Review Tax” ගැන කතා කරමු!</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="ContextEngineering" /><category term="AIAgents" /><category term="DoomLoop" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[AI Coding Agent එකකට Task එකක් දුන්නාම සමහර වෙලාවට බලාපොරොත්තු වෙන ප්රතිඵලය ලැබෙන්නේ නැහැ. මේ විදිහට එකම ගැටලුව වටා නැවත නැවත යන තත්ත්වය Doom Loop ලෙස හඳුන්වනවා.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/doom-loop.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/doom-loop.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">AI Harness Engineering — Software Engineering Beyond the Prompt</title><link href="https://tharuka.xyz/learn/en/ai-native-development/ai-harness-engineering/" rel="alternate" type="text/html" title="AI Harness Engineering — Software Engineering Beyond the Prompt" /><published>2026-10-30T05:30:00+00:00</published><updated>2026-10-30T05:30:00+00:00</updated><id>https://tharuka.xyz/learn/en/ai-native-development/ai-harness-engineering</id><content type="html" xml:base="https://tharuka.xyz/learn/en/ai-native-development/ai-harness-engineering/"><![CDATA[<p>When we talk about AI today, much of our attention goes to the capabilities of models such as GPT, Claude and Gemini. But is a capable model alone enough to build reliable software or an agentic application?</p>

<p>This is where <strong>AI harness engineering</strong> becomes important.</p>

<h2 id="what-is-an-ai-harness">What is an AI harness?</h2>

<p>When we use an LLM on its own, it usually returns a response to our input. An agentic task involves more than a single response.</p>

<p>Suppose we ask AI: <em>“Add a feature to this project and check that it works correctly.”</em></p>

<p>The AI needs to read files, change code, run tests, identify errors and fix them.</p>

<p>It might use an execution loop such as <strong>Read → Plan → Act → Observe → Evaluate → Repeat</strong>. Not every agentic workflow needs to follow exactly that sequence.</p>

<p>It is useful to distinguish the agent from its harness:</p>

<table class="defs">
  <thead>
    <tr>
      <th> </th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>AI agent</strong></td>
      <td>A system that decides what to do next to achieve a goal and uses the necessary tools.</td>
    </tr>
    <tr>
      <td><strong>AI harness</strong></td>
      <td>The software infrastructure that supplies the agent’s execution environment, tools, context and controls, and manages its execution loop or workflow.</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>Put simply, the agent decides what to do next. The harness provides the facilities to carry out those decisions and control the process. In practice, some frameworks combine these responsibilities.</p>
</blockquote>

<p>The harness also manages the process until the task is complete, a defined limit is reached or human intervention is needed.</p>

<p>It may include capabilities for context, memory, tools, security, permissions and evaluation.</p>

<p>The harnesses used by coding agents such as Claude Code and OpenAI Codex are examples.</p>

<h2 id="can-we-customize-a-harness">Can we customize a harness?</h2>

<p>Yes. We can customize an existing harness, such as Codex or Claude Code, to fit a project.</p>

<p>For example:</p>

<ul>
  <li><strong>Rules</strong> — Architecture, coding standards and business rules.</li>
  <li><strong>Skills</strong> — Reusable workflows for the project.</li>
  <li><strong>MCP / tools</strong> — Connections to databases, APIs, logs and external systems.</li>
  <li><strong>Hooks</strong> — Automated tests and security checks.</li>
  <li><strong>Context and memory</strong> — Project documentation and technical decisions.</li>
  <li><strong>Evaluation and feedback</strong> — Checking results and improving them.</li>
</ul>

<p>Much of this can be done without changing the harness’s source code.</p>

<h2 id="why-build-our-own-harness">Why build our own harness?</h2>

<p>Imagine building a specialized AI agent for a banking application.</p>

<p>It may need strict security policies, local LLM use, language validation, sensitive data protection, audit logs, observability, compliance checks and human approval.</p>

<p>For such a use case, we could customize an existing harness or build a <strong>domain-specific harness</strong> using frameworks such as Google ADK or LangGraph.</p>

<p>The right approach depends on the requirements of the use case.</p>

<h2 id="what-should-software-engineers-focus-on">What should software engineers focus on?</h2>

<p>We should pay attention to <strong>engineering the harness</strong> to fit the project, alongside writing prompts.</p>

<p>For example, we can add UI testing through Playwright, application-log access, project context through MCP and automated feedback loops.</p>

<p>Designing these well can reduce unnecessary iterations, optimize token use and development cost, and improve software quality and development efficiency.</p>

<hr />

<p><strong>Our goal is to maintain software quality while making the development process more efficient.</strong> The environment in which AI works needs careful engineering too. That is why harness engineering matters.</p>

<p>If this article was useful, share it with a friend. Share your thoughts and experiences with harness engineering as well.</p>

<p>We will explore another technical topic in the next article.</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="AIHarness" /><category term="HarnessEngineering" /><category term="AgenticAI" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[A capable model alone does not guarantee reliable software. Its tools, context, execution environment and controls matter too.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/ai-harness-en.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/ai-harness-en.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="si"><title type="html">AI Harness Engineering – Prompt එකෙන් ඔබ්බට යන Software Engineering</title><link href="https://tharuka.xyz/learn/ai-native-development/ai-harness-engineering/" rel="alternate" type="text/html" title="AI Harness Engineering – Prompt එකෙන් ඔබ්බට යන Software Engineering" /><published>2026-10-30T05:30:00+00:00</published><updated>2026-10-30T05:30:00+00:00</updated><id>https://tharuka.xyz/learn/ai-native-development/ai-harness-engineering</id><content type="html" xml:base="https://tharuka.xyz/learn/ai-native-development/ai-harness-engineering/"><![CDATA[<p>අද AI ගැන කතා කරනකොට අපි වැඩිපුර අවධානය දෙන්නේ GPT, Claude, Gemini වගේ Models වල හැකියාවන් ගැන. නමුත් හොඳ AI Model එකක් තිබුණා කියලා විතරක් විශ්වාසදායක Software එකක් හෝ Agentic Application එකක් නිර්මාණය කරන්න පුළුවන්ද?</p>

<p>මෙතැනදී තමයි <strong>AI Harness Engineering</strong> වැදගත් වෙන්නේ.</p>

<h2 id="මොකක්ද-ai-harness-එකක්">මොකක්ද AI Harness එකක්?</h2>

<p>LLM එකක් තනිව භාවිත කරන විට සාමාන්යයෙන් අපේ Input එකට Response එකක් ලබාදෙනවා. නමුත් Agentic Task එකකදී ඒ Response එකෙන් පමණක් නවතින්නේ නැහැ.</p>

<p>හිතන්න අපි AI එකට කියනවා, <em>“මේ Project එකට Feature එකක් එකතු කරලා, ඒක නිවැරදිව වැඩ කරනවද පරීක්ෂා කරන්න”</em> කියලා.</p>

<p>මෙතැනදී AI එකට Files කියවන්න, Code වෙනස් කරන්න, Tests Run කරන්න, Errors හඳුනාගෙන නැවත නිවැරදි කරන්න සිදුවෙනවා.</p>

<p>ඒ සඳහා <strong>Read → Plan → Act → Observe → Evaluate → Repeat</strong> වගේ Execution Loop එකක් භාවිත කරන්න පුළුවන්. හැබැයි හැම Agentic Workflow එකක්ම මේ ආකාරයට ක්රියාත්මක වෙන්න අවශ්ය නැහැ.</p>

<p>මෙතැනදී AI Agent එක සහ Harness එක අතර වෙනසත් තේරුම් ගන්න ඕන.</p>

<table class="defs">
  <thead>
    <tr>
      <th> </th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>AI Agent</strong></td>
      <td>Goal එකක් ඉටු කරන්න ඊළඟට කළ යුතු දේ තීරණය කරමින් අවශ්ය Tools භාවිත කරන පද්ධතිය.</td>
    </tr>
    <tr>
      <td><strong>AI Harness</strong></td>
      <td>Agent එකට අවශ්ය Execution Environment, Tools, Context සහ Controls සපයමින් එහි Execution Loop එක හෝ Workflow එක කළමනාකරණය කරන Software Infrastructure එක.</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>සරලව කිව්වොත් Agent එක ඊළඟට කළ යුතු දේ තීරණය කරන අතර Harness එක ඒ තීරණ ක්රියාත්මක කිරීමට සහ ක්රියාවලිය පාලනය කිරීමට අවශ්ය පහසුකම් සපයනවා. ප්රායෝගිකව මේ වගකීම් සමහර Frameworks වල එකිනෙකට සම්බන්ධ වෙන්නත් පුළුවන්.</p>
</blockquote>

<p>Task එක සම්පූර්ණ වෙනතුරු, නියමිත සීමාවකට ළඟාවෙනතුරු හෝ Human Intervention අවශ්ය වෙනතුරු ක්රියාවලිය පාලනය කිරීමත් Harness එකේ කාර්යයක්.</p>

<p>ඒ වගේම Context, Memory, Tools, Security, Permissions සහ Evaluation වගේ හැකියාවනුත් Harness එකට ඇතුළත් වෙන්න පුළුවන්.</p>

<p>Claude Code, OpenAI Codex වගේ Coding Agents වල Harness මේ සඳහා උදාහරණ.</p>

<h2 id="අපිට-harness-එකක්-customize-කරන්න-පුළුවන්ද">අපිට Harness එකක් Customize කරන්න පුළුවන්ද?</h2>

<p>ඔව්! Codex, Claude Code වගේ දැනට තියෙන Harness එකක් අපේ Project එකට ගැළපෙන විදිහට Customize කරන්න පුළුවන්.</p>

<p>උදාහරණයක් විදිහට:</p>

<ul>
  <li><strong>Rules</strong> – Architecture, Coding Standards සහ Business Rules.</li>
  <li><strong>Skills</strong> – Project එකට අවශ්ය Reusable Workflows.</li>
  <li><strong>MCP / Tools</strong> – Databases, APIs, Logs සහ External Systems සම්බන්ධ කිරීම.</li>
  <li><strong>Hooks</strong> – Automated Tests සහ Security Checks.</li>
  <li><strong>Context &amp; Memory</strong> – Project Documentation සහ Technical Decisions.</li>
  <li><strong>Evaluation &amp; Feedback</strong> – ප්රතිඵල පරීක්ෂා කර නැවත වැඩිදියුණු කිරීම.</li>
</ul>

<p>මේ බොහෝ දේවල් කරන්න Harness එකේ Source Code වෙනස් කරන්න අවශ්ය නැහැ.</p>

<h2 id="එතකොට-අපේම-harness-එකක්-හදන්නේ-ඇයි">එතකොට අපේම Harness එකක් හදන්නේ ඇයි?</h2>

<p>හිතන්න අපි Banking Application එකක් සඳහා විශේෂ AI Agent එකක් නිර්මාණය කරනවා කියලා.</p>

<p>එතැනදී දැඩි Security Policies, Local LLM Usage, Language Validation, Sensitive Data Protection, Audit Logs, Observability, Compliance Checks සහ Human Approval වගේ විශේෂ අවශ්යතා තිබෙන්න පුළුවන්.</p>

<p>මෙවැනි අවස්ථාවක Claude Code, Codex වගේ Existing Harness එකක් Customize කරන්න හෝ Google ADK, LangGraph වගේ Frameworks භාවිතයෙන් අපේම <strong>Domain-Specific Harness</strong> එකක් නිර්මාණය කරන්න පුළුවන්.</p>

<p>සුදුසු ක්රමය තීරණය වෙන්නේ අපේ Use Case එකේ අවශ්යතා අනුවයි.</p>

<h2 id="software-engineers-විදිහට-අපි-දැන්-කරන්න-ඕන-මොකක්ද">Software Engineers විදිහට අපි දැන් කරන්න ඕන මොකක්ද?</h2>

<p>AI එකට Prompts ලබාදෙන එකෙන් විතරක් නවතින්නේ නැතුව, අපේ Project එකට ගැළපෙන විදිහට <strong>Harness එක Engineer කිරීම</strong> ගැනත් අවධානය දෙන්න ඕන.</p>

<p>උදාහරණයක් විදිහට Playwright හරහා UI Testing, Application Logs කියවීම, MCP හරහා Project Context ලබාදීම සහ Automated Feedback Loops එකතු කරන්න පුළුවන්.</p>

<p>මේවා නිවැරදිව සැලසුම් කිරීමෙන් අනවශ්ය Iterations අඩු කරලා, Token Usage සහ Development Cost Optimize කිරීමටත්, Software Quality සහ Development Efficiency වැඩිදියුණු කිරීමටත් පුළුවන්.</p>

<hr />

<p><strong>අවසානයේ අපේ අරමුණ AI එකෙන් Software Develop කරගැනීම විතරක් නෙවෙයි. ඒ Software එකේ Quality එක පවත්වාගෙන යමින් Development Process එක කාර්යක්ෂම කිරීමයි.</strong> ඒ සඳහා AI එක වැඩ කරන පරිසරයත් නිවැරදිව Engineer කළ යුතුයි. Harness Engineering වැදගත් වෙන්නේ ඒ නිසයි.</p>

<p>මේ Post එක ඔබට වැදගත් වුණා නම්, ඔබේ මිතුරන් එක්කත් Share කරන්න. Harness Engineering ගැන ඔබේ අදහස් සහ අත්දැකීම් Comment එකකින් බෙදාගන්න.</p>

<p>තවත් රසවත් තාක්ෂණික මාතෘකාවකින් ඊළඟ Post එකෙන් හමුවෙමු!</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="AIHarness" /><category term="HarnessEngineering" /><category term="AgenticAI" /><category term="SoftwareEngineering" /><summary type="html"><![CDATA[හොඳ AI Model එකක් තිබුණා කියලා විතරක් විශ්වාසදායක Software එකක් හෝ Agentic Application එකක් නිර්මාණය කරන්න පුළුවන්ද? මෙතැනදී තමයි AI Harness Engineering වැදගත් වෙන්නේ.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/ai-harness.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/ai-harness.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Does Every Piece of Software Need the Same Code Quality in the AI Era?</title><link href="https://tharuka.xyz/learn/en/ai-native-development/disposable-software/" rel="alternate" type="text/html" title="Does Every Piece of Software Need the Same Code Quality in the AI Era?" /><published>2026-10-30T04:30:00+00:00</published><updated>2026-10-30T04:30:00+00:00</updated><id>https://tharuka.xyz/learn/en/ai-native-development/disposable-software</id><content type="html" xml:base="https://tharuka.xyz/learn/en/ai-native-development/disposable-software/"><![CDATA[<p>We have discussed how clean code, software architecture and engineering principles become more important in the AI era. But there is another side to this conversation: <strong>disposable software</strong>.</p>

<p>With AI, we can now build software for a specific need in a few hours. Sometimes we may use it for a single task or a single day, then throw it away.</p>

<p>Examples include a personal automation script, a one-time data analysis tool or an application for a small event.</p>

<blockquote>
  <p>Does that software need the same engineering effort as a banking system that will be maintained for years?</p>
</blockquote>

<p>There are four main factors to consider:</p>

<ol>
  <li><strong>Consequences of failure</strong> — How much harm could the software cause if it fails?</li>
  <li><strong>Dependencies</strong> — How many people and other systems depend on it?</li>
  <li><strong>Cost of replacement</strong> — How easy would it be to rebuild if necessary?</li>
  <li><strong>Cost of maintenance</strong> — How much effort would it take to maintain over time?</li>
</ol>

<p>If all four are very low, we can treat it as disposable software. In those cases, meeting the immediate need quickly may matter more than adding engineering complexity.</p>

<p>For <strong>durable software</strong>, where failure can cause serious harm, many people depend on it, and it must be maintained for years, code quality and architecture become more important.</p>

<p>This is not a binary distinction. The degree to which software is disposable should guide the engineering rigor we apply. And calling software disposable never means we can ignore <strong>security or safety</strong>.</p>

<hr />

<p><strong>The important skill in the AI era is deciding how much engineering effort each piece of software needs.</strong></p>

<p>When we develop software with AI agents, AI harnesses and harness engineering also play an important role in maintaining code quality. We will explore that in the next article.</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="DisposableSoftware" /><category term="ArtificialIntelligence" /><category term="SoftwareEngineering" /><category term="CodeQuality" /><summary type="html"><![CDATA[The skill is deciding how much engineering effort each piece of software needs, based on its lifespan, dependencies and consequences of failure.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/disposable-software-en.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/disposable-software-en.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="si"><title type="html">AI යුගයේ Code Quality හැම Software එකකටම එක වගේ වැදගත්ද? 🤔</title><link href="https://tharuka.xyz/learn/ai-native-development/disposable-software/" rel="alternate" type="text/html" title="AI යුගයේ Code Quality හැම Software එකකටම එක වගේ වැදගත්ද? 🤔" /><published>2026-10-30T04:30:00+00:00</published><updated>2026-10-30T04:30:00+00:00</updated><id>https://tharuka.xyz/learn/ai-native-development/disposable-software</id><content type="html" xml:base="https://tharuka.xyz/learn/ai-native-development/disposable-software/"><![CDATA[<p>කලින් Post එකේ අපි කතා කළේ AI යුගයේ Clean Code, Software Architecture සහ Engineering Principles තවත් වැදගත් වෙන ආකාරය ගැන. හැබැයි මේ කතාවේ තවත් පැත්තක් තියෙනවා. ඒ තමයි <strong>Disposable Software (ඉවත දැමිය හැකි මෘදුකාංග)</strong>.</p>

<p>AI නිසා දැන් අපිට පැය කිහිපයකින් අවශ්යතාවයකට ගැළපෙන Software එකක් හදාගන්න පුළුවන්. සමහර විට ඒක එක දවසකට, එක වැඩකට විතරක් භාවිත කරලා ඉවත් කරන්නත් පුළුවන්.</p>

<p>උදාහරණයක් විදිහට Personal Automation Script එකක්, One-time Data Analysis Tool එකක් හෝ කුඩා Event එකකට හදන Application එකක්.</p>

<blockquote>
  <p>මේ වගේ Software එකකට අවුරුදු ගණනක් පවත්වාගෙන යන Banking System එකකට දෙන Engineering Effort එකම යොදවන්න අවශ්යද?</p>
</blockquote>

<p>මෙතැනදී අපි සලකා බලන්න ඕන ප්රධාන කරුණු හතරක් තියෙනවා.</p>

<ol>
  <li><strong>Consequences of Failure</strong> – Software එක Fail වුණොත් වෙන බලපෑම කොච්චරද?</li>
  <li><strong>Dependencies</strong> – කී දෙනෙක් සහ වෙනත් Systems කීයක් මේක මත රඳා පවතිනවද?</li>
  <li><strong>Cost of Replacement</strong> – අවශ්ය වුණොත් මේක නැවත හදන්න කොච්චර පහසුද?</li>
  <li><strong>Cost of Maintenance</strong> – දිගුකාලීනව Maintain කරන්න කොච්චර Effort එකක් අවශ්යද?</li>
</ol>

<p>මේ හතරම ඉතා අඩු නම්, ඒක Disposable Software එකක් විදිහට සලකන්න පුළුවන්. එවැනි අවස්ථාවලදී අධික Engineering Complexity එකක් එකතු කරනවාට වඩා ඉක්මනින් අවශ්යතාව ඉටු කිරීම වැදගත් වෙන්න පුළුවන්.</p>

<p>හැබැයි Failure එකකින් ලොකු හානියක් වෙන, බොහෝ දෙනෙක් භාවිත කරන, දිගුකාලීනව පවත්වාගෙන යා යුතු <strong>Durable Software</strong> වලදී Code Quality සහ Architecture තවත් වැදගත් වෙනවා.</p>

<p>මෙය කළු-සුදු බෙදීමක් නෙවෙයි. Software එකක Disposability එක අනුව යොදවන Engineering Rigor එක තීරණය කරන්න ඕන. ඒ වගේම Disposable කියලා <strong>Security හෝ Safety</strong> නොසලකා හරින්නත් බැහැ.</p>

<hr />

<p><strong>AI යුගයේ වැදගත්ම දේ හැම Software එකක්ම Perfect විදිහට Design කිරීම නෙවෙයි. කොයි Software එකට කොපමණ Engineering Effort එකක් අවශ්යද කියලා නිවැරදිව තීරණය කිරීමයි.</strong></p>

<p>ඒ වගේම AI Agents යොදාගෙන Software Develop කරන විට Code Quality එක පවත්වාගෙන යන්න AI Harness සහ Harness Engineering ඉතා වැදගත් වෙනවා. ඒ ගැන ඊළඟ Post එකෙන් කතා කරමු!</p>]]></content><author><name>Tharuka Sarathchandra</name><email>hello@tharuka.xyz</email></author><category term="DisposableSoftware" /><category term="ArtificialIntelligence" /><category term="SoftwareEngineering" /><category term="CodeQuality" /><summary type="html"><![CDATA[AI යුගයේ වැදගත්ම දේ හැම Software එකක්ම Perfect විදිහට Design කිරීම නෙවෙයි. කොයි Software එකට කොපමණ Engineering Effort එකක් අවශ්යද කියලා නිවැරදිව තීරණය කිරීමයි.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tharuka.xyz/images/og/disposable-software.jpg" /><media:content medium="image" url="https://tharuka.xyz/images/og/disposable-software.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>