[{"data":1,"prerenderedAt":1520},["ShallowReactive",2],{"article_list_ai software development_":3},[4,457],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"publishDate":6,"image":11,"author":12,"tags":15,"excerpt":10,"body":20,"_type":451,"_id":452,"_source":453,"_file":454,"_stem":455,"_extension":456},"/cperez/2026-08-20/ai-code-review-verifying-generated-software","2026-08-20",false,"","AI Can Write the Code. Who Verifies It?","AI Code Review: Who Verifies AI-Generated Software?","/cperez/2026-08-20/img/ai-code-review-verifying-generated-software.jpg",{"name":13,"user":14},"Carlos Perez","cperez",[16,17,18,19],"ai code review","ai software development","vibe coding","humans in the loop",{"type":21,"children":22,"toc":432},"root",[23,34,39,44,49,54,64,71,76,81,86,91,97,102,107,112,117,122,127,143,148,154,159,164,169,174,179,185,190,195,200,205,210,216,221,226,231,237,242,247,252,257,262,276,281,287,292,297,302,307,329,334,340,345,350,360,365,370,376,383,388,394,399,405,410,416,421,427],{"type":24,"tag":25,"props":26,"children":27},"element","p",{},[28],{"type":24,"tag":29,"props":30,"children":31},"strong",{},[32],{"type":33,"value":10},"text",{"type":24,"tag":25,"props":35,"children":36},{},[37],{"type":33,"value":38},"AI has changed one of the basic economics of software development by making code much faster to produce.",{"type":24,"tag":25,"props":40,"children":41},{},[42],{"type":33,"value":43},"A developer can ask an agent to implement a feature, migrate an API, generate tests, fix a bug, or refactor a component, and often have a plausible solution waiting within minutes. That can create a real productivity gain, especially when the work is repetitive or well defined, but it also shifts the bottleneck.",{"type":24,"tag":25,"props":45,"children":46},{},[47],{"type":33,"value":48},"Someone still has to determine whether the code is actually right.",{"type":24,"tag":25,"props":50,"children":51},{},[52],{"type":33,"value":53},"That means more than checking whether it compiles, whether the tests pass, or whether the feature behaves correctly in the most obvious scenario. The real question is whether the software still does what the business expects, handles the cases that matter, respects the architecture and security model, and avoids changing something elsewhere in the system.",{"type":24,"tag":25,"props":55,"children":56},{},[57,59],{"type":33,"value":58},"As code generation gets cheaper, ",{"type":24,"tag":29,"props":60,"children":61},{},[62],{"type":33,"value":63},"verification becomes more valuable.",{"type":24,"tag":65,"props":66,"children":68},"h3",{"id":67},"what-does-good-ai-code-review-require",[69],{"type":33,"value":70},"What does good AI code review require?",{"type":24,"tag":25,"props":72,"children":73},{},[74],{"type":33,"value":75},"Reviewing AI-generated code requires more than checking syntax or style. Developers need to verify the intended business behavior, inspect the assumptions behind the implementation, evaluate whether the tests are meaningful, and understand how the change interacts with the rest of the application.",{"type":24,"tag":25,"props":77,"children":78},{},[79],{"type":33,"value":80},"That means experienced developers still need to ask whether the implementation actually solved the requested problem, whether it preserved existing behavior that wasn’t explicitly mentioned in the prompt, and whether it introduced a new security or architectural risk.",{"type":24,"tag":25,"props":82,"children":83},{},[84],{"type":33,"value":85},"They also need to understand what happens when the happy path breaks down. Incomplete data, unusual inputs, failed integrations, permission boundaries, and edge cases often matter more than the scenario that was easiest to demonstrate.",{"type":24,"tag":25,"props":87,"children":88},{},[89],{"type":33,"value":90},"AI can help with parts of that review, but the organization still needs someone responsible for deciding when the evidence is strong enough to trust the change.",{"type":24,"tag":65,"props":92,"children":94},{"id":93},"passing-tests-isnt-the-same-as-being-correct",[95],{"type":33,"value":96},"Passing tests isn’t the same as being correct",{"type":24,"tag":25,"props":98,"children":99},{},[100],{"type":33,"value":101},"Automated tests are some of the best tools developers have for making software safer to change, and they become even more valuable when AI is producing more implementation more quickly.",{"type":24,"tag":25,"props":103,"children":104},{},[105],{"type":33,"value":106},"There is a catch, though: AI can generate the tests along with the code.",{"type":24,"tag":25,"props":108,"children":109},{},[110],{"type":33,"value":111},"If the same misunderstanding appears in both places, everything may pass while the feature is still wrong.",{"type":24,"tag":25,"props":113,"children":114},{},[115],{"type":33,"value":116},"Suppose an agent misinterprets a pricing rule, implements the wrong calculation, and then generates tests based on that same interpretation. From the development environment’s perspective, the feature looks healthy because the code and tests agree with each other.",{"type":24,"tag":25,"props":118,"children":119},{},[120],{"type":33,"value":121},"The business rule is still wrong.",{"type":24,"tag":25,"props":123,"children":124},{},[125],{"type":33,"value":126},"That’s why good AI-assisted development needs tests that are grounded independently in requirements, existing behavior, known examples, and domain expertise. A passing test suite is useful evidence, but developers still have to understand what that evidence actually proves.",{"type":24,"tag":25,"props":128,"children":129},{},[130,132,141],{"type":33,"value":131},"Art+Logic encountered a version of this problem during an ",{"type":24,"tag":133,"props":134,"children":138},"a",{"href":135,"rel":136},"https://artandlogic.com/ai-assisted-modernization/",[137],"nofollow",[139],{"type":33,"value":140},"AI-assisted modernization project",{"type":33,"value":142},". Earlier automated attempts at migrating the application produced software that compiled while removing or disabling important functionality. Art+Logic instead used AI for bounded, repetitive work while experienced engineers retained responsibility for architecture, review, testing, and validation.",{"type":24,"tag":25,"props":144,"children":145},{},[146],{"type":33,"value":147},"The important distinction wasn’t whether AI could produce working code. It was whether the team could prove that the migrated application still worked for the people who depended on it.",{"type":24,"tag":65,"props":149,"children":151},{"id":150},"the-harder-the-business-rules-the-more-verification-matters",[152],{"type":33,"value":153},"The harder the business rules, the more verification matters",{"type":24,"tag":25,"props":155,"children":156},{},[157],{"type":33,"value":158},"Many applications contain behavior that isn’t obvious from the code alone.",{"type":24,"tag":25,"props":160,"children":161},{},[162],{"type":33,"value":163},"A strange condition may exist because of a customer contract, an unusual workflow may reflect a regulatory requirement, or a validation rule that looks redundant may protect against a problem users encountered years ago. AI can analyze the implementation, but it may not know why that behavior exists unless the relevant context is available somewhere it can use.",{"type":24,"tag":25,"props":165,"children":166},{},[167],{"type":33,"value":168},"That makes collaboration with domain experts increasingly important.",{"type":24,"tag":25,"props":170,"children":171},{},[172],{"type":33,"value":173},"A developer reviewing generated code may need to ask the client or product owner whether a particular behavior is actually correct, because the answer can’t always be inferred from the repository. This is one reason Art+Logic’s development process combines the client’s domain knowledge with software-engineering experience: the client knows what the business requires, while developers turn those requirements into software that can be tested, operated, and changed safely.",{"type":24,"tag":25,"props":175,"children":176},{},[177],{"type":33,"value":178},"AI can accelerate that process, but it doesn’t eliminate the need for the conversation.",{"type":24,"tag":65,"props":180,"children":182},{"id":181},"ai-can-increase-the-amount-of-software-that-needs-to-be-reviewed",[183],{"type":33,"value":184},"AI can increase the amount of software that needs to be reviewed",{"type":24,"tag":25,"props":186,"children":187},{},[188],{"type":33,"value":189},"There’s another consequence of faster code generation: teams can produce more change than reviewers can comfortably absorb.",{"type":24,"tag":25,"props":191,"children":192},{},[193],{"type":33,"value":194},"A developer who once implemented one feature may now direct several agents, explore multiple approaches, and generate a much larger set of tests and supporting changes in the same period. That sounds like pure productivity until review becomes the limiting step.",{"type":24,"tag":25,"props":196,"children":197},{},[198],{"type":33,"value":199},"At that point, the development question changes from “How quickly can we generate the implementation?” to “How much change can we verify with confidence?”",{"type":24,"tag":25,"props":201,"children":202},{},[203],{"type":33,"value":204},"That’s a different kind of capacity problem, and the answer probably isn’t to review every AI-generated line with identical intensity. Instead, teams need better ways to evaluate risk.",{"type":24,"tag":25,"props":206,"children":207},{},[208],{"type":33,"value":209},"A copy change and a database migration shouldn’t receive the same review, just as a small UI correction shouldn’t be treated like a change to authorization logic. The more consequential the change, the stronger the review should be.",{"type":24,"tag":65,"props":211,"children":213},{"id":212},"what-should-always-receive-closer-human-review",[214],{"type":33,"value":215},"What should always receive closer human review?",{"type":24,"tag":25,"props":217,"children":218},{},[219],{"type":33,"value":220},"Every team will draw the boundary differently, but some changes deserve more scrutiny because mistakes are expensive, difficult to detect, or difficult to reverse.",{"type":24,"tag":25,"props":222,"children":223},{},[224],{"type":33,"value":225},"That usually includes work involving authentication and authorization, sensitive or regulated data, database schemas and migrations, financial calculations, infrastructure, critical business rules, public APIs, external integrations, major architectural changes, and irreversible operations.",{"type":24,"tag":25,"props":227,"children":228},{},[229],{"type":33,"value":230},"AI may still contribute substantially to those changes, but the point isn’t that developers have to type everything themselves. It’s that someone with enough context and experience needs to understand what is changing and accept responsibility for the result.",{"type":24,"tag":65,"props":232,"children":234},{"id":233},"the-reviewer-needs-to-understand-the-system-not-just-the-diff",[235],{"type":33,"value":236},"The reviewer needs to understand the system, not just the diff",{"type":24,"tag":25,"props":238,"children":239},{},[240],{"type":33,"value":241},"In software development, a “diff” is the set of lines that were added, removed, or changed. A reviewer can inspect that diff and decide that the code looks clean and reasonable, but still miss a problem if they don’t understand the surrounding system.",{"type":24,"tag":25,"props":243,"children":244},{},[245],{"type":33,"value":246},"There’s also a business reason developers can’t become detached from the code AI produces.",{"type":24,"tag":25,"props":248,"children":249},{},[250],{"type":33,"value":251},"When a customer reports an issue, asks how a feature behaves, or wants to understand why a particular decision was made, the development team still needs to navigate the application and explain what’s happening. A developer who can only say, “The agent wrote that part, and the tests passed,” hasn’t transferred responsibility to the AI provider; the client still depends on the development team.",{"type":24,"tag":25,"props":253,"children":254},{},[255],{"type":33,"value":256},"That makes code comprehension an important part of verification.",{"type":24,"tag":25,"props":258,"children":259},{},[260],{"type":33,"value":261},"Good review isn’t just a gate before deployment. It’s also one of the ways a team maintains enough shared understanding to support the software later.",{"type":24,"tag":25,"props":263,"children":264},{},[265,267,274],{"type":33,"value":266},"This connects directly to another risk Art+Logic has written about: ",{"type":24,"tag":133,"props":268,"children":271},{"href":269,"rel":270},"https://artandlogic.com/newsletters/how-turnover-reveals-weak-architecture/",[137],[272],{"type":33,"value":273},"key-person dependency and weak architecture",{"type":33,"value":275},". Systems become fragile when understanding is concentrated in a few people rather than expressed through architecture, tests, documentation, and consistent patterns.",{"type":24,"tag":25,"props":277,"children":278},{},[279],{"type":33,"value":280},"AI-generated software can create the same problem in a new form if teams allow code to accumulate faster than they can understand it.",{"type":24,"tag":65,"props":282,"children":284},{"id":283},"ai-should-make-repetitive-work-cheaper-not-judgment-optional",[285],{"type":33,"value":286},"AI should make repetitive work cheaper, not judgment optional",{"type":24,"tag":25,"props":288,"children":289},{},[290],{"type":33,"value":291},"The best use of coding agents isn’t to pretend developers no longer need to understand implementation. It’s to change where developers spend their time.",{"type":24,"tag":25,"props":293,"children":294},{},[295],{"type":33,"value":296},"AI can take on more of the repetitive work, including generating boilerplate, applying known patterns, drafting tests, tracing dependencies, converting framework conventions, or producing a first implementation for review. That gives experienced developers more time to focus on the decisions that require judgment.",{"type":24,"tag":25,"props":298,"children":299},{},[300],{"type":33,"value":301},"Is this the right architecture? Does the change match the business requirement? Is the security model still intact? Is there a simpler approach? What are the likely failure modes, and can another developer maintain this later?",{"type":24,"tag":25,"props":303,"children":304},{},[305],{"type":33,"value":306},"Those questions become more important, not less, as implementation speeds up.",{"type":24,"tag":25,"props":308,"children":309},{},[310,312,318,320,327],{"type":33,"value":311},"Art+Logic has taken that approach in both ",{"type":24,"tag":133,"props":313,"children":315},{"href":135,"rel":314},[137],[316],{"type":33,"value":317},"AI-assisted modernization",{"type":33,"value":319}," and its broader work with AI-enabled software ",{"type":24,"tag":133,"props":321,"children":324},{"href":322,"rel":323},"https://artandlogic.com/ai/",[137],[325],{"type":33,"value":326},"AI-enabled software",{"type":33,"value":328},": use AI where it improves development efficiency while keeping experienced engineering judgment around architecture, quality, security, and maintainability.",{"type":24,"tag":25,"props":330,"children":331},{},[332],{"type":33,"value":333},"The objective isn’t to preserve old ways of writing software. It’s to take advantage of faster implementation without giving up confidence in the result.",{"type":24,"tag":65,"props":335,"children":337},{"id":336},"the-new-bottleneck-may-be-trust",[338],{"type":33,"value":339},"The new bottleneck may be trust",{"type":24,"tag":25,"props":341,"children":342},{},[343],{"type":33,"value":344},"AI coding tools will keep improving, and teams will almost certainly become more comfortable delegating larger portions of implementation.",{"type":24,"tag":25,"props":346,"children":347},{},[348],{"type":33,"value":349},"That doesn’t make verification disappear; it changes what verification looks like.",{"type":24,"tag":25,"props":351,"children":352},{},[353,355],{"type":33,"value":354},"Some confidence will come from automated tests, static analysis, security tooling, evaluation frameworks, and even additional AI agents reviewing other agents’ work. However, a business still needs a defensible answer to a basic question: ",{"type":24,"tag":29,"props":356,"children":357},{},[358],{"type":33,"value":359},"Why do we believe this software is correct?",{"type":24,"tag":25,"props":361,"children":362},{},[363],{"type":33,"value":364},"For low-risk changes, that answer may become increasingly automated. For changes involving important business logic, customer data, architecture, security, or irreversible actions, experienced people will still need to understand the evidence and make the call.",{"type":24,"tag":25,"props":366,"children":367},{},[368],{"type":33,"value":369},"AI can write more code than ever before, which is useful. The competitive advantage will increasingly come from knowing which code to trust, which code to question, and how to tell the difference.",{"type":24,"tag":65,"props":371,"children":373},{"id":372},"faqs",[374],{"type":33,"value":375},"FAQs",{"type":24,"tag":377,"props":378,"children":380},"h4",{"id":379},"does-ai-generated-code-still-need-human-review",[381],{"type":33,"value":382},"Does AI-generated code still need human review?",{"type":24,"tag":25,"props":384,"children":385},{},[386],{"type":33,"value":387},"Yes, particularly when a change affects important business rules, security, sensitive data, architecture, integrations, or other high-impact behavior. Automated tools can provide evidence, but experienced developers still need to determine whether the implementation satisfies the real requirement.",{"type":24,"tag":377,"props":389,"children":391},{"id":390},"can-ai-generated-tests-be-trusted",[392],{"type":33,"value":393},"Can AI-generated tests be trusted?",{"type":24,"tag":25,"props":395,"children":396},{},[397],{"type":33,"value":398},"They can be useful, but generated tests shouldn’t be treated as independent proof of correctness. If the AI misunderstands the requirement, it may encode the same misunderstanding in both the implementation and the tests.",{"type":24,"tag":377,"props":400,"children":402},{"id":401},"what-should-developers-check-when-reviewing-ai-generated-code",[403],{"type":33,"value":404},"What should developers check when reviewing AI-generated code?",{"type":24,"tag":25,"props":406,"children":407},{},[408],{"type":33,"value":409},"Developers should verify business behavior, architectural fit, security boundaries, error handling, edge cases, test quality, maintainability, and interactions with other parts of the application. Review depth should increase with the risk of the change.",{"type":24,"tag":377,"props":411,"children":413},{"id":412},"is-ai-replacing-software-developers",[414],{"type":33,"value":415},"Is AI replacing software developers?",{"type":24,"tag":25,"props":417,"children":418},{},[419],{"type":33,"value":420},"AI is changing how developers spend their time rather than eliminating the need for software engineering. As implementation becomes faster, architecture, verification, system understanding, security, and business-rule validation become more important.",{"type":24,"tag":377,"props":422,"children":424},{"id":423},"why-is-verification-becoming-a-bottleneck-in-ai-software-development",[425],{"type":33,"value":426},"Why is verification becoming a bottleneck in AI software development?",{"type":24,"tag":25,"props":428,"children":429},{},[430],{"type":33,"value":431},"Coding agents can produce implementation and tests much faster than developers traditionally could, which increases the volume of software changes that need to be understood, evaluated, and validated before they can safely reach production.",{"title":8,"searchDepth":433,"depth":433,"links":434},3,[435,436,437,438,439,440,441,442,443],{"id":67,"depth":433,"text":70},{"id":93,"depth":433,"text":96},{"id":150,"depth":433,"text":153},{"id":181,"depth":433,"text":184},{"id":212,"depth":433,"text":215},{"id":233,"depth":433,"text":236},{"id":283,"depth":433,"text":286},{"id":336,"depth":433,"text":339},{"id":372,"depth":433,"text":375,"children":444},[445,447,448,449,450],{"id":379,"depth":446,"text":382},4,{"id":390,"depth":446,"text":393},{"id":401,"depth":446,"text":404},{"id":412,"depth":446,"text":415},{"id":423,"depth":446,"text":426},"markdown","content:cperez:2026-08-20:ai-code-review-verifying-generated-software.md","content","cperez/2026-08-20/ai-code-review-verifying-generated-software.md","cperez/2026-08-20/ai-code-review-verifying-generated-software","md",{"_path":458,"_dir":459,"_draft":7,"_partial":7,"_locale":8,"title":460,"description":461,"publishDate":459,"image":462,"author":463,"tags":464,"excerpt":461,"body":470,"_type":451,"_id":1517,"_source":453,"_file":1518,"_stem":1519,"_extension":456},"/cperez/2026-08-11/ai-prototype-to-production-business-results","2026-08-11","Your AI Prototype Is Finished. The Software Project Isn’t.","The demonstration went well. The application accepted a request, generated the right response, and completed a task that normally takes someone much longer, so everyone left the meeting impressed.","/cperez/2026-08-11/img/ai-prototype-to-production-business-results.jpg",{"name":13,"user":14},[17,465,466,467,468,469],"software rescue","vibe-coded application rescue","ai prototype development","ai application modernization","custom ai software development",{"type":21,"children":471,"toc":1480},[472,476,481,486,491,496,501,507,512,517,531,536,542,582,588,593,598,603,608,613,618,623,628,640,646,651,656,661,666,679,684,689,694,700,705,710,715,720,725,730,736,741,746,751,756,761,766,777,783,788,793,798,803,808,813,819,824,829,842,855,860,872,877,883,888,893,898,903,908,920,931,937,942,947,952,957,962,967,973,978,983,988,993,998,1003,1009,1014,1019,1024,1029,1034,1045,1051,1056,1061,1066,1071,1076,1081,1087,1092,1097,1102,1107,1119,1124,1129,1134,1140,1145,1150,1155,1160,1166,1171,1177,1182,1188,1193,1198,1204,1209,1215,1220,1225,1236,1242,1247,1252,1257,1262,1274,1279,1285,1297,1302,1307,1312,1317,1328,1333,1339,1344,1349,1354,1359,1364,1369,1377,1381,1387,1392,1398,1403,1409,1414,1420,1425,1431,1436,1442,1447,1453,1458,1464,1469,1475],{"type":24,"tag":25,"props":473,"children":474},{},[475],{"type":33,"value":461},{"type":24,"tag":25,"props":477,"children":478},{},[479],{"type":33,"value":480},"Then the team tried to connect it to the business.",{"type":24,"tag":25,"props":482,"children":483},{},[484],{"type":33,"value":485},"The application needed customer data from three systems, users needed different permissions, and someone had to decide what should happen when the data disagreed. The AI service occasionally returned an unexpected answer, and there was no reliable way to tell whether an action had succeeded, failed, or happened twice.",{"type":24,"tag":25,"props":487,"children":488},{},[489],{"type":33,"value":490},"The prototype still worked, but the product didn’t exist yet.",{"type":24,"tag":25,"props":492,"children":493},{},[494],{"type":33,"value":495},"AI has made it much easier to generate code and test an idea. It hasn’t eliminated the work required to turn that idea into secure, maintainable software that fits an organization’s workflows and produces a measurable result.",{"type":24,"tag":25,"props":497,"children":498},{},[499],{"type":33,"value":500},"The distance between the demonstration and a dependable product is where much of the real software-development work now happens.",{"type":24,"tag":65,"props":502,"children":504},{"id":503},"why-isnt-a-working-prototype-enough",[505],{"type":33,"value":506},"Why isn’t a working prototype enough?",{"type":24,"tag":25,"props":508,"children":509},{},[510],{"type":33,"value":511},"A prototype proves that an idea may be technically possible, while a production software product has to keep working when it encounters real users, sensitive data, changing requirements, incomplete information, security threats, external systems, and unexpected behavior.",{"type":24,"tag":25,"props":513,"children":514},{},[515],{"type":33,"value":516},"That requires more than generated code. It requires architecture, integrations, authentication, permissions, testing, monitoring, deployment, support, and a clear understanding of the business process the software is supposed to improve.",{"type":24,"tag":25,"props":518,"children":519},{},[520,522,529],{"type":33,"value":521},"Art+Logic makes the same distinction in its guidance for AI-generated projects: code that runs may still lack the business context, scalability, security, testing, documentation, and edge-case handling required for real-world use. (",{"type":24,"tag":133,"props":523,"children":526},{"href":524,"rel":525},"https://artandlogic.com/ai-rescue/",[137],[527],{"type":33,"value":528},"artandlogic.com",{"type":33,"value":530},")",{"type":24,"tag":25,"props":532,"children":533},{},[534],{"type":33,"value":535},"The important question isn’t simply whether the application can perform the task. It’s whether the organization can depend on it.",{"type":24,"tag":65,"props":537,"children":539},{"id":538},"key-takeaways",[540],{"type":33,"value":541},"Key takeaways",{"type":24,"tag":543,"props":544,"children":545},"ul",{},[546,552,557,562,567,572,577],{"type":24,"tag":547,"props":548,"children":549},"li",{},[550],{"type":33,"value":551},"A prototype demonstrates an idea, while a product supports a business process under real operating conditions.",{"type":24,"tag":547,"props":553,"children":554},{},[555],{"type":33,"value":556},"AI can accelerate implementation, but it doesn’t automatically supply architecture, security, integrations, testing, or operational ownership.",{"type":24,"tag":547,"props":558,"children":559},{},[560],{"type":33,"value":561},"Many AI-assisted projects stall because the team solved the visible interaction without designing the surrounding system.",{"type":24,"tag":547,"props":563,"children":564},{},[565],{"type":33,"value":566},"Production readiness includes user workflows, permissions, failure handling, monitoring, deployment, support, and maintainability.",{"type":24,"tag":547,"props":568,"children":569},{},[570],{"type":33,"value":571},"A project should be measured by the business result it creates, not by the amount of code generated or the number of features completed.",{"type":24,"tag":547,"props":573,"children":574},{},[575],{"type":33,"value":576},"An unfinished AI application may be repairable, and the right decision may be to stabilize, refactor, rearchitect, or selectively rebuild it rather than start over.",{"type":24,"tag":547,"props":578,"children":579},{},[580],{"type":33,"value":581},"Experienced software developers remain essential because they turn business constraints and domain knowledge into a system that can be operated safely.",{"type":24,"tag":65,"props":583,"children":585},{"id":584},"what-is-the-difference-between-a-prototype-and-a-software-product",[586],{"type":33,"value":587},"What is the difference between a prototype and a software product?",{"type":24,"tag":25,"props":589,"children":590},{},[591],{"type":33,"value":592},"A prototype answers a focused question.",{"type":24,"tag":25,"props":594,"children":595},{},[596],{"type":33,"value":597},"Can the model extract these fields? Can a user describe a task in natural language? Can the system generate a useful recommendation? Can this workflow be partially automated?",{"type":24,"tag":25,"props":599,"children":600},{},[601],{"type":33,"value":602},"Those are valuable questions because they let a team test an idea before committing to a larger investment. A prototype can put something in front of users, expose weak assumptions, and help determine whether the concept deserves to move forward.",{"type":24,"tag":25,"props":604,"children":605},{},[606],{"type":33,"value":607},"However, prototypes are usually designed to reduce uncertainty, not to carry the full weight of the business. They may assume a limited number of users, clean test data, a cooperative workflow, one role with broad access, stable third-party services, and an engineer nearby who understands the entire system.",{"type":24,"tag":25,"props":609,"children":610},{},[611],{"type":33,"value":612},"Production removes those assumptions.",{"type":24,"tag":25,"props":614,"children":615},{},[616],{"type":33,"value":617},"Real users arrive with different goals, permissions, devices, and levels of experience. They enter incomplete information, repeat requests, abandon workflows halfway through, and expect the application to preserve their work and explain what happened.",{"type":24,"tag":25,"props":619,"children":620},{},[621],{"type":33,"value":622},"External systems become unavailable, credentials expire, vendors change APIs, the business updates a policy, and the model itself may change.",{"type":24,"tag":25,"props":624,"children":625},{},[626],{"type":33,"value":627},"A demonstration doesn’t have to account for all of that, but a product does.",{"type":24,"tag":25,"props":629,"children":630},{},[631,633,639],{"type":33,"value":632},"Art+Logic has described launch as the point where a system stops being theoretical and begins encountering real usage, expectations, edge cases, and consequences. It has made a similar point about MVPs: the first version can validate direction, but it isn’t automatically a foundation for long-term growth. (",{"type":24,"tag":133,"props":634,"children":637},{"href":635,"rel":636},"https://artandlogic.com/newsletters/what-does-it-mean-launch/",[137],[638],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":65,"props":641,"children":643},{"id":642},"why-do-ai-assisted-projects-stall-after-the-demo",[644],{"type":33,"value":645},"Why do AI-assisted projects stall after the demo?",{"type":24,"tag":25,"props":647,"children":648},{},[649],{"type":33,"value":650},"The most common problem isn’t necessarily the AI. It’s everything the AI needs around it.",{"type":24,"tag":25,"props":652,"children":653},{},[654],{"type":33,"value":655},"A demonstration may use a model to interpret a request, summarize a document, generate a response, or select an action. The production system still has to determine who is making the request, what that person is allowed to see, which information is authoritative, whether the proposed action is permitted, and which systems need to be updated.",{"type":24,"tag":25,"props":657,"children":658},{},[659],{"type":33,"value":660},"It also has to handle partial failure. If one update succeeds and another fails, the software needs a clear response. If a person must approve the result, the application needs to show them enough information to make that approval meaningful. If the action affects a customer, account, or transaction, the organization needs a record of what happened.",{"type":24,"tag":25,"props":662,"children":663},{},[664],{"type":33,"value":665},"The model may provide the most visible capability, but the surrounding software is what makes that capability useful.",{"type":24,"tag":25,"props":667,"children":668},{},[669,671,678],{"type":33,"value":670},"Google’s 2025 DORA research reached a related conclusion: AI acts as an amplifier of the environment around it, so the largest gains don’t come from the tool alone. They come from strong internal platforms, clear workflows, and aligned teams. (",{"type":24,"tag":133,"props":672,"children":675},{"href":673,"rel":674},"https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report",[137],[676],{"type":33,"value":677},"cloud.google.com",{"type":33,"value":530},{"type":24,"tag":25,"props":680,"children":681},{},[682],{"type":33,"value":683},"That helps explain why the same AI tool can produce very different results in two organizations.",{"type":24,"tag":25,"props":685,"children":686},{},[687],{"type":33,"value":688},"One team has established development practices, reliable data, clear ownership, automated testing, and software designed to change. The other has fragmented systems, unclear business rules, broad credentials, and no dependable way to deploy or monitor the application.",{"type":24,"tag":25,"props":690,"children":691},{},[692],{"type":33,"value":693},"AI accelerates both teams, but it doesn’t make their foundations equivalent.",{"type":24,"tag":65,"props":695,"children":697},{"id":696},"the-prototype-solved-the-interaction-not-the-workflow",[698],{"type":33,"value":699},"The prototype solved the interaction, not the workflow",{"type":24,"tag":25,"props":701,"children":702},{},[703],{"type":33,"value":704},"Many AI applications begin with a compelling interaction: upload a document and ask questions, describe what you need and let the system create it, or tell an agent what to do and allow it to update the account.",{"type":24,"tag":25,"props":706,"children":707},{},[708],{"type":33,"value":709},"That interaction may be the right starting point, but it isn’t the whole workflow.",{"type":24,"tag":25,"props":711,"children":712},{},[713],{"type":33,"value":714},"Consider an application that helps an operations team resolve customer exceptions. The prototype may be able to read the request and suggest a resolution, while the finished product may need to confirm the user’s identity, find the correct customer and transaction, retrieve information from several systems, determine which policy version applies, and identify missing or conflicting data.",{"type":24,"tag":25,"props":716,"children":717},{},[718],{"type":33,"value":719},"It may also need to calculate the permitted resolution, request approval when a threshold is exceeded, update multiple systems, notify the customer, preserve the evidence behind the decision, and route unresolved cases to a person.",{"type":24,"tag":25,"props":721,"children":722},{},[723],{"type":33,"value":724},"The AI capability may contribute to only a few of those steps. Software developers still have to design the process connecting them.",{"type":24,"tag":25,"props":726,"children":727},{},[728],{"type":33,"value":729},"That’s why an AI prototype can appear nearly finished while the underlying project is not. The visible feature exists, but the operational product still needs to be built.",{"type":24,"tag":65,"props":731,"children":733},{"id":732},"integrations-determine-whether-the-application-can-do-real-work",[734],{"type":33,"value":735},"Integrations determine whether the application can do real work",{"type":24,"tag":25,"props":737,"children":738},{},[739],{"type":33,"value":740},"A prototype often works with information supplied directly in the demonstration, while a production application usually needs information held elsewhere.",{"type":24,"tag":25,"props":742,"children":743},{},[744],{"type":33,"value":745},"That may include customer relationship management software, accounting or payment systems, internal databases, document repositories, identity providers, scheduling platforms, inventory systems, custom legacy applications, and third-party APIs.",{"type":24,"tag":25,"props":747,"children":748},{},[749],{"type":33,"value":750},"Connecting those systems is rarely a matter of turning on access.",{"type":24,"tag":25,"props":752,"children":753},{},[754],{"type":33,"value":755},"The development team has to understand what each system contains, which one owns a particular piece of information, how records are identified, and what should happen when two sources disagree.",{"type":24,"tag":25,"props":757,"children":758},{},[759],{"type":33,"value":760},"The software may also need to account for missing or duplicated records, different definitions of the same field, API rate limits, delayed updates, vendor outages, data that can’t be sent to an AI provider, older systems without modern APIs, and actions that must occur in a particular order.",{"type":24,"tag":25,"props":762,"children":763},{},[764],{"type":33,"value":765},"An impressive model response can’t compensate for incorrect customer data or an unreliable integration. The product is only as dependable as the full path from the user’s request to the business outcome.",{"type":24,"tag":25,"props":767,"children":768},{},[769,771,776],{"type":33,"value":770},"Art+Logic’s custom AI work is positioned around bringing AI capabilities into real-world applications, including workflow automation, natural-language system actions, document processing, and modernization of existing software. That work necessarily connects AI to the applications and operational context around it. (",{"type":24,"tag":133,"props":772,"children":774},{"href":322,"rel":773},[137],[775],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":65,"props":778,"children":780},{"id":779},"permissions-determine-what-the-software-is-allowed-to-become",[781],{"type":33,"value":782},"Permissions determine what the software is allowed to become",{"type":24,"tag":25,"props":784,"children":785},{},[786],{"type":33,"value":787},"Prototypes often use one account with broad access because that keeps the demonstration simple. It’s also one of the first things that has to change before production.",{"type":24,"tag":25,"props":789,"children":790},{},[791],{"type":33,"value":792},"A real application may serve customers, employees, managers, administrators, partners, and support personnel, and each person may be allowed to see and do something different.",{"type":24,"tag":25,"props":794,"children":795},{},[796],{"type":33,"value":797},"The software needs to determine whether a user can view or change a particular record, whether they’re acting for themselves or for an organization, and whether the AI service needs the full record or only selected fields.",{"type":24,"tag":25,"props":799,"children":800},{},[801],{"type":33,"value":802},"It may also need to distinguish between drafting an action and executing it, determine who can approve an exception, limit how long access remains valid, and record who initiated each change.",{"type":24,"tag":25,"props":804,"children":805},{},[806],{"type":33,"value":807},"Those rules shouldn’t live only in a prompt. They need to be enforced by the application.",{"type":24,"tag":25,"props":809,"children":810},{},[811],{"type":33,"value":812},"That becomes especially important when AI can take actions rather than merely generate text. A model may recommend something, but the surrounding software must determine whether it’s permitted.",{"type":24,"tag":65,"props":814,"children":816},{"id":815},"security-has-to-be-part-of-the-product",[817],{"type":33,"value":818},"Security has to be part of the product",{"type":24,"tag":25,"props":820,"children":821},{},[822],{"type":33,"value":823},"A prototype is usually built to demonstrate value, and attackers aren’t part of the demonstration.",{"type":24,"tag":25,"props":825,"children":826},{},[827],{"type":33,"value":828},"Production software has to assume that someone may misuse an account, manipulate an input, probe an API, expose sensitive information, or exploit an overlooked dependency.",{"type":24,"tag":25,"props":830,"children":831},{},[832,834,841],{"type":33,"value":833},"Generative AI applications add their own risks, including unsafe outputs, sensitive-information exposure, prompt manipulation, excessive agency, and insecure connections between the model and other systems. OWASP maintains dedicated guidance for security risks across the generative-AI application lifecycle. (",{"type":24,"tag":133,"props":835,"children":838},{"href":836,"rel":837},"https://genai.owasp.org/",[137],[839],{"type":33,"value":840},"genai.owasp.org",{"type":33,"value":530},{"type":24,"tag":25,"props":843,"children":844},{},[845,847,854],{"type":33,"value":846},"The broader principle isn’t unique to AI. CISA’s Secure by Design guidance recommends treating customer security as a core product requirement rather than a feature added after development. (",{"type":24,"tag":133,"props":848,"children":851},{"href":849,"rel":850},"https://www.cisa.gov/securebydesign",[137],[852],{"type":33,"value":853},"cisa.gov",{"type":33,"value":530},{"type":24,"tag":25,"props":856,"children":857},{},[858],{"type":33,"value":859},"In practice, that may require threat modeling, secure authentication, role-based authorization, data minimization, encryption, input and output validation, dependency management, audit logging, infrastructure hardening, security testing, and incident-response planning.",{"type":24,"tag":25,"props":861,"children":862},{},[863,865,871],{"type":33,"value":864},"Art+Logic’s secure-development service follows the same approach by incorporating security throughout the software lifecycle and offering code audits, threat modeling, secure DevOps pipelines, compliance-oriented architecture, and security work for AI systems. (",{"type":24,"tag":133,"props":866,"children":869},{"href":867,"rel":868},"https://artandlogic.com/secure-software-development/",[137],[870],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":25,"props":873,"children":874},{},[875],{"type":33,"value":876},"Security isn’t what happens after the product is complete. It’s part of what makes the product complete.",{"type":24,"tag":65,"props":878,"children":880},{"id":879},"testing-determines-what-working-means",[881],{"type":33,"value":882},"Testing determines what “working” means",{"type":24,"tag":25,"props":884,"children":885},{},[886],{"type":33,"value":887},"A prototype usually proves that a desirable outcome can happen, while testing asks what happens in all the other situations.",{"type":24,"tag":25,"props":889,"children":890},{},[891],{"type":33,"value":892},"What if the request is incomplete, the model returns a plausible but incorrect value, or a third-party system is unavailable? What happens if the same submission arrives twice, a user tries to access another organization’s data, or an update changes the model’s behavior?",{"type":24,"tag":25,"props":894,"children":895},{},[896],{"type":33,"value":897},"The team also has to consider partial success. If the application completes the first three steps and fails at the fourth, someone needs to know what changed, what remains incomplete, and whether the process can be resumed safely.",{"type":24,"tag":25,"props":899,"children":900},{},[901],{"type":33,"value":902},"That means testing more than the generated answer. The team needs to test business rules, user permissions, integrations, data transformations, error handling, model outputs, performance, security boundaries, deployment processes, and recovery behavior.",{"type":24,"tag":25,"props":904,"children":905},{},[906],{"type":33,"value":907},"AI can help developers create tests, but it doesn’t get to decide whether those tests adequately represent the business. Someone still needs to identify what must remain true.",{"type":24,"tag":25,"props":909,"children":910},{},[911,913,919],{"type":33,"value":912},"Google’s 2025 DORA guidance similarly emphasizes that AI’s value is amplified by established quality practices such as test-driven development rather than replacing them. (",{"type":24,"tag":133,"props":914,"children":917},{"href":915,"rel":916},"https://cloud.google.com/discover/how-test-driven-development-amplifies-ai-success",[137],[918],{"type":33,"value":677},{"type":33,"value":530},{"type":24,"tag":25,"props":921,"children":922},{},[923,925,930],{"type":33,"value":924},"Art+Logic’s AI-assisted modernization case study provides a practical example. AI was used for repetitive, pattern-based coding, while developers retained responsibility for architecture, review, testing, and validation. That combination allowed the team to move faster without handing control of application behavior to the model. (",{"type":24,"tag":133,"props":926,"children":928},{"href":135,"rel":927},[137],[929],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":65,"props":932,"children":934},{"id":933},"monitoring-tells-you-whether-the-software-is-still-working",[935],{"type":33,"value":936},"Monitoring tells you whether the software is still working",{"type":24,"tag":25,"props":938,"children":939},{},[940],{"type":33,"value":941},"A prototype is observed by the people presenting it, but a production application may operate all day without a developer watching.",{"type":24,"tag":25,"props":943,"children":944},{},[945],{"type":33,"value":946},"The organization needs to know whether the application is available, whether users are completing the workflow, whether integrations are failing, and whether response times are getting worse.",{"type":24,"tag":25,"props":948,"children":949},{},[950],{"type":33,"value":951},"It may also need to monitor whether the model is producing more exceptions, costs are increasing unexpectedly, users are abandoning a particular step, or a recent deployment introduced a regression.",{"type":24,"tag":25,"props":953,"children":954},{},[955],{"type":33,"value":956},"Logs alone aren’t enough. The system needs useful signals tied to both technical operation and business behavior.",{"type":24,"tag":25,"props":958,"children":959},{},[960],{"type":33,"value":961},"A dashboard showing that the server is running doesn’t tell you whether customers can complete the task, just as a model returning responses doesn’t tell you whether employees trust them.",{"type":24,"tag":25,"props":963,"children":964},{},[965],{"type":33,"value":966},"Monitoring should help the organization see the difference between software that is online and software that is producing the intended result.",{"type":24,"tag":65,"props":968,"children":970},{"id":969},"user-workflow-determines-whether-anyone-adopts-it",[971],{"type":33,"value":972},"User workflow determines whether anyone adopts it",{"type":24,"tag":25,"props":974,"children":975},{},[976],{"type":33,"value":977},"A technically capable application can still fail because it doesn’t fit how people work.",{"type":24,"tag":25,"props":979,"children":980},{},[981],{"type":33,"value":982},"The AI may generate a useful recommendation, but the surrounding product still has to decide where that recommendation appears, how the user understands it, whether they can correct it, and how they compare it with the original information.",{"type":24,"tag":25,"props":984,"children":985},{},[986],{"type":33,"value":987},"The software also needs a clear response when the user disagrees. It should save time rather than adding another system to check, and it should make exceptions easier to resolve rather than hiding them behind a conversational interface.",{"type":24,"tag":25,"props":989,"children":990},{},[991],{"type":33,"value":992},"Business adoption depends on the complete experience around the capability. That includes how users begin the task, what information they need to provide, how the software communicates uncertainty, where human judgment remains necessary, and how users recover from mistakes.",{"type":24,"tag":25,"props":994,"children":995},{},[996],{"type":33,"value":997},"This is product and UX design, and it requires observing the workflow, talking with users, and understanding what success looks like from their perspective.",{"type":24,"tag":25,"props":999,"children":1000},{},[1001],{"type":33,"value":1002},"A prototype can demonstrate what the technology can do. A product has to support what the user is trying to accomplish.",{"type":24,"tag":65,"props":1004,"children":1006},{"id":1005},"the-application-needs-someone-to-operate-it",[1007],{"type":33,"value":1008},"The application needs someone to operate it",{"type":24,"tag":25,"props":1010,"children":1011},{},[1012],{"type":33,"value":1013},"Every production system creates ongoing responsibilities.",{"type":24,"tag":25,"props":1015,"children":1016},{},[1017],{"type":33,"value":1018},"Someone has to deploy updates, monitor performance, respond to incidents, patch dependencies, review security findings, manage credentials, support users, evaluate vendor changes, test model upgrades, prioritize improvements, and maintain documentation.",{"type":24,"tag":25,"props":1020,"children":1021},{},[1022],{"type":33,"value":1023},"A project can stall because no one decided who would own those responsibilities. The team concentrated on building the feature, while the operating model was left for later.",{"type":24,"tag":25,"props":1025,"children":1026},{},[1027],{"type":33,"value":1028},"That creates an awkward situation after launch: the application exists, but no team is prepared to support it. Changes become risky, problems remain unresolved, and the people who funded the project begin to lose confidence.",{"type":24,"tag":25,"props":1030,"children":1031},{},[1032],{"type":33,"value":1033},"The deliverable can’t be only a code repository. It has to include a practical path for operating and maintaining the software.",{"type":24,"tag":25,"props":1035,"children":1036},{},[1037,1039,1044],{"type":33,"value":1038},"Art+Logic’s AI-rescue offering explicitly addresses gaps such as missing version control, test coverage, documentation, development processes, and CI/CD pipelines. It also includes architecture assessment, refactoring, performance preparation, and support for real-world integrations and edge cases. (",{"type":24,"tag":133,"props":1040,"children":1042},{"href":524,"rel":1041},[137],[1043],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":65,"props":1046,"children":1048},{"id":1047},"why-technical-completion-and-business-adoption-are-different",[1049],{"type":33,"value":1050},"Why technical completion and business adoption are different",{"type":24,"tag":25,"props":1052,"children":1053},{},[1054],{"type":33,"value":1055},"A development team can complete every item in the original feature list and still produce little business value, because the real problem may be the list itself.",{"type":24,"tag":25,"props":1057,"children":1058},{},[1059],{"type":33,"value":1060},"Perhaps the project measured whether the software could generate a report, while the business needed that report to shorten a decision process.",{"type":24,"tag":25,"props":1062,"children":1063},{},[1064],{"type":33,"value":1065},"Perhaps the project measured whether the agent could update a record, while the business needed fewer errors and less manual reconciliation.",{"type":24,"tag":25,"props":1067,"children":1068},{},[1069],{"type":33,"value":1070},"Perhaps the project measured whether the application could answer a question, while users needed confidence that the answer came from current, approved information.",{"type":24,"tag":25,"props":1072,"children":1073},{},[1074],{"type":33,"value":1075},"Technical completion asks whether the team built the requested capability. Business adoption asks whether that capability improved the way the organization works.",{"type":24,"tag":25,"props":1077,"children":1078},{},[1079],{"type":33,"value":1080},"Those questions should be connected before development begins. Otherwise, the team may optimize for an output no one ultimately values.",{"type":24,"tag":65,"props":1082,"children":1084},{"id":1083},"how-should-a-company-measure-the-result",[1085],{"type":33,"value":1086},"How should a company measure the result?",{"type":24,"tag":25,"props":1088,"children":1089},{},[1090],{"type":33,"value":1091},"The right metric depends on the workflow, but the important thing is to define a baseline before the new software changes it.",{"type":24,"tag":25,"props":1093,"children":1094},{},[1095],{"type":33,"value":1096},"For an operational process, the organization might measure average processing time, the number of manual steps, error or rework rates, cases completed per employee, time spent switching among systems, the percentage of requests requiring escalation, or the time required to resolve exceptions.",{"type":24,"tag":25,"props":1098,"children":1099},{},[1100],{"type":33,"value":1101},"For a customer-facing product, useful measures might include completion rate, time to value, abandonment rate, support requests, customer retention, conversion to a paid service, or adoption of a new capability.",{"type":24,"tag":25,"props":1103,"children":1104},{},[1105],{"type":33,"value":1106},"For an internal development platform, the company might look at lead time for changes, deployment frequency, change failure rate, time required to restore service, or time spent maintaining repetitive processes.",{"type":24,"tag":25,"props":1108,"children":1109},{},[1110,1112,1118],{"type":33,"value":1111},"DORA’s established software-delivery metrics include deployment frequency, lead time for changes, change failure rate, and recovery time. These can help teams assess whether their development and delivery system is becoming faster and more reliable. (",{"type":24,"tag":133,"props":1113,"children":1116},{"href":1114,"rel":1115},"https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance",[137],[1117],{"type":33,"value":677},{"type":33,"value":530},{"type":24,"tag":25,"props":1120,"children":1121},{},[1122],{"type":33,"value":1123},"Technical metrics should still connect to the intended business result. A faster deployment process matters because the organization can respond to customers sooner, while a lower error rate matters because employees spend less time correcting work.",{"type":24,"tag":25,"props":1125,"children":1126},{},[1127],{"type":33,"value":1128},"Higher completion matters because more users receive the value the product was designed to provide.",{"type":24,"tag":25,"props":1130,"children":1131},{},[1132],{"type":33,"value":1133},"The goal isn’t to find one universal software metric. It’s to establish a credible line from the application to an outcome the business cares about.",{"type":24,"tag":65,"props":1135,"children":1137},{"id":1136},"does-an-unfinished-ai-application-need-to-be-rebuilt",[1138],{"type":33,"value":1139},"Does an unfinished AI application need to be rebuilt?",{"type":24,"tag":25,"props":1141,"children":1142},{},[1143],{"type":33,"value":1144},"Not always.",{"type":24,"tag":25,"props":1146,"children":1147},{},[1148],{"type":33,"value":1149},"A struggling project may still contain valuable work, including a validated product idea, useful interface design, working integrations, correct business logic, a usable data model, features customers already depend on, or code that becomes serviceable once it’s reorganized and tested.",{"type":24,"tag":25,"props":1151,"children":1152},{},[1153],{"type":33,"value":1154},"Starting over can discard that value, and it can also recreate the same uncertainty under a new architecture.",{"type":24,"tag":25,"props":1156,"children":1157},{},[1158],{"type":33,"value":1159},"The better first step is an assessment.",{"type":24,"tag":377,"props":1161,"children":1163},{"id":1162},"repair",[1164],{"type":33,"value":1165},"Repair",{"type":24,"tag":25,"props":1167,"children":1168},{},[1169],{"type":33,"value":1170},"Repair may be appropriate when the foundation is mostly sound and the problems are localized. The team may need to fix defects, add missing tests, secure an integration, improve performance, or complete an unfinished workflow.",{"type":24,"tag":377,"props":1172,"children":1174},{"id":1173},"refactor",[1175],{"type":33,"value":1176},"Refactor",{"type":24,"tag":25,"props":1178,"children":1179},{},[1180],{"type":33,"value":1181},"Refactoring may be appropriate when the software works but has become difficult to maintain. Developers can reorganize fragile code, introduce clearer boundaries, reduce duplication, add tests, and improve documentation without changing the product’s core behavior.",{"type":24,"tag":377,"props":1183,"children":1185},{"id":1184},"rearchitect",[1186],{"type":33,"value":1187},"Rearchitect",{"type":24,"tag":25,"props":1189,"children":1190},{},[1191],{"type":33,"value":1192},"Rearchitecture may be necessary when structural decisions prevent the application from meeting production needs. The system may have tightly coupled components, unsuitable data boundaries, weak authorization, or an infrastructure design that can’t support expected usage.",{"type":24,"tag":25,"props":1194,"children":1195},{},[1196],{"type":33,"value":1197},"The goal isn’t necessarily to replace the entire product. It’s to change the parts of the structure that are creating the risk.",{"type":24,"tag":377,"props":1199,"children":1201},{"id":1200},"rebuild-selected-components",[1202],{"type":33,"value":1203},"Rebuild selected components",{"type":24,"tag":25,"props":1205,"children":1206},{},[1207],{"type":33,"value":1208},"Some portions may be safer to replace. A generated authentication layer, an unreliable data pipeline, or a fundamentally unsuitable integration may not be worth preserving, but that doesn’t require discarding everything else.",{"type":24,"tag":377,"props":1210,"children":1212},{"id":1211},"rebuild-the-product",[1213],{"type":33,"value":1214},"Rebuild the product",{"type":24,"tag":25,"props":1216,"children":1217},{},[1218],{"type":33,"value":1219},"A full rebuild may be justified when the current code provides little reusable value, the architecture is fundamentally incompatible with the product’s needs, or repairing it would cost more than creating a better foundation.",{"type":24,"tag":25,"props":1221,"children":1222},{},[1223],{"type":33,"value":1224},"That decision should be based on evidence, not embarrassment about how the first version was built.",{"type":24,"tag":25,"props":1226,"children":1227},{},[1228,1230,1235],{"type":33,"value":1229},"Art+Logic’s rescue positioning reflects that approach: AI-generated code can be a head start, and teams may be able to avoid a complete rewrite by auditing the architecture, stabilizing the application, and improving the areas that prevent it from launching or scaling successfully. (",{"type":24,"tag":133,"props":1231,"children":1233},{"href":524,"rel":1232},[137],[1234],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":65,"props":1237,"children":1239},{"id":1238},"why-are-experienced-software-developers-still-necessary",[1240],{"type":33,"value":1241},"Why are experienced software developers still necessary?",{"type":24,"tag":25,"props":1243,"children":1244},{},[1245],{"type":33,"value":1246},"AI can produce code, but software engineering was never only about producing code.",{"type":24,"tag":25,"props":1248,"children":1249},{},[1250],{"type":33,"value":1251},"Developers are needed to translate business needs into a system that behaves predictably under real constraints. They decide how the components fit together, where business rules should live, which data can be trusted, how users and systems authenticate, and what each role is allowed to do.",{"type":24,"tag":25,"props":1253,"children":1254},{},[1255],{"type":33,"value":1256},"They also determine how failures are contained, how changes are tested, how the system is deployed, how behavior is monitored, and how future developers will understand it.",{"type":24,"tag":25,"props":1258,"children":1259},{},[1260],{"type":33,"value":1261},"Those decisions become more important as implementation becomes faster.",{"type":24,"tag":25,"props":1263,"children":1264},{},[1265,1267,1273],{"type":33,"value":1266},"Art+Logic has described the shift directly: AI makes code generation, iteration, and prototyping cheaper, but complexity moves into architecture, system design, integration, risk management, and maintainability. (",{"type":24,"tag":133,"props":1268,"children":1271},{"href":1269,"rel":1270},"https://artandlogic.com/newsletters/do-companies-still-need-software-engineers/",[137],[1272],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":25,"props":1275,"children":1276},{},[1277],{"type":33,"value":1278},"The developer’s role isn’t to compete with the model at generating boilerplate. It’s to make sure the resulting software serves the organization.",{"type":24,"tag":65,"props":1280,"children":1282},{"id":1281},"where-artlogic-fits",[1283],{"type":33,"value":1284},"Where Art+Logic fits",{"type":24,"tag":25,"props":1286,"children":1287},{},[1288,1290,1296],{"type":33,"value":1289},"Art+Logic develops custom AI applications, modernizes legacy software, and helps recover AI-assisted or traditional software projects that have stalled, broken, or failed to reach production readiness. (",{"type":24,"tag":133,"props":1291,"children":1294},{"href":1292,"rel":1293},"https://artandlogic.com/",[137],[1295],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":25,"props":1298,"children":1299},{},[1300],{"type":33,"value":1301},"That work can begin with a promising prototype. The application may already demonstrate the core idea, users may already see value in it, and the project may simply lack the engineering foundation needed to move forward confidently.",{"type":24,"tag":25,"props":1303,"children":1304},{},[1305],{"type":33,"value":1306},"Art+Logic can assess the current software and help determine what is worth preserving, which risks need immediate attention, whether the architecture supports the product’s goals, and which workflows remain incomplete.",{"type":24,"tag":25,"props":1308,"children":1309},{},[1310],{"type":33,"value":1311},"The assessment can also identify missing security controls, integrations that need to be redesigned, the testing and monitoring required for production, and whether the system should be repaired, refactored, rearchitected, or selectively rebuilt.",{"type":24,"tag":25,"props":1313,"children":1314},{},[1315],{"type":33,"value":1316},"The goal isn’t to replace AI-assisted development with a slower process. It’s to use AI where it helps while applying experienced engineering where the business needs judgment, accountability, and control.",{"type":24,"tag":25,"props":1318,"children":1319},{},[1320,1322,1327],{"type":33,"value":1321},"Art+Logic used that combination in its AI-assisted modernization work: AI accelerated suitable implementation tasks, while developers directed the architecture, reviewed the generated code, tested behavior, and improved the product beyond a mechanical migration. (",{"type":24,"tag":133,"props":1323,"children":1325},{"href":135,"rel":1324},[137],[1326],{"type":33,"value":528},{"type":33,"value":530},{"type":24,"tag":25,"props":1329,"children":1330},{},[1331],{"type":33,"value":1332},"AI can help create the start, while developers build the system that has to last.",{"type":24,"tag":65,"props":1334,"children":1336},{"id":1335},"working-code-is-not-the-business-result",[1337],{"type":33,"value":1338},"Working code is not the business result",{"type":24,"tag":25,"props":1340,"children":1341},{},[1342],{"type":33,"value":1343},"A prototype can be an important achievement because it can prove that an idea deserves investment, help a team learn quickly, and make a previously abstract possibility feel real.",{"type":24,"tag":25,"props":1345,"children":1346},{},[1347],{"type":33,"value":1348},"However, the prototype isn’t valuable simply because it runs. Its value comes from what it may allow the organization to do next.",{"type":24,"tag":25,"props":1350,"children":1351},{},[1352],{"type":33,"value":1353},"That could mean serving customers faster, reducing errors, giving employees better information, creating a new source of revenue, automating a process that has become difficult to scale, or delivering a service that wasn’t possible before.",{"type":24,"tag":25,"props":1355,"children":1356},{},[1357],{"type":33,"value":1358},"Those outcomes don’t come from code alone. They come from software that fits the workflow, survives real-world use, protects the organization, and can continue changing after the demonstration is over.",{"type":24,"tag":25,"props":1360,"children":1361},{},[1362],{"type":33,"value":1363},"AI has made the first working version easier to reach, which is good news because more organizations can now test ideas that once would have been too expensive or slow to explore.",{"type":24,"tag":25,"props":1365,"children":1366},{},[1367],{"type":33,"value":1368},"The most important part of the project still begins with the question the prototype can’t answer on its own:",{"type":24,"tag":25,"props":1370,"children":1371},{},[1372],{"type":24,"tag":29,"props":1373,"children":1374},{},[1375],{"type":33,"value":1376},"Can we turn this into something the business can depend on?",{"type":24,"tag":65,"props":1378,"children":1379},{"id":372},[1380],{"type":33,"value":375},{"type":24,"tag":377,"props":1382,"children":1384},{"id":1383},"what-is-the-difference-between-a-software-prototype-and-a-product",[1385],{"type":33,"value":1386},"What is the difference between a software prototype and a product?",{"type":24,"tag":25,"props":1388,"children":1389},{},[1390],{"type":33,"value":1391},"A prototype demonstrates that an idea or capability may work, while a production product must support real users, data, permissions, integrations, security requirements, failures, updates, and ongoing operations. The product has to remain dependable outside the controlled conditions of the demonstration.",{"type":24,"tag":377,"props":1393,"children":1395},{"id":1394},"why-do-ai-generated-applications-fail-in-production",[1396],{"type":33,"value":1397},"Why do AI-generated applications fail in production?",{"type":24,"tag":25,"props":1399,"children":1400},{},[1401],{"type":33,"value":1402},"Common reasons include weak architecture, missing tests, insecure data handling, incomplete integrations, unclear permissions, limited monitoring, poor exception handling, and workflows that don’t fit how people actually work. The model may perform well while the surrounding application remains incomplete.",{"type":24,"tag":377,"props":1404,"children":1406},{"id":1405},"what-does-production-ready-software-require",[1407],{"type":33,"value":1408},"What does production-ready software require?",{"type":24,"tag":25,"props":1410,"children":1411},{},[1412],{"type":33,"value":1413},"Production-ready software generally requires suitable architecture, secure authentication and authorization, reliable integrations, automated testing, monitoring, deployment processes, failure recovery, user support, documentation, and a plan for ongoing maintenance.",{"type":24,"tag":377,"props":1415,"children":1417},{"id":1416},"can-an-ai-built-application-be-rescued",[1418],{"type":33,"value":1419},"Can an AI-built application be rescued?",{"type":24,"tag":25,"props":1421,"children":1422},{},[1423],{"type":33,"value":1424},"Often, yes. A development team can assess the current architecture, code, data, integrations, security, and tests to determine what can be preserved. The right approach may be to repair, refactor, rearchitect, or replace selected components rather than rebuild the entire application.",{"type":24,"tag":377,"props":1426,"children":1428},{"id":1427},"how-do-you-move-an-ai-prototype-into-production",[1429],{"type":33,"value":1430},"How do you move an AI prototype into production?",{"type":24,"tag":25,"props":1432,"children":1433},{},[1434],{"type":33,"value":1435},"Begin by defining the business workflow and success metrics, then assess the architecture, data, integrations, permissions, security, testing, monitoring, deployment, and support requirements. Address the highest-risk gaps before gradually introducing the application to real users.",{"type":24,"tag":377,"props":1437,"children":1439},{"id":1438},"should-a-prototype-be-designed-to-scale",[1440],{"type":33,"value":1441},"Should a prototype be designed to scale?",{"type":24,"tag":25,"props":1443,"children":1444},{},[1445],{"type":33,"value":1446},"A prototype doesn’t need every capability of the final product, but teams should understand which decisions are temporary and which may constrain future development. A prototype expected to evolve into production needs a clearer path for security, data, architecture, testing, and operations than one intended only to test an idea.",{"type":24,"tag":377,"props":1448,"children":1450},{"id":1449},"how-should-a-business-measure-software-success",[1451],{"type":33,"value":1452},"How should a business measure software success?",{"type":24,"tag":25,"props":1454,"children":1455},{},[1456],{"type":33,"value":1457},"Choose metrics tied to the intended result. These may include processing time, error rates, completion rates, manual steps eliminated, staff capacity, customer adoption, support volume, revenue enabled, deployment speed, or service reliability. Establish the baseline before implementation.",{"type":24,"tag":377,"props":1459,"children":1461},{"id":1460},"why-are-software-developers-needed-when-ai-can-generate-code",[1462],{"type":33,"value":1463},"Why are software developers needed when AI can generate code?",{"type":24,"tag":25,"props":1465,"children":1466},{},[1467],{"type":33,"value":1468},"Developers do more than write code. They interpret business requirements, design architecture, connect systems, enforce permissions, manage security, test behavior, handle failures, support users, and create software that can be maintained as the organization changes.",{"type":24,"tag":377,"props":1470,"children":1472},{"id":1471},"does-every-failed-prototype-need-to-be-rebuilt",[1473],{"type":33,"value":1474},"Does every failed prototype need to be rebuilt?",{"type":24,"tag":25,"props":1476,"children":1477},{},[1478],{"type":33,"value":1479},"No. A prototype may contain valuable code, workflows, integrations, or validated product decisions. An architecture and code assessment can determine whether it should be stabilized, refactored, rearchitected, selectively rebuilt, or replaced.",{"title":8,"searchDepth":433,"depth":433,"links":1481},[1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1503,1504,1505,1506],{"id":503,"depth":433,"text":506},{"id":538,"depth":433,"text":541},{"id":584,"depth":433,"text":587},{"id":642,"depth":433,"text":645},{"id":696,"depth":433,"text":699},{"id":732,"depth":433,"text":735},{"id":779,"depth":433,"text":782},{"id":815,"depth":433,"text":818},{"id":879,"depth":433,"text":882},{"id":933,"depth":433,"text":936},{"id":969,"depth":433,"text":972},{"id":1005,"depth":433,"text":1008},{"id":1047,"depth":433,"text":1050},{"id":1083,"depth":433,"text":1086},{"id":1136,"depth":433,"text":1139,"children":1497},[1498,1499,1500,1501,1502],{"id":1162,"depth":446,"text":1165},{"id":1173,"depth":446,"text":1176},{"id":1184,"depth":446,"text":1187},{"id":1200,"depth":446,"text":1203},{"id":1211,"depth":446,"text":1214},{"id":1238,"depth":433,"text":1241},{"id":1281,"depth":433,"text":1284},{"id":1335,"depth":433,"text":1338},{"id":372,"depth":433,"text":375,"children":1507},[1508,1509,1510,1511,1512,1513,1514,1515,1516],{"id":1383,"depth":446,"text":1386},{"id":1394,"depth":446,"text":1397},{"id":1405,"depth":446,"text":1408},{"id":1416,"depth":446,"text":1419},{"id":1427,"depth":446,"text":1430},{"id":1438,"depth":446,"text":1441},{"id":1449,"depth":446,"text":1452},{"id":1460,"depth":446,"text":1463},{"id":1471,"depth":446,"text":1474},"content:cperez:2026-08-11:ai-prototype-to-production-business-results.md","cperez/2026-08-11/ai-prototype-to-production-business-results.md","cperez/2026-08-11/ai-prototype-to-production-business-results",1787245444777]