<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Teamvoy</title>
    <description>The latest articles on DEV Community by Teamvoy (@teamvoy).</description>
    <link>https://dev.to/teamvoy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4063210%2Fcfcc886b-fbc3-4fee-b691-6b63ae8b3c85.png</url>
      <title>DEV Community: Teamvoy</title>
      <link>https://dev.to/teamvoy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/teamvoy"/>
    <language>en</language>
    <item>
      <title>Most of You Should Not Be Custom-Building an Ecommerce Store</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Mon, 31 Aug 2026 12:08:25 +0000</pubDate>
      <link>https://dev.to/teamvoy/most-of-you-should-not-be-custom-building-an-ecommerce-store-355m</link>
      <guid>https://dev.to/teamvoy/most-of-you-should-not-be-custom-building-an-ecommerce-store-355m</guid>
      <description>&lt;p&gt;Ecommerce projects rarely get hard because of the storefront. They get hard when the storefront has to meet the needs of the rest of the business.&lt;/p&gt;

&lt;p&gt;Inventory already lives somewhere. Orders land somewhere else. Finance has its own systems. Payments drag security and compliance into scope. And the platform picked in month one defines what's easy, expensive, or impossible two years later.&lt;/p&gt;

&lt;p&gt;Which is why the first question shouldn't be Shopify vs Magento vs WooCommerce vs custom. Starting there means arguing about features before anyone understands the constraints. The better opening question: what are we actually building, and which parts genuinely need to be custom?&lt;/p&gt;

&lt;p&gt;For most people reading this, the honest answer is buy a platform and move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The phase ordering that costs the most
&lt;/h2&gt;

&lt;p&gt;Seven phases: discovery, architecture and platform selection, design, build and integration, data migration, compliance and security review, launch and first optimization. Four to seven months for a mid-market build.&lt;/p&gt;

&lt;p&gt;The sequence matters more than the labels, and one inversion is expensive above all others: &lt;strong&gt;choosing a platform before you've scoped compliance.&lt;/strong&gt; Do it in that order and a compliance finding can force a re-architecture eight weeks into the build.&lt;/p&gt;

&lt;p&gt;Two phases account for most overruns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build slips because discovery missed a system.&lt;/strong&gt; The integration nobody scoped in phase 1 surfaces two months late, when the schedule has no slack left. Discovery in commerce isn't about pages — it's about finding every system holding a number the store needs, &lt;em&gt;and&lt;/em&gt; finding who can grant access to it. That list is always longer than the brief.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance review slips because it was treated as a formality.&lt;/strong&gt; Remediation lands on a team that has already released its engineers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both are schedule problems created long before they appear.&lt;/p&gt;

&lt;p&gt;Staffing note worth agreeing in writing before kickoff: phases 1, 2, and 6 need someone on the client side — a person who can get you into the ERP, whoever signs the contract, and named owners for the payment page and accessibility. Phases 3, 4, and 5 can sit almost entirely with the build team. The three phases you have to staff are the three that stall when nobody's free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three dates that already passed
&lt;/h2&gt;

&lt;p&gt;These are no longer planning questions. They're evidence questions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PCI DSS v4.0.1 req 6.4.3 and 11.6.1&lt;/strong&gt;, in force since 2025-03-31. Inventory every script on the payment page, authorize each one, justify why it's there, and detect unauthorized changes to page headers and content. The catch: the scripts in question are usually marketing tags nobody in engineering added. PCI now has an owner problem — the tag manager on checkout needs a named owner and an approval step.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;European Accessibility Act, Art. 2(2)(f)&lt;/strong&gt;, applying after 2025-06-28 to ecommerce services sold to EU consumers. Measured against EN 301 549, which points at WCAG. "We'll do accessibility after launch" is now a statement about legal exposure, not backlog priority.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GDPR / CCPA / CPRA&lt;/strong&gt;, unchanged but load-bearing. Consent, access, and deletion paths wired into the customer data model rather than bolted on. If a deletion request can't be executed against the customer record without an engineer, it doesn't scale past the first hundred.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accessibility written as an acceptance criterion in phase 3 costs days. Discovered in phase 6, it costs weeks. Same work, different bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checkout: the causes are business decisions, not design problems
&lt;/h2&gt;

&lt;p&gt;The average documented cart abandonment rate is 70.22% (Baymard, across 50 studies, updated 2025-09-22). Among shoppers who intended to buy, the top causes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extra costs shown too late — shipping, tax, fees — at 40%.&lt;/li&gt;
&lt;li&gt;Slow delivery, 20%.&lt;/li&gt;
&lt;li&gt;Distrust of the payment form, 19%.&lt;/li&gt;
&lt;li&gt;Forced account creation, 18%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three of those four are decisions no redesign can make on your behalf. In order of what actually abandons carts: show the full total on the cart page, offer guest checkout, give a real delivery date rather than a shipping-method name, make the payment step look like a payment step, and cut every optional field.&lt;/p&gt;

&lt;p&gt;Run A/B tests only after those five are in place. Below a few thousand checkouts a month you don't have the traffic to detect a one-point conversion change without weeks per variant, and teams routinely call the result on day four because the chart looks decided. Testing earns its place above the checkout — category layouts, product page structure, price and delivery presentation — where there's more traffic per decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI actually earns its place
&lt;/h2&gt;

&lt;p&gt;The test: does the model's output change a decision somebody was already making on worse information?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Demand forecasting and replenishment.&lt;/strong&gt; Output is a purchase order quantity. Error is countable against what sold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fraud and chargeback scoring.&lt;/strong&gt; Output is a score with a threshold. Both false positives and false negatives show up in the finance report — which means the review interface is in scope, not a follow-up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search and merchandising&lt;/strong&gt;, but above roughly ten thousand SKUs, where manual merchandising already stopped covering the tail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where it doesn't: personalization on a 200-SKU catalog has too little behaviour to learn from and the engineering cost lands anyway. Dynamic pricing on consumer goods invites a customer to screenshot two prices and post them. Generated product copy at scale reads like generated product copy at scale, on exactly the pages you wanted indexed.&lt;/p&gt;

&lt;p&gt;Separately — AI &lt;em&gt;in the build&lt;/em&gt; is a different question from AI &lt;em&gt;in the store&lt;/em&gt;. Coding assistants compress phases 3 and 4. They don't touch 1, 5, or 6, which is where the schedule risk lives, because those are constrained by other people's systems and by evidence someone has to sign.&lt;/p&gt;

&lt;h2&gt;
  
  
  Composable, honestly
&lt;/h2&gt;

&lt;p&gt;Headless decouples the front end and is a configuration option on several hosted platforms. Composable replaces the engine with separate services. Headless is a weekend of architecture; composable is a program of work. The terms get used interchangeably and shouldn't be.&lt;/p&gt;

&lt;p&gt;On a composable build, expect the first feature to take four to six weeks longer than on a coupled platform, and expect payback to start around the third. If your roadmap has three changes in it, the arithmetic doesn't work.&lt;/p&gt;

&lt;p&gt;You also inherit a service layer somebody maintains, and six services that fail in more ways than one platform does. "Wanting to be modern" is not a reason. Multi-channel selling from one inventory, or business rules no vendor has productized, are.&lt;/p&gt;

&lt;p&gt;If the reason is real, migrate incrementally: routing layer in front of the existing store, move one capability behind it, run both, move the next. Search and product content first — read-heavy, low-risk. Checkout near the end, because it handles the money and the compliance scope. Teams that move checkout first take the program's largest risk before learning anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three-year number
&lt;/h2&gt;

&lt;p&gt;Build cost is the number in the quote and the smaller half of the decision. A $70,000 build with $12,000 annual maintenance and $1,500 a month in platform fees is a $160,000 commitment before a single new feature ships.&lt;/p&gt;

&lt;p&gt;Price every platform over three years, because the fee structures behave differently: revenue-percentage platforms get more expensive as you succeed, self-hosted charges you in engineering hours whether you grow or not, licence-plus-build front-loads and holds steady. Ask each vendor what the bill looks like at three times current volume, and get it in writing. That belongs in phase 2, not the post-launch review.&lt;/p&gt;

&lt;p&gt;And then the question underneath all of it. Under roughly $5M in annual online revenue, with a standard catalog and standard checkout, buying wins on price, time, and risk. Custom development is the answer to a named business rule you can attach a cost to living without — never to a general preference for control.&lt;/p&gt;

&lt;p&gt;Full breakdown — all seven phases, the platform comparison table, and the build-vs-buy signals: &lt;a href="https://dev.toREPLACE_WITH_LIVE_URL"&gt;see the full guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Bohdan Varshchuk, CTO at Teamvoy. More engineering writing at &lt;a href="https://teamvoy.com/blog" rel="noopener noreferrer"&gt;teamvoy.com/blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ecommerce</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>Nobody Budgets for the Redirect Map</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Wed, 26 Aug 2026 20:07:58 +0000</pubDate>
      <link>https://dev.to/teamvoy/nobody-budgets-for-the-redirect-map-491j</link>
      <guid>https://dev.to/teamvoy/nobody-budgets-for-the-redirect-map-491j</guid>
      <description>&lt;p&gt;A $5,000 template refresh and a $150,000 rebuild both get called "a website redesign." Then someone requests three quotes without scoping the project and compares numbers that don't describe the same work.&lt;/p&gt;

&lt;p&gt;That's how a redesign that started on a small-business budget discovers halfway through that it needed enterprise scope. Not because anyone lied. Because "redesign" is a word that covers two completely different engineering jobs, and the person buying it usually can't tell which one they're in until the content migration starts.&lt;/p&gt;

&lt;p&gt;Broad shape for 2026: roughly $3,000 at the small-business end, past $250,000 for complex enterprise builds, with most mid-market work landing between $40,000 and $100,000. Those ranges are almost useless on their own. What matters is which drivers your project actually has.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually moves the number
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unique page templates.&lt;/strong&gt; Not pages — templates. A homepage, product page, service page, blog post, and landing page are five separate design-and-build efforts, each wireframed, built, made responsive, tested, and wired into the CMS. Small sites might need 3 to 5. Large ones run past 15. Figure $1,500 to $5,000 per additional template depending on complexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom features and third-party integrations.&lt;/strong&gt; Every integration means research, API configuration, testing, and ongoing support. The ones that hurt are the ones needing custom middleware or two-way data sync, because those keep costing after launch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content migration.&lt;/strong&gt; The most underestimated line by a wide margin. If content is inconsistently structured or spread across platforms, migration alone eats 10 to 20% of the project budget. Automated tools help with extraction and reformatting; manual review is still where the quality comes from. New copy runs $100 to $300 per page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility.&lt;/strong&gt; WCAG 2.1 AA means semantic HTML, keyboard navigation, contrast checks, ARIA attributes, and testing every template. It's real hours. Skipping it saves money up front and buys legal risk later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timeline.&lt;/strong&gt; Rushed deadlines and vague scope both inflate cost, for opposite reasons — one buys overtime, the other buys rework.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The one that quietly costs the most
&lt;/h2&gt;

&lt;p&gt;SEO migration. It is the cheapest thing to skip and the most expensive thing to have skipped.&lt;/p&gt;

&lt;p&gt;You need a URL map with 301s from every old path, meta and schema carried across, header structure and alt text preserved, and performance that doesn't regress on mobile. Get it wrong and you launch a beautiful site that lost its organic traffic, which nobody notices for six weeks because everyone is looking at the design.&lt;/p&gt;

&lt;p&gt;Build the redirect map during development, not during launch week. It's the artifact that makes the difference between a redesign and an outage with better typography.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does AI actually take off the bill?
&lt;/h2&gt;

&lt;p&gt;Real, but narrower than the pitch suggests. It compresses the repetitive middle of the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scanning an existing site, extracting content, reformatting it for new templates — genuinely useful on large blogs and news archives.&lt;/li&gt;
&lt;li&gt;Resizing, compressing, and tagging images. Auto-generating alt text saves dozens of hours on an image-heavy migration.&lt;/li&gt;
&lt;li&gt;Automated passes for broken links, accessibility issues, and performance bottlenecks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where it stops: brand narrative, custom integrations against proprietary systems, and interpreting compliance requirements. Automate deliberately — not everywhere at once. On a small project the savings are meaningful. On a complex custom build, automation optimizes the process rather than replacing the expensive part of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number nobody puts in the quote
&lt;/h2&gt;

&lt;p&gt;Ongoing maintenance runs 15 to 20% of build cost, annually. Security patches, CMS updates, performance monitoring, bug fixes.&lt;/p&gt;

&lt;p&gt;On a $60,000 build that's $9,000 to $12,000 a year, every year, and it is almost never in the proposal you're comparing. Neither is custom photography ($3,000 to $15,000), video ($5,000 to $25,000 per video), hosting, or premium plugin licensing.&lt;/p&gt;

&lt;p&gt;Two things that make a quote comparable: insist on itemized proposals that include content migration, maintenance, and media production as explicit lines, and reserve 10 to 15% for contingency. Scope creep is not a sign anyone failed. It is the default state of a project where the content turns out messier than the audit suggested.&lt;/p&gt;

&lt;p&gt;The design is the part everyone argues about and the part that costs the least to change. The redirect map, the integration surface, and the annual maintenance line are the ones that decide whether the number you were quoted resembles the number you pay.&lt;/p&gt;

&lt;p&gt;Full breakdown — pricing by business size, all seven cost drivers, and a budgeting checklist: &lt;a href="https://teamvoy.com/blog/website-redesign-cost/" rel="noopener noreferrer"&gt;teamvoy.com/blog/website-redesign-cost&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Zhanna Yuskevych, CPO at Teamvoy. More engineering writing at &lt;a href="https://teamvoy.com/blog" rel="noopener noreferrer"&gt;teamvoy.com/blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>uidesign</category>
      <category>website</category>
    </item>
    <item>
      <title>Your Main Branch Has Code Nobody Read. Whose Name Is On It?</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Tue, 25 Aug 2026 12:58:20 +0000</pubDate>
      <link>https://dev.to/teamvoy/your-main-branch-has-code-nobody-read-whose-name-is-on-it-3jlb</link>
      <guid>https://dev.to/teamvoy/your-main-branch-has-code-nobody-read-whose-name-is-on-it-3jlb</guid>
      <description>&lt;p&gt;Who is accountable for AI-generated code? The engineer who merges it. That answer hasn't changed since 2023. What changed is the volume behind it.&lt;/p&gt;

&lt;p&gt;Google's own number: just over a quarter of new code AI-generated in October 2024, roughly half by late 2025, 75% by April 2026 per Sundar Pichai. Almost nobody's review gates, provenance records, or audit evidence moved in that same window. So the accountability gap is the distance between how much of your codebase a model wrote and how much your governance assumes a human wrote.&lt;/p&gt;

&lt;p&gt;It stays invisible until the worst possible moment — an incident postmortem, a security review, a customer questionnaire, an examiner asking about your SDLC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three failure modes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The review bottleneck.&lt;/strong&gt; Agents produce diffs faster than humans read them. Review becomes either the constraint on delivery or a rubber stamp. Watch for the tell: approval latency stays flat while actual scrutiny drops.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance blindness.&lt;/strong&gt; Someone asks "was this AI-generated, and what checked it?" and nothing in the commit history can answer. This is cheap to record now and impossible to reconstruct later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shadow tooling.&lt;/strong&gt; Policy says no, engineers use personal accounts and local models anyway. The company keeps the risk and loses the visibility. We ran this exact movie with unsanctioned SaaS a decade ago.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the review bottleneck, there's a recurring r/ExperiencedDevs thread shape worth reading: a senior engineer describes review queues doubling after agent adoption, and the replies split between "review harder" and "trust the tests." Both miss the same move. The review standard has to change &lt;em&gt;shape&lt;/em&gt;, not intensity. A heroic reviewer and a green CI run are equally poor substitutes for deciding which changes deserve which gate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why banning makes it worse
&lt;/h2&gt;

&lt;p&gt;Three postures, and only one of them produces a defensible answer to "who signs this?"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ban&lt;/strong&gt; — you get a clean-sounding policy. You pay in shadow usage with zero visibility, a senior hiring penalty, and the loss of the audit trail you were trying to protect.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Laissez-faire&lt;/strong&gt; — you get speed and goodwill. You pay in no provenance, rubber-stamped review, and unanswerable audit questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Governed adoption&lt;/strong&gt; — you get speed &lt;em&gt;plus&lt;/em&gt; evidence that survives an audit. You pay in real setup work, roughly four to eight weeks of process and tooling change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ban threads on r/cscareerquestions read identically every time: the policy says no, the replies describe exactly how people route around it, and nobody believes the codebase is cleaner for it. When your engineers can narrate the workaround in public, the ban isn't a control. It's a blindfold.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five moves
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Name the owner, per merge.&lt;/strong&gt; One sentence of policy: the engineer who merges a change owns it, regardless of what produced the draft. The model proposes, the engineer signs. No autonomous merges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tag provenance at commit time.&lt;/strong&gt; Commit trailers, PR labels, or tool-native attribution. Record which changes are substantially AI-generated and by which tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Harden the gate where it counts.&lt;/strong&gt; Risk-tier your repos. AI-drafted changes to payment logic, authz, and data migrations get a second reviewer and a required test diff. AI-drafted changes to internal tooling get the standard gate. Uniform strictness is how review becomes theater.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give non-deterministic code a CI gate.&lt;/strong&gt; An eval harness is a CI suite for code whose output isn't reproducible. If your agents write code that calls models, evals gate the merge the way unit tests gate deterministic changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write the evidence file as you go.&lt;/strong&gt; Tool inventory, policy, provenance stats, gate configs, exception log — one folder. When the auditor asks, you hand over a folder instead of a promise.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The objection we hear on move 2: provenance tagging slows engineers down and they'll skip it. In practice the tag is a commit trailer the tooling adds, not a form someone fills in. That objection describes the policy-PDF version of governance, not the tooling version.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like six weeks in
&lt;/h2&gt;

&lt;p&gt;Composite from rollouts inside client deliveries — fintech scaleup, 30 to 80 engineers, high agent adoption, no provenance, a customer security questionnaire sitting unanswered because nobody could describe the AI share of the SDLC.&lt;/p&gt;

&lt;p&gt;Six weeks later: a bot tags model-drafted changes at commit time, so the AI-drafted share of merges is a dashboard number instead of a guess. Repos are risk-tiered. Anything calling a model at runtime runs an eval job in CI. The evidence file exists.&lt;/p&gt;

&lt;p&gt;The outcome worth copying is counterintuitive. Review time per diff spikes in week one, then settles at or below baseline — because reviewers stop treating every change as equally suspect. The stalled security questionnaire gets answered from the evidence file in a day. And the tooling debate changes tone, because arguments about impressions become arguments about a dashboard.&lt;/p&gt;

&lt;p&gt;None of it required slowing the agents down.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is not
&lt;/h2&gt;

&lt;p&gt;It is not a case for treating model-drafted code as suspect by default. Model-drafted code that passed a real review and a real test suite is production code. The vibe-coding failure mode — shipping unread model output — is a review failure, not a tooling failure.&lt;/p&gt;

&lt;p&gt;The tools are already in your building and the volume is already in your main branch. The only open question is whether the signature on the merge still means anything. Governance that lives in a document drifts. Governance that lives in the pipeline holds.&lt;/p&gt;

&lt;p&gt;Full breakdown — the three postures compared, the rollout timeline, and the legal accountability question: &lt;a href="https://teamvoy.com/blog/ai-generated-code-accountability-2026/" rel="noopener noreferrer"&gt;teamvoy.com/blog/ai-generated-code-accountability-2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Zhanna Yuskevych, CPO at Teamvoy. More engineering writing at &lt;a href="https://teamvoy.com/blog" rel="noopener noreferrer"&gt;teamvoy.com/blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>coding</category>
      <category>vibecoding</category>
      <category>codequality</category>
    </item>
    <item>
      <title>Your GenAI Pilot Didn't Fail. Your Data Layer Did.</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Fri, 21 Aug 2026 10:29:44 +0000</pubDate>
      <link>https://dev.to/teamvoy/your-genai-pilot-didnt-fail-your-data-layer-did-e04</link>
      <guid>https://dev.to/teamvoy/your-genai-pilot-didnt-fail-your-data-layer-did-e04</guid>
      <description>&lt;p&gt;MIT found that 95% of enterprise GenAI pilots returned no measurable P&amp;amp;L impact, and only 5% reached production at scale. Almost none of those failures were model failures.&lt;/p&gt;

&lt;p&gt;The stalled pilots we get called into look identical from the inside. Someone spent three months on prompts and model selection. Nobody looked at the pipeline feeding it. When we trace a bad output back, it is a brittle query pulling stale or wrong records — the model was working correctly on garbage. Fix the pipeline and the same model suddenly looks smart.&lt;/p&gt;

&lt;p&gt;The model is the kernel. The integration layer is the operating system around it, and that is where pilots die. Gartner forecast $644 billion in global GenAI spend for 2025, up 76.4% in a year, against that 95% figure. Big spend is not safe spend.&lt;/p&gt;

&lt;h2&gt;
  
  
  The demo-to-production cliff
&lt;/h2&gt;

&lt;p&gt;A demo runs on clean, hand-picked data. Production does not. That is the entire gap, and it has three concrete failure modes once an agent gets write-access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runaway cost.&lt;/strong&gt; An agent stuck in a retry loop runs unattended for hours and burns thousands in API spend before anyone wakes up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection.&lt;/strong&gt; The top agentic risk, and not hypothetical — one arXiv study cut attack success from 73.2% to 8.7%, but only after layering multiple defenses. A single successful injection exfiltrates a secret in minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quadratic token growth.&lt;/strong&gt; Cost can scale with the square of context length, not linearly. "Just add more context" gets expensive fast, and past roughly the 40% context-fill mark many models get &lt;em&gt;less&lt;/em&gt; accurate anyway. More context is not free, and it can make the system dumber.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these are model-quality problems. They are control problems, and NIST's GenAI Profile (AI 600-1) names all of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three questions before anything gets write-access
&lt;/h2&gt;

&lt;p&gt;Ask these of any partner, internal team, or yourself:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Where is the circuit breaker that stops a runaway agent, and who set the spend cap?&lt;/li&gt;
&lt;li&gt;Who owns the audit trail when the agent writes to production data?&lt;/li&gt;
&lt;li&gt;What requires human approval before the agent executes a sensitive action?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A clean answer to those three tells you more than any benchmark. Build the circuit breaker before you grant write-access, not after the first incident.&lt;/p&gt;

&lt;h2&gt;
  
  
  Name your pattern
&lt;/h2&gt;

&lt;p&gt;A demo says "we use AI." A production system names its pattern, and each one has a caveat you inherit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Self-RAG&lt;/strong&gt; — the model rewrites its query and checks its own retrieval. Good for messy queries. Extra model calls add latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Corrective RAG&lt;/strong&gt; — filters or rejects weak retrieved chunks. Use when wrong context is costly. Needs a tuned relevance scorer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive RAG&lt;/strong&gt; — routes simple and complex queries differently. Routing logic is its own complexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GraphRAG&lt;/strong&gt; — retrieves over a knowledge graph instead of flat text. Strong on relational data. Graph build and upkeep is real, ongoing work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentic orchestration&lt;/strong&gt; — bounded tool calls with control flow. Untrusted output must never call tools directly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These stack into retrieve, rank, generate, verify. Latency compounds at every layer, so caching and tight chunking are not optimizations you defer.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you know it works, rather than sounds confident?
&lt;/h2&gt;

&lt;p&gt;Evals. This is the phase teams skip and the reason pilots die on real data.&lt;/p&gt;

&lt;p&gt;Automation is safe when you can specify the objective and verify the output against it. No verification, no safe automation — you are shipping on vibes. The phased path that survives contact with production data:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scope one narrow workflow with a measurable outcome.&lt;/li&gt;
&lt;li&gt;Prove it on messy production data, not a clean sample, so you find out where it actually fails.&lt;/li&gt;
&lt;li&gt;Add evals and guardrails, so failures get caught before users do.&lt;/li&gt;
&lt;li&gt;Harden for latency, cost, and edge cases under real load.&lt;/li&gt;
&lt;li&gt;Hand over documented, with rollback in place.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step five matters more than it sounds. A model has no memory of your system between sessions, so the knowledge has to live in documentation and code rather than in one engineer's head. "Done" means it still works in six months.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs, and where the budget actually leaks
&lt;/h2&gt;

&lt;p&gt;Roughly $50K for a proof of concept, $2M+ for a production system at scale with compliance. But the build is rarely what blows the budget — the runtime is. Quadratic token billing and cloud shock, the penalty for running elastic AI infrastructure with a static data-center mindset. Right-size compute before you scale, not after.&lt;/p&gt;

&lt;p&gt;The most expensive AI code is not the broken kind. It is the code that almost works — it runs, it looks fine in review, and it writes to the wrong data while the screen looks correct. That is also true of the pilot itself. It demos beautifully and returns nothing, and the reason is never the part everyone spent three months tuning.&lt;/p&gt;

&lt;p&gt;Full breakdown — integration patterns, NIST AI RMF mapping, and how to evaluate a delivery partner: &lt;a href="https://teamvoy.com/blog/generative-ai-implementation-services/" rel="noopener noreferrer"&gt;teamvoy.com/blog/generative-ai-implementation-services&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Written by Taras Voytovych, Founder &amp;amp; CEO at Teamvoy. More engineering writing at &lt;a href="https://teamvoy.com/blog" rel="noopener noreferrer"&gt;teamvoy.com/blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>genai</category>
      <category>automation</category>
      <category>rag</category>
    </item>
    <item>
      <title>Claude Code vs Copilot Is the Wrong Question</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Mon, 17 Aug 2026 12:59:51 +0000</pubDate>
      <link>https://dev.to/teamvoy/claude-code-vs-copilot-is-the-wrong-question-4p9a</link>
      <guid>https://dev.to/teamvoy/claude-code-vs-copilot-is-the-wrong-question-4p9a</guid>
      <description>&lt;p&gt;The most expensive mistake in AI tooling procurement right now is treating Claude Code and GitHub Copilot as substitutes and picking one.&lt;/p&gt;

&lt;p&gt;We watched a team standardize on autocomplete alone, then hand it a service restructure. The code compiled, read fine in review, and shipped with the wrong invariants — the kind of plausible-looking output you get when a tool designed to finish a line is asked to make a design decision. Nobody was misusing the tool. They just bought one product and assumed it covered both jobs.&lt;/p&gt;

&lt;p&gt;They don't overlap the way the comparison posts imply. Copilot is an IDE assistant that helps a human type faster, with an agent layer bolted on top. Claude Code is a CLI agent that reads your repo, edits files, runs your tests, and commits. Different category, different workflow, different budget line.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where each one actually wins
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Per-line autocomplete and IDE chat: Copilot.&lt;/strong&gt; Years of telemetry-driven tuning and native reach across VS Code, JetBrains, Visual Studio, Neovim, and Xcode. Claude Code's canonical interface is a terminal, not a cursor in a buffer. The trade-off: the autocomplete surface is shallow by design. Good at finishing a line, mid-quality on a function, wrong tool for restructuring a service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-file refactors and long autonomous tasks: Claude Code.&lt;/strong&gt; A 1M-token context window, real shell access, and Agent Teams coordinating through a shared task file and git worktrees. We've run multi-service migrations with one instance on API contracts, one on migrations, one on the test suite, all through a shared &lt;code&gt;TASKS.md&lt;/code&gt;. The trade-off: agent loops burn tokens. A documented Express.js refactor came in roughly ten times more expensive than a cloud-sandboxed equivalent. On a narrow, well-scoped issue, Copilot's coding agent often gets there for less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code quality on hard diffs: Claude Code.&lt;/strong&gt; In blind review — reviewers shown unlabeled diffs from Claude Code and leading cloud-agent peers — Claude Code's output was preferred 67% of the time. The trade-off: on easy, well-scoped work the gap is small and closing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-seat cost for a broad rollout: Copilot, not close.&lt;/strong&gt; Roughly five to ten times cheaper at the daily-driver tier. Claude Code's daily driver sits at $100 per seat per month after the April 2026 reset, $200 for parallel agent workflows. The trade-off: Copilot's headline seat price excludes the agent surfaces, which meter separately. A team living in Workspace closes the gap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security and audit: this one genuinely splits
&lt;/h2&gt;

&lt;p&gt;Claude Code wins source-code residency. Code stays on the developer's machine, so a CISO at a bank or insurer isn't signing a data-handling agreement to let source leave the network.&lt;/p&gt;

&lt;p&gt;Copilot wins day-one governance. Content exclusions, IP indemnity, audit logs in the GitHub admin surface, and the compliance alignment procurement already accepts.&lt;/p&gt;

&lt;p&gt;For a NYDFS-regulated bank or a DORA-scoped insurer, the split we deploy: Claude Code on hardened dev environments for source-bearing work with explicit egress controls and audit hooks through MCP servers, Copilot inside GitHub for review, draft PRs, and the long tail of non-source-bearing work.&lt;/p&gt;

&lt;p&gt;What doesn't split: prompt injection through code comments, README files, and dependency metadata hits both tools identically. Same mitigations — confidence thresholds, sandboxed test environments, human-in-the-loop gates.&lt;/p&gt;

&lt;h2&gt;
  
  
  So how do you actually spend the budget?
&lt;/h2&gt;

&lt;p&gt;Split the seats instead of picking a winner.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copilot for every engineer, on the tier your governance review clears in under a month.&lt;/li&gt;
&lt;li&gt;Claude Code Max layered on top for the ~20% who do refactors and platform work.&lt;/li&gt;
&lt;li&gt;Both behind one guardrails layer — audit log routing, secrets access, human-in-the-loop gates — so the tool choice stays reversible.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That third point is the one teams skip, and it's the one that determines whether you can change your mind in a year without re-litigating the whole rollout.&lt;/p&gt;

&lt;p&gt;The head-to-head framing is comfortable because it produces a decision. It just produces the wrong one. Pick the lane each tool wins, instrument both, and stop pretending an autocomplete engine and an autonomous agent are competing for the same job.&lt;/p&gt;

&lt;p&gt;Full category-by-category breakdown, pricing tables, and the decision matrix: &lt;a href="https://teamvoy.com/blog/claude-code-vs-github-copilot-cto-guide/" rel="noopener noreferrer"&gt;teamvoy.com/blog/claude-code-vs-github-copilot-cto-guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Bohdan Varshchuk, CTO at Teamvoy. More engineering writing at &lt;a href="https://teamvoy.com/blog" rel="noopener noreferrer"&gt;teamvoy.com/blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>githubcopilot</category>
      <category>github</category>
    </item>
    <item>
      <title>Your CI Agent Should Not Have Write Access Yet</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Mon, 17 Aug 2026 09:43:19 +0000</pubDate>
      <link>https://dev.to/teamvoy/your-ci-agent-should-not-have-write-access-yet-30em</link>
      <guid>https://dev.to/teamvoy/your-ci-agent-should-not-have-write-access-yet-30em</guid>
      <description>&lt;p&gt;An agent in your pipeline does not fail the way a script fails. A script fails the same way every time. An agent fails creatively, and then tries again.&lt;/p&gt;

&lt;p&gt;We watched one retry the same broken fix eleven times against a failing build. No retry limit, no memory of the previous attempt, so every loop looked like a fresh problem to it. It burned compute for most of an afternoon and left the build exactly as broken as it found it. The pipeline never errored. It just never finished.&lt;/p&gt;

&lt;p&gt;That is the thing tech leads underestimate: agentic CI/CD is not automation with better judgment. It is a non-deterministic system with commit rights, and it needs guardrails that traditional CI never needed. Confidence thresholds, sandboxes, retry limits, and observability on the agent's own decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four failure modes scripts don't have
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Looping.&lt;/strong&gt; Without a retry ceiling and memory of prior attempts, the agent repeats itself indefinitely. Cost and wall-clock time, no progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hallucinated fixes.&lt;/strong&gt; On an unfamiliar error it will invent a fix — a flag that doesn't exist, a config key from a different version. This breaks the pipeline further, or worse, passes and creates a subtle bug downstream.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-determinism.&lt;/strong&gt; Same input, different action across runs. Reproducibility was the whole basis of trusting CI, and probabilistic agents remove it. Debugging gets much harder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection through your logs.&lt;/strong&gt; This is the one that should stop you. If the agent reads error logs and has execution permissions, a crafted string in a log line is an instruction. Destructive commands, leaked API keys. Your logs are now untrusted input.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maturity is genuinely low here. Only a small fraction of agent-driven pipeline changes land successfully today. Treat agents as assistants with a review queue, not as replacements for the engineer who owns the deploy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to put in place before the agent can commit
&lt;/h2&gt;

&lt;p&gt;Read access and proposals first. Write access after you have evidence.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A confidence threshold.&lt;/strong&gt; Above roughly 90%, the agent acts. Between 60 and 70%, the action is flagged and waits for a human. Nothing uncertain executes silently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A sandbox.&lt;/strong&gt; Let it try to fix the broken build in full isolation. Even a failed attempt produces logs and debugging context an engineer can use. Nothing it does can touch production data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retry limits and prior-attempt memory.&lt;/strong&gt; The cheapest fix for the most expensive failure mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict input validation on anything the agent reads.&lt;/strong&gt; Logs included. Especially logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A dashboard on the agent's own behaviour.&lt;/strong&gt; Error rates, rollback frequency, resource utilisation, and drift in decision patterns. Correlate agent decisions against build events so anomalies surface early instead of in the invoice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where agents actually earn their place
&lt;/h2&gt;

&lt;p&gt;The wins are real, and they cluster in the same area: deciding what to run rather than running everything.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Test selection.&lt;/strong&gt; Analyse the change, run the tests it can actually affect, skip the rest. Shorter feedback loops without dropping coverage where it matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flaky test prediction.&lt;/strong&gt; Historical failure patterns tell you which tests fail for no reason, which is maintenance work nobody wants to do manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risky commit flagging.&lt;/strong&gt; Build history and error logs predict failures before code reaches production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy timing and rollback.&lt;/strong&gt; Pick the window based on load, auto-trigger rollback on post-deploy signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incident triage.&lt;/strong&gt; Root-cause insight and a suggested corrective action before a human opens the dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Continuous learning is the headline benefit, but it has a precondition: the agent can only improve if the evaluation harness and observability exist to teach it. That instrumentation is the part most teams skip, and they find out they skipped it when the agent makes a decision nobody can explain.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you scope the first agent?
&lt;/h2&gt;

&lt;p&gt;In this order, and skipping either of the first two is how you ship something that works perfectly and changes nothing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Name the business outcome — release frequency, change failure rate, mean time to recover. Not "adopt AI."&lt;/li&gt;
&lt;li&gt;Identify the specific bottleneck, and state how an agent removes it.&lt;/li&gt;
&lt;li&gt;Sequence the work so the first agent ships against one measurable bottleneck, not five.&lt;/li&gt;
&lt;li&gt;Track the KPI you named in step 1.&lt;/li&gt;
&lt;li&gt;Feed what you learn back into scope and guardrails.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The rule we hold: no agent gets write access to a repo before it has spent a sprint proposing changes that a human approved or rejected. The rejection rate is the only honest readiness signal you get.&lt;/p&gt;

&lt;p&gt;None of this shows up in a demo, where the agent fixes the broken build on the first try and everyone claps. It shows up on the afternoon it tries the same fix eleven times, or the afternoon a log line convinces it to do something nobody asked for. Guardrails are not the exciting part of agentic CI/CD. They are the part that decides whether you keep the agent.&lt;/p&gt;

&lt;p&gt;Full playbook — architecture, benefits, pitfalls, and the guardrail set in detail: &lt;a href="https://teamvoy.com/blog/building-ai-agents-into-your-ci-cd-pipeline-a-playbook-for-tech-leads/" rel="noopener noreferrer"&gt;teamvoy.com/blog/building-ai-agents-into-your-ci-cd-pipeline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Alyona Kakora, Project Manager at Teamvoy. More engineering writing at &lt;a href="https://teamvoy.com/blog" rel="noopener noreferrer"&gt;teamvoy.com/blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cicd</category>
      <category>devops</category>
      <category>testing</category>
    </item>
    <item>
      <title>Your Rails App Isn't Too Old for AI. It's Too Untested.</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Thu, 06 Aug 2026 14:25:16 +0000</pubDate>
      <link>https://dev.to/teamvoy/your-rails-app-isnt-too-old-for-ai-its-too-untested-e7a</link>
      <guid>https://dev.to/teamvoy/your-rails-app-isnt-too-old-for-ai-its-too-untested-e7a</guid>
      <description>&lt;p&gt;When an AI feature fails to land on a legacy Rails app, it is almost never the model. It is that nobody could safely change the code underneath it.&lt;/p&gt;

&lt;p&gt;We picked up an app running Rails 5.2 with 11% test coverage and a Sidekiq queue nobody had looked at since 2021. The team had already built an LLM classifier. It worked on a laptop and had been sitting in a branch for five months, because merging it meant touching a controller that three people were afraid of.&lt;/p&gt;

&lt;p&gt;That is the whole argument: modernization is not a rewrite and it is not a version bump. It is the sequence that makes a legacy Rails app changeable again, and then puts AI in the places where the numbers move. Skip the sequence and you get a prototype that lives in a branch forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sequence, and why you don't get to reorder&amp;nbsp;it
&lt;/h2&gt;

&lt;p&gt;Audit, upgrade, test, refactor, then integrate. Every step exists because the next one is unsafe without it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Audit&lt;/strong&gt;. Map dependencies, security posture, and tech debt against business priorities. You are deciding what not to touch as much as what to fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade&lt;/strong&gt;, one major at a time. 4.2 → 5.0 → 5.2 → 6.0 → 6.1 → 7.0 → 7.2 → 8.0. Resolve deprecations at each stop and enable new defaults gradually through config.load_defaults. Skipping a version to save a sprint buys you a month of breaking changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test&lt;/strong&gt;. Unit, integration, and system coverage, running on every push in CI. This is not hygiene. It is the precondition for everything after it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refactor&lt;/strong&gt;. Extract business logic into service objects and concerns. This is where the seams for AI actually get cut.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrate&lt;/strong&gt;. Only now.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Incremental work also wins on cost - rebuilds have been measured at up to three times the feature development cost of upgrading in place. And there are still over 560,000 live Rails sites, so the population of teams making this decision is not small.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the AI layer actually looks&amp;nbsp;like
&lt;/h2&gt;

&lt;p&gt;Four components, and none of them are optional if the feature is going to survive a production week.&lt;br&gt;
&lt;strong&gt;A provider client.&lt;/strong&gt; Wrap OpenAI, Anthropic, Hugging Face, or your self-hosted model behind one abstraction. Swap vendors without touching business logic. Swap in a mock during CI so tests are fast and deterministic.&lt;br&gt;
&lt;strong&gt;A service object.&lt;/strong&gt; All AI logic lives here. Testable, replaceable, out of the controller.&lt;br&gt;
&lt;strong&gt;A background job.&lt;/strong&gt; Sidekiq or equivalent. Model calls never sit in the request path. A recommendation engine can chew through user data without adding a millisecond to page load.&lt;br&gt;
**An audit table. **Inputs, outputs, and confidence scores in JSONB on Postgres. When a classification is wrong, you pull the exact pair, fix the prompt, and version the change.&lt;/p&gt;

&lt;p&gt;The trade-off nobody puts in the proposal: that audit table grows fast and someone has to own retention on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you keep the AI layer from quietly costing you&amp;nbsp;money?
&lt;/h2&gt;

&lt;p&gt;Set confidence thresholds before launch, not after the first invoice. When confidence drops below the line, fall back to deterministic logic, a cached prior answer, or a human review queue. Enforce a per-tenant daily cost cap at the job layer, where you can actually stop the work.&lt;br&gt;
Then treat prompts as versioned, testable code and mock model responses in the suite. An untested prompt change is a production change with no rollback story.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to bring someone&amp;nbsp;in
&lt;/h2&gt;

&lt;p&gt;In-house works when the team ships weekly, has bandwidth for a 20% side program, and the AI use case is scoped tightly. Bring in help when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rails is two or more majors behind and no engineer on the team has run an upgrade this decade.&lt;/li&gt;
&lt;li&gt;A live prototype never got past staging because nobody owns operations for it.&lt;/li&gt;
&lt;li&gt;A board or regulator has set a date, and missing it has a number attached.&lt;/li&gt;
&lt;li&gt;The one senior Rails engineer who understood the plan just gave notice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What to push back on in a vendor quote: any multi-month discovery phase that ends in a slide deck, any proposal naming juniors on delivery, any pricing without a locked scope.&lt;br&gt;
None of this shows up in a demo. It shows up five months later, when the classifier still works perfectly on someone's laptop and the branch has 400 commits of drift behind main. The upgrade sequence is not the interesting part of adding AI to Rails. It is the part that decides whether the AI ever ships.&lt;/p&gt;

&lt;p&gt;Full breakdown of the assessment, upgrade path, and integration patterns: &lt;a href="https://dev.tourl"&gt;teamvoy.com/blog/how-to-transition-legacy-ruby-on-rails-apps-to-ai-enabled-architectures&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Bohdan Varshchuk, CTO at Teamvoy. More engineering writing at &lt;a href="https://dev.tourl"&gt;teamvoy.com/blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ruby</category>
      <category>rails</category>
      <category>programming</category>
    </item>
    <item>
      <title>Your AI Agents Aren’t Failing Because the Model Is Bad</title>
      <dc:creator>Teamvoy</dc:creator>
      <pubDate>Wed, 05 Aug 2026 19:23:23 +0000</pubDate>
      <link>https://dev.to/teamvoy/your-ai-agents-arent-failing-because-the-model-is-bad-2p47</link>
      <guid>https://dev.to/teamvoy/your-ai-agents-arent-failing-because-the-model-is-bad-2p47</guid>
      <description>&lt;p&gt;When your AI agents fail in production, it is almost never because the model got dumber. It is because nobody coordinated them.&lt;/p&gt;

&lt;p&gt;On a Tuesday, two of our agents looped through document storage while a third waited for a message that never came. They burned a month of API budget in 90 minutes. Nobody noticed until the finance dashboard turned red.&lt;/p&gt;

&lt;p&gt;That is the whole argument: production AI systems break at the coordination seams, not the model. Lost context, duplicated work, silent errors, unbounded cost. Orchestration is the layer that fixes it, and it lives or dies on four unglamorous things: state management, messaging, fault tolerance, and horizontal scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five patterns, and which one to actually start with
&lt;/h2&gt;

&lt;p&gt;Start with &lt;strong&gt;sequential&lt;/strong&gt; or &lt;strong&gt;handoff&lt;/strong&gt;. Both are the easiest to reason about, evaluate, and operate when something breaks at 2am.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sequential&lt;/strong&gt;: agent output feeds the next agent. Tight accuracy control on document review and approvals. Higher latency.&lt;br&gt;
&lt;strong&gt;Handoff&lt;/strong&gt;: a router agent classifies the request and passes it to a specialist. Great for tiered support and tool routing. The router becomes a single point of failure.&lt;br&gt;
&lt;strong&gt;Concurrent&lt;/strong&gt;: parallel independent subtasks for research and data enrichment. You pay for synchronization and merge.&lt;br&gt;
&lt;strong&gt;Group chat&lt;/strong&gt;: a shared conversation for strategic diagnosis. Higher token cost and painful to audit.&lt;br&gt;
&lt;strong&gt;Magnetic&lt;/strong&gt;: agents iterate with feedback loops for adaptive monitoring. The hardest to bound on cost and stop conditions.&lt;br&gt;
Choose the pattern per task, not per project. Most teams over-engineer here and reach for group chat when a two-step sequence would have shipped in a week.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you catch an agent quietly degrading in prod?
&lt;/h2&gt;

&lt;p&gt;You wire the metrics in before launch, not after the incident. One fintech client watched a classification agent slide from an F1 score of 0.89 to 0.72 over six weeks, and nobody noticed until we rebuilt the evaluation harness against labeled tickets. By then the drift was live in front of users.&lt;/p&gt;

&lt;p&gt;What to instrument on day one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BLEU&lt;/strong&gt; for generation quality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Precision and recall&lt;/strong&gt; for classification and retrieval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;F1&lt;/strong&gt; for the balance between them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost per task, latency per agent, and drift over time&lt;/strong&gt;, on a dashboard that alerts on regressions.&lt;/li&gt;
&lt;li&gt;The rule we hold on every engagement: no agent ships to production without a documented fallback path.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it costs to do this seriously
&lt;/h2&gt;

&lt;p&gt;A scoped first workflow runs four to twelve weeks. That covers pattern selection, framework choice (LangChain, IBM Granite, and friends), infrastructure setup, agent development, and the evaluation and audit layer. If you are staffing it properly, budget 80,000 to 250,000 dollars before the ongoing model and infra costs that scale with volume.&lt;/p&gt;

&lt;p&gt;None of these failures show up in a demo. They show up on a Tuesday, three weeks in, when the dashboard turns red and nobody can say which agent did it. Orchestration is not the exciting part of building with AI. It is just the part that decides whether the thing survives contact with real traffic.&lt;/p&gt;

&lt;p&gt;Full breakdown of all five patterns and the infrastructure behind them: &lt;a href="https://dev.tourl"&gt;teamvoy.com/blog/ai-agent-orchestration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Written by Bohdan Varshchuk, CTO at Teamvoy. More engineering writing at &lt;a href="https://dev.tourl"&gt;teamvoy.com/blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>agents</category>
      <category>agentskills</category>
    </item>
  </channel>
</rss>
