[{"data":1,"prerenderedAt":1572},["ShallowReactive",2],{"article_list_legacy modernization_":3},[4,695,1305],{"_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":18,"_type":689,"_id":690,"_source":691,"_file":692,"_stem":693,"_extension":694},"/cperez/2026-07-02/hidden-costs-of-legacy-software","2026-07-02",false,"","What Are the Hidden Costs of Legacy Software?","Legacy software is rarely “bad” software.","/cperez/2026-07-02/img/hidden-costs-of-legacy-software.jpg",{"name":13,"user":14},"Carlos Perez","cperez",[16,17],"legacy modernization","legacy software",{"type":19,"children":20,"toc":666},"root",[21,28,44,49,54,59,66,71,76,81,93,98,104,109,121,126,131,137,142,147,152,164,169,175,180,185,190,195,206,211,217,222,227,238,243,248,254,259,271,276,281,286,292,297,302,313,318,324,329,334,339,344,355,360,366,371,382,387,398,403,409,414,419,424,436,441,477,482,488,493,498,541,546,551,557,562,573,584,589,594,599,604,610,617,622,628,633,639,644,650,655,661],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26],{"type":27,"value":10},"text",{"type":22,"tag":23,"props":29,"children":30},{},[31,33,42],{"type":27,"value":32},"In many cases, it is the opposite. It is the system that helped a company grow, supported years of operations, encoded hard-won business rules, and kept critical workflows moving long after newer tools came and went. That is why legacy systems tend to survive: they are doing something important. They contain operational knowledge, customer workflows, integrations, reports, permissions, exceptions, and decisions that may not be documented anywhere else. (",{"type":22,"tag":34,"props":35,"children":39},"a",{"href":36,"rel":37},"https://artandlogic.com/newsletters/what-modernizing-legacy-systems-actually-means-in-practice/",[38],"nofollow",[40],{"type":27,"value":41},"Art+Logic",{"type":27,"value":43},")",{"type":22,"tag":23,"props":45,"children":46},{},[47],{"type":27,"value":48},"But that usefulness can make the true cost harder to see.",{"type":22,"tag":23,"props":50,"children":51},{},[52],{"type":27,"value":53},"The visible costs of legacy software are easy to identify: hosting, licensing, support contracts, maintenance tickets, and the occasional emergency fix. The hidden costs are more dangerous because they compound quietly. They show up as slower releases, fragile integrations, frustrated employees, compliance headaches, customer experience gaps, and opportunities the business cannot pursue because the software cannot support them.",{"type":22,"tag":23,"props":55,"children":56},{},[57],{"type":27,"value":58},"The real question is not, “Is this system old?” It is: “What is this system preventing us from doing?”",{"type":22,"tag":60,"props":61,"children":63},"h3",{"id":62},"legacy-software-creates-a-velocity-tax",[64],{"type":27,"value":65},"Legacy Software Creates a Velocity Tax",{"type":22,"tag":23,"props":67,"children":68},{},[69],{"type":27,"value":70},"One of the most common hidden costs of legacy software is speed.",{"type":22,"tag":23,"props":72,"children":73},{},[74],{"type":27,"value":75},"A healthy software system lets teams make small, confident changes. A legacy system often does the opposite. A minor update turns into a multi-week effort because no one knows what else it might break. QA takes longer than development. Releases require manual checklists. Engineers avoid touching certain parts of the codebase because those areas are too risky, too tangled, or too poorly understood.",{"type":22,"tag":23,"props":77,"children":78},{},[79],{"type":27,"value":80},"That is the velocity tax: every feature, fix, and improvement costs more than it should.",{"type":22,"tag":23,"props":82,"children":83},{},[84,86,92],{"type":27,"value":85},"One of the clearest signs that a legacy system is holding a business back is when small code changes take days to deploy, or QA cycles stretch longer than the development work itself; the system is no longer just a technical concern. It is costing the business time and money. (",{"type":22,"tag":34,"props":87,"children":90},{"href":88,"rel":89},"https://artandlogic.com/newsletters/is-your-legacy-system-holding-you-back/",[38],[91],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":94,"children":95},{},[96],{"type":27,"value":97},"This tax is easy to normalize. Teams get used to slow releases. Product managers stop asking for certain improvements. Leadership assumes the roadmap is naturally difficult. But underneath that new normal is a software system quietly setting the pace of the business.",{"type":22,"tag":60,"props":99,"children":101},{"id":100},"maintenance-starts-replacing-momentum",[102],{"type":27,"value":103},"Maintenance Starts Replacing Momentum",{"type":22,"tag":23,"props":105,"children":106},{},[107],{"type":27,"value":108},"Legacy software also shifts engineering energy away from value creation.",{"type":22,"tag":23,"props":110,"children":111},{},[112,114,120],{"type":27,"value":113},"Instead of building new capabilities, teams spend more time patching brittle code, resolving regressions, investigating production issues, and maintaining workarounds. Refactoring older code rarely looks exciting on a roadmap, but it can be one of the highest-ROI investments a software-driven organization makes because old code does not only slow engineers down; it taxes the whole business. (",{"type":22,"tag":34,"props":115,"children":118},{"href":116,"rel":117},"https://artandlogic.com/newsletters/the-true-roi-of-refactoring-old-code/",[38],[119],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":122,"children":123},{},[124],{"type":27,"value":125},"The hidden cost is not just the maintenance work itself. It is what the team is not doing while maintenance consumes their attention. They are not improving onboarding. They are not building customer-requested features. They are not experimenting with new revenue streams. They are not improving reliability, analytics, accessibility, or automation.",{"type":22,"tag":23,"props":127,"children":128},{},[129],{"type":27,"value":130},"Over time, the gap between “what the business needs” and “what the system can support” gets wider. Eventually, even reasonable product ideas start to feel expensive.",{"type":22,"tag":60,"props":132,"children":134},{"id":133},"operational-risk-increases-quietly",[135],{"type":27,"value":136},"Operational Risk Increases Quietly",{"type":22,"tag":23,"props":138,"children":139},{},[140],{"type":27,"value":141},"Legacy systems often fail in subtle ways before they fail dramatically.",{"type":22,"tag":23,"props":143,"children":144},{},[145],{"type":27,"value":146},"Performance slows under load. Nightly jobs require manual babysitting. Integrations break when a vendor updates an API. Reports generate inconsistent results. A process works only because one person knows the workaround. A critical server, library, or framework is no longer actively supported.",{"type":22,"tag":23,"props":148,"children":149},{},[150],{"type":27,"value":151},"These issues may not stop the business immediately, but they raise the cost of operating it.",{"type":22,"tag":23,"props":153,"children":154},{},[155,157,163],{"type":27,"value":156},"We’ve got a brief video on legacy systems that calls out several of these hidden costs directly: slow performance, constant workarounds, security vulnerabilities from outdated technology, inability to scale or support new features, integration headaches, and employee time lost to systems that no longer fit the business. Sometimes the system breaks; other times it works “just barely,” but at a high cost. (",{"type":22,"tag":34,"props":158,"children":161},{"href":159,"rel":160},"https://artandlogic.com/videos/legacy-systems-what-to-fix-what-to-keep/",[38],[162],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":165,"children":166},{},[167],{"type":27,"value":168},"That “just barely” state is risky. It can make teams overly dependent on institutional memory, manual intervention, and luck. The longer that continues, the harder it becomes to predict where the next failure will come from.",{"type":22,"tag":60,"props":170,"children":172},{"id":171},"integration-problems-limit-growth",[173],{"type":27,"value":174},"Integration Problems Limit Growth",{"type":22,"tag":23,"props":176,"children":177},{},[178],{"type":27,"value":179},"Modern businesses rarely run on one system. They depend on a network of tools: CRMs, ERPs, payment platforms, analytics systems, data warehouses, mobile apps, customer portals, AI tools, marketing automation, and third-party APIs.",{"type":22,"tag":23,"props":181,"children":182},{},[183],{"type":27,"value":184},"Legacy software can become the weak link in that ecosystem.",{"type":22,"tag":23,"props":186,"children":187},{},[188],{"type":27,"value":189},"Older systems may not expose clean APIs. Data may live in formats that are difficult to access. Authentication patterns may not meet modern expectations. Integrations may rely on fragile scripts, manual exports, or custom bridges that only one or two people understand.",{"type":22,"tag":23,"props":191,"children":192},{},[193],{"type":27,"value":194},"That creates a hidden cost every time the business wants to adopt a new tool or connect existing systems in a better way.",{"type":22,"tag":23,"props":196,"children":197},{},[198,200,205],{"type":27,"value":199},"Art+Logic identifies integration pain as a major modernization signal: legacy systems often do not play well with newer APIs, tools, or platforms, which makes scaling or even staying current harder than it should be. (",{"type":22,"tag":34,"props":201,"children":203},{"href":88,"rel":202},[38],[204],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":207,"children":208},{},[209],{"type":27,"value":210},"The business impact can be significant. A company may want better reporting, self-service customer workflows, AI-assisted operations, or smoother internal automation, but the legacy system keeps every initiative dependent on custom glue code.",{"type":22,"tag":60,"props":212,"children":214},{"id":213},"compliance-and-security-become-harder-to-manage",[215],{"type":27,"value":216},"Compliance and Security Become Harder to Manage",{"type":22,"tag":23,"props":218,"children":219},{},[220],{"type":27,"value":221},"Compliance is not static. Security expectations change. Privacy requirements evolve. Audit standards become more demanding. Vendors stop supporting old dependencies. Attack surfaces expand as systems get connected in new ways.",{"type":22,"tag":23,"props":223,"children":224},{},[225],{"type":27,"value":226},"A legacy system makes all of that harder.",{"type":22,"tag":23,"props":228,"children":229},{},[230,232,237],{"type":27,"value":231},"In regulated industries, outdated systems can make compliance updates risky and audits expensive. We see that industries such as finance, healthcare, and insurance face evolving compliance rules, and outdated systems make those updates more difficult to manage. (",{"type":22,"tag":34,"props":233,"children":235},{"href":88,"rel":234},[38],[236],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":239,"children":240},{},[241],{"type":27,"value":242},"Security risk is similar. A system may still function, but if it depends on unsupported libraries, outdated frameworks, aging infrastructure, or unclear access controls, the business may be carrying risk it cannot easily measure.",{"type":22,"tag":23,"props":244,"children":245},{},[246],{"type":27,"value":247},"The hidden cost is not just the cost of fixing a vulnerability. It is the cost of uncertainty: not knowing whether the system can pass an audit, withstand scrutiny, or adapt quickly when requirements change.",{"type":22,"tag":60,"props":249,"children":251},{"id":250},"technical-debt-spills-into-product-design-process-and-culture",[252],{"type":27,"value":253},"Technical Debt Spills Into Product, Design, Process, and Culture",{"type":22,"tag":23,"props":255,"children":256},{},[257],{"type":27,"value":258},"Technical debt is often treated as an engineering problem, but it rarely stays confined to the codebase.",{"type":22,"tag":23,"props":260,"children":261},{},[262,264,270],{"type":27,"value":263},"Art+Logic frames debt more broadly: it can accumulate in product decisions, design patterns, development processes, and company culture. Product debt shows up as feature bloat or unvalidated assumptions. Design debt appears in inconsistent workflows and confusing interfaces. Process debt builds when teams skip documentation, testing, or clear specs. Cultural debt emerges when organizations consistently reward speed over sustainability. (",{"type":22,"tag":34,"props":265,"children":268},{"href":266,"rel":267},"https://artandlogic.com/newsletters/tech-debt-isnt-just-technical/",[38],[269],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":272,"children":273},{},[274],{"type":27,"value":275},"Legacy software tends to amplify all of these.",{"type":22,"tag":23,"props":277,"children":278},{},[279],{"type":27,"value":280},"A confusing internal tool leads to more training and support. A fragmented customer experience erodes trust. A weak release process creates firefighting. A culture of “just patch it” trains people to accept instability as normal.",{"type":22,"tag":23,"props":282,"children":283},{},[284],{"type":27,"value":285},"The hidden cost is not just technical complexity. It is organizational drag.",{"type":22,"tag":60,"props":287,"children":289},{"id":288},"talent-gets-harder-to-hire-keep-and-ramp-up",[290],{"type":27,"value":291},"Talent Gets Harder to Hire, Keep, and Ramp Up",{"type":22,"tag":23,"props":293,"children":294},{},[295],{"type":27,"value":296},"Developers generally understand that every production system has a history, and they do not expect perfection. But there is a difference between a mature system and a hostile one.",{"type":22,"tag":23,"props":298,"children":299},{},[300],{"type":27,"value":301},"When a codebase is difficult to understand, painful to test, risky to deploy, or built on technologies few people want to work with, hiring becomes harder, and retention can suffer. New team members take longer to become productive. Senior engineers spend more time explaining landmines than improving architecture.",{"type":22,"tag":23,"props":303,"children":304},{},[305,307,312],{"type":27,"value":306},"Art+Logic calls talent friction a modernization warning sign: skilled developers want to work on modern systems, and a dated stack can limit the hiring pool while increasing churn risk. (",{"type":22,"tag":34,"props":308,"children":310},{"href":88,"rel":309},[38],[311],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":314,"children":315},{},[316],{"type":27,"value":317},"This is one of the most underestimated legacy costs. It does not always appear as a line item called “legacy software expense.” It appears as longer onboarding, lower morale, slower delivery, and valuable engineers spending their creativity on survival instead of progress.",{"type":22,"tag":60,"props":319,"children":321},{"id":320},"customer-experience-starts-falling-behind",[322],{"type":27,"value":323},"Customer Experience Starts Falling Behind",{"type":22,"tag":23,"props":325,"children":326},{},[327],{"type":27,"value":328},"Legacy systems often expose their age through the customer experience.",{"type":22,"tag":23,"props":330,"children":331},{},[332],{"type":27,"value":333},"Maybe the interface feels dated. Maybe workflows require unnecessary steps. Maybe performance is inconsistent. Maybe customers cannot self-serve because the system was never designed for that. Maybe competitors are shipping better digital experiences faster because their architecture makes change easier.",{"type":22,"tag":23,"props":335,"children":336},{},[337],{"type":27,"value":338},"This is where legacy software becomes a strategic constraint.",{"type":22,"tag":23,"props":340,"children":341},{},[342],{"type":27,"value":343},"The problem is not that the system is old. The problem is that it limits the company’s ability to meet current expectations.",{"type":22,"tag":23,"props":345,"children":346},{},[347,349,354],{"type":27,"value":348},"A system built for one stage of the business may not support the next one. To put it plainly, the systems built when a company was scrappy will not necessarily support the company it is becoming. (",{"type":22,"tag":34,"props":350,"children":352},{"href":88,"rel":351},[38],[353],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":356,"children":357},{},[358],{"type":27,"value":359},"That gap can affect retention, sales, support costs, and brand trust. Customers may not know or care what technology powers the experience. They just feel the friction.",{"type":22,"tag":60,"props":361,"children":363},{"id":362},"full-rewrites-can-become-their-own-hidden-cost",[364],{"type":27,"value":365},"Full Rewrites Can Become Their Own Hidden Cost",{"type":22,"tag":23,"props":367,"children":368},{},[369],{"type":27,"value":370},"When legacy pain becomes severe, the instinct is often to start over.",{"type":22,"tag":23,"props":372,"children":373},{},[374,376,381],{"type":27,"value":375},"A full rewrite is appealing because it promises a clean architecture, a modern stack, and freedom from years of accumulated compromises. But rewrites often underestimate how much business knowledge is embedded in the existing system. As teams rebuild, they discover undocumented workflows, edge cases, reporting needs, and integrations that were not included in the original plan. Costs rise, timelines stretch, and confidence erodes. (",{"type":22,"tag":34,"props":377,"children":379},{"href":36,"rel":378},[38],[380],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":383,"children":384},{},[385],{"type":27,"value":386},"That does not mean replacement is never the right call. Sometimes it is.",{"type":22,"tag":23,"props":388,"children":389},{},[390,392,397],{"type":27,"value":391},"But modernization should start with understanding, not demolition. The first step is rarely writing new code. It is figuring out what the current system actually does, what business value it preserves, which parts are still useful, and which parts are creating drag. (",{"type":22,"tag":34,"props":393,"children":395},{"href":36,"rel":394},[38],[396],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":399,"children":400},{},[401],{"type":27,"value":402},"A legacy system is not one thing. It is a collection of assets, risks, dependencies, and assumptions. Some parts should be refactored. Some should be rebuilt. Some should be retired. Some may be worth keeping exactly as they are.",{"type":22,"tag":60,"props":404,"children":406},{"id":405},"modernization-does-not-have-to-mean-disruption",[407],{"type":27,"value":408},"Modernization Does Not Have to Mean Disruption",{"type":22,"tag":23,"props":410,"children":411},{},[412],{"type":27,"value":413},"One reason companies delay modernization is fear.",{"type":22,"tag":23,"props":415,"children":416},{},[417],{"type":27,"value":418},"They worry that updating a legacy system will interrupt operations, overwhelm internal teams, frustrate customers, or turn into an open-ended rebuild. That fear is understandable. Many legacy systems support critical workflows, and a careless modernization effort can create real disruption.",{"type":22,"tag":23,"props":420,"children":421},{},[422],{"type":27,"value":423},"But the alternative is not “do nothing.”",{"type":22,"tag":23,"props":425,"children":426},{},[427,429,435],{"type":27,"value":428},"At Art+Logic, we emphasize incremental modernization: progress can happen one piece at a time, lowering risk, preserving continuity, and giving teams room to adapt as systems evolve. (",{"type":22,"tag":34,"props":430,"children":433},{"href":431,"rel":432},"https://artandlogic.com/newsletters/legacy-software-modernization-transforming-without-disruption/",[38],[434],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":437,"children":438},{},[439],{"type":27,"value":440},"Practical approaches include:",{"type":22,"tag":442,"props":443,"children":444},"ul",{},[445,451,456,461,466],{"type":22,"tag":446,"props":447,"children":448},"li",{},[449],{"type":27,"value":450},"Decoupling high-friction modules instead of demolishing the entire system.",{"type":22,"tag":446,"props":452,"children":453},{},[454],{"type":27,"value":455},"Running old and new systems in parallel while production workloads shift gradually.",{"type":22,"tag":446,"props":457,"children":458},{},[459],{"type":27,"value":460},"Using short-term patching alongside long-term planning when immediate fixes are unavoidable.",{"type":22,"tag":446,"props":462,"children":463},{},[464],{"type":27,"value":465},"Mothballing defunct systems that no longer serve the business.",{"type":22,"tag":446,"props":467,"children":468},{},[469,471,476],{"type":27,"value":470},"Creating shared infrastructure when old and new systems need to coexist for a period of time. (",{"type":22,"tag":34,"props":472,"children":474},{"href":159,"rel":473},[38],[475],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":478,"children":479},{},[480],{"type":27,"value":481},"The best modernization work protects what matters while removing what slows the business down.",{"type":22,"tag":60,"props":483,"children":485},{"id":484},"how-to-start-quantifying-the-hidden-costs",[486],{"type":27,"value":487},"How to Start Quantifying the Hidden Costs",{"type":22,"tag":23,"props":489,"children":490},{},[491],{"type":27,"value":492},"You do not need a perfect model to start making better decisions. You need visibility.",{"type":22,"tag":23,"props":494,"children":495},{},[496],{"type":27,"value":497},"Begin by looking for places where the system is already costing the business more than it should:",{"type":22,"tag":442,"props":499,"children":500},{},[501,506,511,516,521,526,531,536],{"type":22,"tag":446,"props":502,"children":503},{},[504],{"type":27,"value":505},"How long does it take to ship a small change?",{"type":22,"tag":446,"props":507,"children":508},{},[509],{"type":27,"value":510},"How much engineering time goes to maintenance, incidents, and rework?",{"type":22,"tag":446,"props":512,"children":513},{},[514],{"type":27,"value":515},"Which features have been delayed because the architecture cannot support them?",{"type":22,"tag":446,"props":517,"children":518},{},[519],{"type":27,"value":520},"Which workflows depend on manual intervention or undocumented knowledge?",{"type":22,"tag":446,"props":522,"children":523},{},[524],{"type":27,"value":525},"Where do integrations break most often?",{"type":22,"tag":446,"props":527,"children":528},{},[529],{"type":27,"value":530},"How long does it take new engineers to become productive?",{"type":22,"tag":446,"props":532,"children":533},{},[534],{"type":27,"value":535},"Which compliance, security, or audit needs are painful to address?",{"type":22,"tag":446,"props":537,"children":538},{},[539],{"type":27,"value":540},"Where are customers or internal users creating workarounds?",{"type":22,"tag":23,"props":542,"children":543},{},[544],{"type":27,"value":545},"This exercise often reveals that the cost of legacy software is not a single dramatic failure. It is a pattern of small penalties paid every week.",{"type":22,"tag":23,"props":547,"children":548},{},[549],{"type":27,"value":550},"Once those costs are visible, the modernization conversation changes. Instead of debating whether the system is “old,” teams can prioritize the areas where change will create the most business value.",{"type":22,"tag":60,"props":552,"children":554},{"id":553},"the-goal-is-not-new-software-it-is-future-optionality",[555],{"type":27,"value":556},"The Goal Is Not New Software. It Is Future Optionality.",{"type":22,"tag":23,"props":558,"children":559},{},[560],{"type":27,"value":561},"Modernization is not about replacing the past for its own sake.",{"type":22,"tag":23,"props":563,"children":564},{},[565,567,572],{"type":27,"value":566},"It is about creating a foundation that can support what comes next. That might mean faster releases, better reliability, improved compliance, stronger integrations, AI readiness, better customer experiences, or new revenue opportunities. We describe successful modernization as controlled evolution: preserving operational stability while removing the constraints that keep the business from adapting. (",{"type":22,"tag":34,"props":568,"children":570},{"href":36,"rel":569},[38],[571],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":574,"children":575},{},[576,578,583],{"type":27,"value":577},"Refactoring fits the same pattern. Done well, it is not polishing code for aesthetic reasons. It improves modularity, removes brittle dependencies, clarifies intent, makes systems easier to test, and helps teams move with confidence. The ROI shows up in faster time-to-market, lower long-term costs, better scalability, improved reliability and security, and happier, more effective teams. (",{"type":22,"tag":34,"props":579,"children":581},{"href":116,"rel":580},[38],[582],{"type":27,"value":41},{"type":27,"value":43},{"type":22,"tag":23,"props":585,"children":586},{},[587],{"type":27,"value":588},"Legacy software becomes expensive when it limits choice.",{"type":22,"tag":23,"props":590,"children":591},{},[592],{"type":27,"value":593},"The sooner you understand where those limits are, the more options you have. You can refactor instead of rewrite. Replace one workflow instead of the whole platform. Stabilize risky areas before they fail. Preserve valuable business logic while modernizing the architecture around it.",{"type":22,"tag":23,"props":595,"children":596},{},[597],{"type":27,"value":598},"The hidden costs of legacy software are real. But they are not inevitable.",{"type":22,"tag":23,"props":600,"children":601},{},[602],{"type":27,"value":603},"With the right strategy, modernization becomes less about escaping old code and more about giving the business room to move again.",{"type":22,"tag":60,"props":605,"children":607},{"id":606},"faqs",[608],{"type":27,"value":609},"FAQs",{"type":22,"tag":611,"props":612,"children":614},"h4",{"id":613},"what-are-the-hidden-costs-of-legacy-software",[615],{"type":27,"value":616},"What are the hidden costs of legacy software?",{"type":22,"tag":23,"props":618,"children":619},{},[620],{"type":27,"value":621},"The hidden costs include slower development, higher maintenance effort, operational risk, security and compliance exposure, integration problems, employee frustration, customer experience issues, and missed opportunities for growth.",{"type":22,"tag":611,"props":623,"children":625},{"id":624},"how-do-you-know-if-a-legacy-system-is-holding-your-business-back",[626],{"type":27,"value":627},"How do you know if a legacy system is holding your business back?",{"type":22,"tag":23,"props":629,"children":630},{},[631],{"type":27,"value":632},"Common signs include slow deployments, long QA cycles, recurring bugs, difficulty hiring developers, fragile integrations, compliance headaches, and features that are delayed because the system cannot support them.",{"type":22,"tag":611,"props":634,"children":636},{"id":635},"is-refactoring-better-than-replacing-legacy-software",[637],{"type":27,"value":638},"Is refactoring better than replacing legacy software?",{"type":22,"tag":23,"props":640,"children":641},{},[642],{"type":27,"value":643},"Not always, but refactoring is often the smarter first step. It can reduce risk, improve maintainability, and restore development speed without the disruption of a full rewrite.",{"type":22,"tag":611,"props":645,"children":647},{"id":646},"why-are-full-rewrites-risky",[648],{"type":27,"value":649},"Why are full rewrites risky?",{"type":22,"tag":23,"props":651,"children":652},{},[653],{"type":27,"value":654},"Full rewrites often underestimate the amount of business logic, edge cases, workflows, and integrations embedded in the existing system. That can lead to longer timelines, higher costs, and missed requirements.",{"type":22,"tag":611,"props":656,"children":658},{"id":657},"how-should-a-company-start-modernizing-legacy-software",[659],{"type":27,"value":660},"How should a company start modernizing legacy software?",{"type":22,"tag":23,"props":662,"children":663},{},[664],{"type":27,"value":665},"Start by understanding what the system actually does, where it creates the most friction, and which parts are valuable versus risky. From there, prioritize incremental improvements that reduce business impact while preserving operational continuity.",{"title":8,"searchDepth":667,"depth":667,"links":668},3,[669,670,671,672,673,674,675,676,677,678,679,680,681],{"id":62,"depth":667,"text":65},{"id":100,"depth":667,"text":103},{"id":133,"depth":667,"text":136},{"id":171,"depth":667,"text":174},{"id":213,"depth":667,"text":216},{"id":250,"depth":667,"text":253},{"id":288,"depth":667,"text":291},{"id":320,"depth":667,"text":323},{"id":362,"depth":667,"text":365},{"id":405,"depth":667,"text":408},{"id":484,"depth":667,"text":487},{"id":553,"depth":667,"text":556},{"id":606,"depth":667,"text":609,"children":682},[683,685,686,687,688],{"id":613,"depth":684,"text":616},4,{"id":624,"depth":684,"text":627},{"id":635,"depth":684,"text":638},{"id":646,"depth":684,"text":649},{"id":657,"depth":684,"text":660},"markdown","content:cperez:2026-07-02:hidden-costs-of-legacy-software.md","content","cperez/2026-07-02/hidden-costs-of-legacy-software.md","cperez/2026-07-02/hidden-costs-of-legacy-software","md",{"_path":696,"_dir":697,"_draft":7,"_partial":7,"_locale":8,"title":698,"description":699,"publishDate":697,"image":700,"author":701,"tags":702,"excerpt":699,"body":706,"_type":689,"_id":1302,"_source":691,"_file":1303,"_stem":1304,"_extension":694},"/cperez/2026-06-25/ai_makes_modernization_feasible","2026-06-25","How AI-Assisted Legacy Modernization Reduces Cost, Risk, and Project Timelines","Many organizations know they need to modernize their legacy applications. They also know why they haven't.","/cperez/2026-06-25/img/ai_makes_modernization_feasible.png",{"name":13,"user":14},[16,703,704,705],"tech debt","ai","legacy migration",{"type":19,"children":707,"toc":1279},[708,714,718,723,728,733,738,743,748,754,759,764,769,807,812,817,822,828,833,838,843,848,853,858,906,911,916,921,926,931,936,942,947,952,958,963,968,973,978,984,989,994,999,1005,1010,1015,1020,1026,1031,1036,1042,1047,1052,1057,1062,1105,1110,1115,1121,1126,1131,1136,1141,1150,1156,1161,1166,1171,1176,1182,1187,1192,1197,1202,1207,1213,1219,1224,1230,1235,1241,1246,1252,1257,1263,1268,1274],{"type":22,"tag":60,"props":709,"children":711},{"id":710},"why-human-led-ai-assisted-development-makes-legacy-system-modernization-feasible-again",[712],{"type":27,"value":713},"Why Human-Led, AI-Assisted Development Makes Legacy System Modernization Feasible Again",{"type":22,"tag":23,"props":715,"children":716},{},[717],{"type":27,"value":699},{"type":22,"tag":23,"props":719,"children":720},{},[721],{"type":27,"value":722},"For years, legacy modernization projects have traditionally been expensive, time-consuming, and difficult to justify. Before a single line of code could be updated, teams often had to spend months analyzing existing systems, uncovering business rules, documenting dependencies, and determining how everything worked.",{"type":22,"tag":23,"props":724,"children":725},{},[726],{"type":27,"value":727},"For many organizations, the effort required just to understand a legacy application made modernization feel out of reach, if not impossible.",{"type":22,"tag":23,"props":729,"children":730},{},[731],{"type":27,"value":732},"Today, AI-assisted development is changing that equation.",{"type":22,"tag":23,"props":734,"children":735},{},[736],{"type":27,"value":737},"By helping development teams analyze, document, and understand legacy systems more efficiently, AI can reduce some of the biggest barriers to modernization. Projects that once seemed too risky, too costly, or too complex are becoming increasingly feasible.",{"type":22,"tag":23,"props":739,"children":740},{},[741],{"type":27,"value":742},"The keyword, however, is \"assisted.\"",{"type":22,"tag":23,"props":744,"children":745},{},[746],{"type":27,"value":747},"What we’ve seen is that the most successful modernization initiatives are not replacing experienced engineers with AI. They're combining AI-powered tools with human expertise to create better outcomes, reduce risk, and accelerate delivery, all while maintaining transparency and accountability, which is essential to building trust in your development team.",{"type":22,"tag":60,"props":749,"children":751},{"id":750},"why-legacy-modernization-has-been-so-challenging",[752],{"type":27,"value":753},"Why Legacy Modernization Has Been So Challenging",{"type":22,"tag":23,"props":755,"children":756},{},[757],{"type":27,"value":758},"It may seem like a truism, but most legacy systems weren't created to become legacy systems.",{"type":22,"tag":23,"props":760,"children":761},{},[762],{"type":27,"value":763},"They were developed to solve business problems, often over many years, with countless updates, integrations, and customizations layered on top of one another, often without enough notes or documentation.",{"type":22,"tag":23,"props":765,"children":766},{},[767],{"type":27,"value":768},"As a result, organizations frequently face challenges such as:",{"type":22,"tag":442,"props":770,"children":771},{},[772,777,782,787,792,797,802],{"type":22,"tag":446,"props":773,"children":774},{},[775],{"type":27,"value":776},"Limited or outdated documentation",{"type":22,"tag":446,"props":778,"children":779},{},[780],{"type":27,"value":781},"Business-critical logic buried in code",{"type":22,"tag":446,"props":783,"children":784},{},[785],{"type":27,"value":786},"Aging technology stacks",{"type":22,"tag":446,"props":788,"children":789},{},[790],{"type":27,"value":791},"Complex integrations",{"type":22,"tag":446,"props":793,"children":794},{},[795],{"type":27,"value":796},"Security vulnerabilities",{"type":22,"tag":446,"props":798,"children":799},{},[800],{"type":27,"value":801},"Institutional knowledge concentrated among a few employees",{"type":22,"tag":446,"props":803,"children":804},{},[805],{"type":27,"value":806},"Difficulty finding developers with expertise in older technologies",{"type":22,"tag":23,"props":808,"children":809},{},[810],{"type":27,"value":811},"Before modernization can begin, teams must first understand what they have.",{"type":22,"tag":23,"props":813,"children":814},{},[815],{"type":27,"value":816},"Historically, that process has required hundreds or even thousands of hours of manual investigation.",{"type":22,"tag":23,"props":818,"children":819},{},[820],{"type":27,"value":821},"Developers review source code, trace dependencies, interview stakeholders, and create documentation from scratch. The uncertainty associated with this phase often causes organizations to delay modernization efforts altogether.",{"type":22,"tag":60,"props":823,"children":825},{"id":824},"how-ai-assisted-modernization-changes-the-economics",[826],{"type":27,"value":827},"How AI-Assisted Modernization Changes the Economics",{"type":22,"tag":23,"props":829,"children":830},{},[831],{"type":27,"value":832},"We’ve noticed that when a lot of business leaders hear the term AI, they think of a black box.",{"type":22,"tag":23,"props":834,"children":835},{},[836],{"type":27,"value":837},"Data goes in. An answer comes out. AI does it all.",{"type":22,"tag":23,"props":839,"children":840},{},[841],{"type":27,"value":842},"That perception makes sense. Most discussions about AI focus on the outputs rather than the process behind them.",{"type":22,"tag":23,"props":844,"children":845},{},[846],{"type":27,"value":847},"In software modernization, however, AI delivers value in a different way.",{"type":22,"tag":23,"props":849,"children":850},{},[851],{"type":27,"value":852},"Rather than replacing human decision-making, AI functions as an intelligent development tool that helps teams process information faster and uncover insights more efficiently.",{"type":22,"tag":23,"props":854,"children":855},{},[856],{"type":27,"value":857},"In our legacy modernization projects, we’ve used AI to help teams:",{"type":22,"tag":442,"props":859,"children":860},{},[861,866,871,876,881,886,891,896,901],{"type":22,"tag":446,"props":862,"children":863},{},[864],{"type":27,"value":865},"Analyze large codebases",{"type":22,"tag":446,"props":867,"children":868},{},[869],{"type":27,"value":870},"Generate technical documentation",{"type":22,"tag":446,"props":872,"children":873},{},[874],{"type":27,"value":875},"Identify dependencies and integrations",{"type":22,"tag":446,"props":877,"children":878},{},[879],{"type":27,"value":880},"Explain unfamiliar programming languages",{"type":22,"tag":446,"props":882,"children":883},{},[884],{"type":27,"value":885},"Surface hidden business logic",{"type":22,"tag":446,"props":887,"children":888},{},[889],{"type":27,"value":890},"Accelerate testing efforts",{"type":22,"tag":446,"props":892,"children":893},{},[894],{"type":27,"value":895},"Recommend modernization pathways",{"type":22,"tag":446,"props":897,"children":898},{},[899],{"type":27,"value":900},"Create migration roadmaps",{"type":22,"tag":446,"props":902,"children":903},{},[904],{"type":27,"value":905},"Highlight potential risks and bottlenecks",{"type":22,"tag":23,"props":907,"children":908},{},[909],{"type":27,"value":910},"While those capabilities are valuable individually, the real advantage comes from how they work together.",{"type":22,"tag":23,"props":912,"children":913},{},[914],{"type":27,"value":915},"In practice, AI-assisted modernization isn't a collection of separate tasks. It's a connected workflow where each output helps accelerate the next stage of the project.",{"type":22,"tag":23,"props":917,"children":918},{},[919],{"type":27,"value":920},"For example, we often use AI to help write behavioral tests that exercise parts of a legacy system that may have little or no documentation. Those tests don't just improve quality. They help surface business rules that have been buried in code for years.",{"type":22,"tag":23,"props":922,"children":923},{},[924],{"type":27,"value":925},"Because those tests are written in business-friendly language, they can also serve as documentation. AI can then help summarize those behaviors for stakeholders, making it easier for subject matter experts to confirm whether the system is working as intended or identify areas where the documented behavior no longer reflects current business needs.",{"type":22,"tag":23,"props":927,"children":928},{},[929],{"type":27,"value":930},"The same pattern appears throughout modernization efforts. AI can help developers analyze existing code, generate documentation, create tests, identify dependencies, and produce a significant amount of modernized code. Each step produces knowledge that informs the next one, creating a feedback loop that helps teams understand legacy systems more quickly and make better modernization decisions.",{"type":22,"tag":23,"props":932,"children":933},{},[934],{"type":27,"value":935},"This is why the greatest value of AI isn't automation for its own sake. It's the ability to help experienced engineers uncover, validate, document, and modernize complex systems more efficiently while keeping human expertise at the center of the process.",{"type":22,"tag":60,"props":937,"children":939},{"id":938},"what-business-leaders-get-wrong-about-ai",[940],{"type":27,"value":941},"What Business Leaders Get Wrong About AI",{"type":22,"tag":23,"props":943,"children":944},{},[945],{"type":27,"value":946},"Many executives are interested in AI but remain skeptical about adopting it for mission-critical initiatives, which is entirely reasonable.",{"type":22,"tag":23,"props":948,"children":949},{},[950],{"type":27,"value":951},"The problem is that public conversations about AI often frame it as either a miracle solution or an existential threat. The reality, however, is much more practical.",{"type":22,"tag":611,"props":953,"children":955},{"id":954},"concern-1-can-we-trust-ai",[956],{"type":27,"value":957},"Concern #1: Can We Trust AI?",{"type":22,"tag":23,"props":959,"children":960},{},[961],{"type":27,"value":962},"Business leaders know that AI can hallucinate and make mistakes.",{"type":22,"tag":23,"props":964,"children":965},{},[966],{"type":27,"value":967},"When decisions involve critical systems, customer data, regulatory requirements, or core business operations, accuracy matters.",{"type":22,"tag":23,"props":969,"children":970},{},[971],{"type":27,"value":972},"We encourage organizations not to blindly trust AI-generated outputs. They should validate them.",{"type":22,"tag":23,"props":974,"children":975},{},[976],{"type":27,"value":977},"That is why successful AI-assisted modernization initiatives keep experienced engineers involved throughout the process.",{"type":22,"tag":611,"props":979,"children":981},{"id":980},"concern-2-will-ai-understand-our-business",[982],{"type":27,"value":983},"Concern #2: Will AI Understand Our Business?",{"type":22,"tag":23,"props":985,"children":986},{},[987],{"type":27,"value":988},"Every company has unique processes, workflows, and institutional knowledge.",{"type":22,"tag":23,"props":990,"children":991},{},[992],{"type":27,"value":993},"A legacy application often contains years of business decisions that are not documented anywhere else.",{"type":22,"tag":23,"props":995,"children":996},{},[997],{"type":27,"value":998},"AI can help identify and explain patterns within a codebase, but understanding why those decisions were made requires human expertise and stakeholder collaboration.",{"type":22,"tag":611,"props":1000,"children":1002},{"id":1001},"concern-3-what-about-security-and-compliance",[1003],{"type":27,"value":1004},"Concern #3: What About Security and Compliance?",{"type":22,"tag":23,"props":1006,"children":1007},{},[1008],{"type":27,"value":1009},"Security, governance, and compliance concerns are among the most common questions executives raise about AI adoption.",{"type":22,"tag":23,"props":1011,"children":1012},{},[1013],{"type":27,"value":1014},"These concerns become especially important in industries such as healthcare, finance, manufacturing, and government.",{"type":22,"tag":23,"props":1016,"children":1017},{},[1018],{"type":27,"value":1019},"Organizations need confidence that AI-assisted processes align with their security requirements, compliance obligations, and risk management frameworks.",{"type":22,"tag":611,"props":1021,"children":1023},{"id":1022},"concern-4-are-we-replacing-human-expertise",[1024],{"type":27,"value":1025},"Concern #4: Are We Replacing Human Expertise?",{"type":22,"tag":23,"props":1027,"children":1028},{},[1029],{"type":27,"value":1030},"Perhaps the biggest misconception is that AI exists to replace developers, architects, and technical leaders.",{"type":22,"tag":23,"props":1032,"children":1033},{},[1034],{"type":27,"value":1035},"The most successful organizations are not removing people from the process. Instead, they’re using AI to help their teams work more effectively.",{"type":22,"tag":60,"props":1037,"children":1039},{"id":1038},"why-human-centered-ai-creates-better-modernization-outcomes",[1040],{"type":27,"value":1041},"Why Human-Centered AI Creates Better Modernization Outcomes",{"type":22,"tag":23,"props":1043,"children":1044},{},[1045],{"type":27,"value":1046},"At Art+Logic, we view AI as a tool, not a substitute for expertise.",{"type":22,"tag":23,"props":1048,"children":1049},{},[1050],{"type":27,"value":1051},"AI can help accelerate analysis, generate documentation, identify patterns, and reduce repetitive work.",{"type":22,"tag":23,"props":1053,"children":1054},{},[1055],{"type":27,"value":1056},"But AI cannot replace the judgment required to make strategic modernization decisions.",{"type":22,"tag":23,"props":1058,"children":1059},{},[1060],{"type":27,"value":1061},"Human experts remain responsible for:",{"type":22,"tag":442,"props":1063,"children":1064},{},[1065,1070,1075,1080,1085,1090,1095,1100],{"type":22,"tag":446,"props":1066,"children":1067},{},[1068],{"type":27,"value":1069},"Technology strategy",{"type":22,"tag":446,"props":1071,"children":1072},{},[1073],{"type":27,"value":1074},"Architecture decisions",{"type":22,"tag":446,"props":1076,"children":1077},{},[1078],{"type":27,"value":1079},"Security reviews",{"type":22,"tag":446,"props":1081,"children":1082},{},[1083],{"type":27,"value":1084},"Risk assessment",{"type":22,"tag":446,"props":1086,"children":1087},{},[1088],{"type":27,"value":1089},"Business alignment",{"type":22,"tag":446,"props":1091,"children":1092},{},[1093],{"type":27,"value":1094},"Quality assurance",{"type":22,"tag":446,"props":1096,"children":1097},{},[1098],{"type":27,"value":1099},"Stakeholder communication",{"type":22,"tag":446,"props":1101,"children":1102},{},[1103],{"type":27,"value":1104},"Long-term maintainability",{"type":22,"tag":23,"props":1106,"children":1107},{},[1108],{"type":27,"value":1109},"This human-in-the-loop approach combines the speed and efficiency of AI with the experience and accountability of seasoned software professionals. Organizations benefit from faster discovery and analysis without sacrificing quality, governance, or business context.",{"type":22,"tag":23,"props":1111,"children":1112},{},[1113],{"type":27,"value":1114},"That balance is where AI creates the greatest value.",{"type":22,"tag":60,"props":1116,"children":1118},{"id":1117},"real-world-results-from-ai-assisted-modernization",[1119],{"type":27,"value":1120},"Real-World Results from AI-Assisted Modernization",{"type":22,"tag":23,"props":1122,"children":1123},{},[1124],{"type":27,"value":1125},"The benefits of AI-assisted modernization are already being realized in real-world projects.",{"type":22,"tag":23,"props":1127,"children":1128},{},[1129],{"type":27,"value":1130},"In a recent engagement, Art+Logic used AI-assisted development techniques to help analyze and modernize a complex legacy application. Our engineers used AI to accelerate code analysis, enhance documentation efforts, and write code, enabling our developers to spend more time validating assumptions, understanding business requirements, and making informed technical decisions.",{"type":22,"tag":23,"props":1132,"children":1133},{},[1134],{"type":27,"value":1135},"The result was a more efficient modernization process while maintaining the human oversight required for long-term success.",{"type":22,"tag":23,"props":1137,"children":1138},{},[1139],{"type":27,"value":1140},"Learn more about our approach in our AI-Assisted Modernization Case Study:",{"type":22,"tag":23,"props":1142,"children":1143},{},[1144],{"type":22,"tag":34,"props":1145,"children":1148},{"href":1146,"rel":1147},"https://artandlogic.com/ai-assisted-modernization/",[38],[1149],{"type":27,"value":1146},{"type":22,"tag":60,"props":1151,"children":1153},{"id":1152},"ai-is-making-previously-delayed-projects-possible",[1154],{"type":27,"value":1155},"AI Is Making Previously Delayed Projects Possible",{"type":22,"tag":23,"props":1157,"children":1158},{},[1159],{"type":27,"value":1160},"Many organizations have postponed modernization because the economics simply didn't work.",{"type":22,"tag":23,"props":1162,"children":1163},{},[1164],{"type":27,"value":1165},"The required investment felt too large, or the timeline felt too long, or the risks felt too difficult to predict. AI-assisted development is helping change those realities.",{"type":22,"tag":23,"props":1167,"children":1168},{},[1169],{"type":27,"value":1170},"By reducing the time required to understand legacy systems, organizations can create modernization plans more quickly, make better-informed decisions, and allocate resources more effectively.",{"type":22,"tag":23,"props":1172,"children":1173},{},[1174],{"type":27,"value":1175},"The complexity of modernization hasn't disappeared, but it has become more manageable. For many organizations, that shift is enough to move modernization from the \"someday\" category into an actionable strategic initiative.",{"type":22,"tag":60,"props":1177,"children":1179},{"id":1178},"the-future-of-legacy-modernization-is-human-led-and-ai-assisted",[1180],{"type":27,"value":1181},"The Future of Legacy Modernization Is Human-Led and AI-Assisted",{"type":22,"tag":23,"props":1183,"children":1184},{},[1185],{"type":27,"value":1186},"The organizations seeing the greatest value from AI are not handing over decision-making to algorithms.",{"type":22,"tag":23,"props":1188,"children":1189},{},[1190],{"type":27,"value":1191},"They are combining AI-powered tools with experienced professionals who understand technology, business objectives, and organizational realities.",{"type":22,"tag":23,"props":1193,"children":1194},{},[1195],{"type":27,"value":1196},"AI helps teams move faster, while human expertise ensures they move in the right direction.",{"type":22,"tag":23,"props":1198,"children":1199},{},[1200],{"type":27,"value":1201},"As legacy systems continue to age and technology expectations continue to evolve, this combination of human insight and AI-assisted efficiency is making modernization projects more achievable than ever before.",{"type":22,"tag":23,"props":1203,"children":1204},{},[1205],{"type":27,"value":1206},"For organizations that have delayed modernization because of cost, complexity, or uncertainty, the opportunity has changed. The tools are better, and the process is faster. And with the right human expertise guiding the effort, modernization is becoming a far more practical path forward.",{"type":22,"tag":60,"props":1208,"children":1210},{"id":1209},"frequently-asked-questions",[1211],{"type":27,"value":1212},"Frequently Asked Questions",{"type":22,"tag":611,"props":1214,"children":1216},{"id":1215},"what-is-ai-assisted-legacy-modernization",[1217],{"type":27,"value":1218},"What is AI-assisted legacy modernization?",{"type":22,"tag":23,"props":1220,"children":1221},{},[1222],{"type":27,"value":1223},"AI-assisted legacy modernization uses AI tools to help development teams analyze code, generate documentation, identify dependencies, and accelerate planning activities while keeping human experts responsible for decision-making and implementation.",{"type":22,"tag":611,"props":1225,"children":1227},{"id":1226},"can-ai-modernize-a-legacy-application-without-human-involvement",[1228],{"type":27,"value":1229},"Can AI modernize a legacy application without human involvement?",{"type":22,"tag":23,"props":1231,"children":1232},{},[1233],{"type":27,"value":1234},"No. AI can accelerate analysis and discovery, but successful modernization still requires human expertise to evaluate business requirements, design architectures, manage risk, and ensure quality.",{"type":22,"tag":611,"props":1236,"children":1238},{"id":1237},"how-does-ai-reduce-legacy-modernization-costs",[1239],{"type":27,"value":1240},"How does AI reduce legacy modernization costs?",{"type":22,"tag":23,"props":1242,"children":1243},{},[1244],{"type":27,"value":1245},"AI reduces the manual effort associated with code analysis, documentation, testing, and discovery activities, allowing organizations to spend less time understanding existing systems and more time creating modernization solutions.",{"type":22,"tag":611,"props":1247,"children":1249},{"id":1248},"is-ai-assisted-modernization-secure",[1250],{"type":27,"value":1251},"Is AI-assisted modernization secure?",{"type":22,"tag":23,"props":1253,"children":1254},{},[1255],{"type":27,"value":1256},"When implemented with appropriate governance, security controls, and human oversight, AI-assisted modernization can support enterprise security and compliance requirements.",{"type":22,"tag":611,"props":1258,"children":1260},{"id":1259},"why-are-organizations-investing-in-ai-assisted-modernization-now",[1261],{"type":27,"value":1262},"Why are organizations investing in AI-assisted modernization now?",{"type":22,"tag":23,"props":1264,"children":1265},{},[1266],{"type":27,"value":1267},"Advances in AI-powered development tools have made it easier and faster to understand legacy systems, reducing many of the barriers that previously made modernization projects difficult to justify.",{"type":22,"tag":611,"props":1269,"children":1271},{"id":1270},"can-you-use-ai-to-write-code-too",[1272],{"type":27,"value":1273},"Can you use AI to write code, too?",{"type":22,"tag":23,"props":1275,"children":1276},{},[1277],{"type":27,"value":1278},"Yes, AI can be used to write code more efficiently. An engineer must still review that code, however, since sometimes AI writes code like an eager intern.",{"title":8,"searchDepth":667,"depth":667,"links":1280},[1281,1282,1283,1284,1290,1291,1292,1293,1294],{"id":710,"depth":667,"text":713},{"id":750,"depth":667,"text":753},{"id":824,"depth":667,"text":827},{"id":938,"depth":667,"text":941,"children":1285},[1286,1287,1288,1289],{"id":954,"depth":684,"text":957},{"id":980,"depth":684,"text":983},{"id":1001,"depth":684,"text":1004},{"id":1022,"depth":684,"text":1025},{"id":1038,"depth":667,"text":1041},{"id":1117,"depth":667,"text":1120},{"id":1152,"depth":667,"text":1155},{"id":1178,"depth":667,"text":1181},{"id":1209,"depth":667,"text":1212,"children":1295},[1296,1297,1298,1299,1300,1301],{"id":1215,"depth":684,"text":1218},{"id":1226,"depth":684,"text":1229},{"id":1237,"depth":684,"text":1240},{"id":1248,"depth":684,"text":1251},{"id":1259,"depth":684,"text":1262},{"id":1270,"depth":684,"text":1273},"content:cperez:2026-06-25:ai_makes_modernization_feasible.md","cperez/2026-06-25/ai_makes_modernization_feasible.md","cperez/2026-06-25/ai_makes_modernization_feasible",{"_path":1306,"_dir":1307,"_draft":7,"_partial":7,"_locale":8,"title":1308,"description":1309,"publishDate":1310,"image":1311,"author":1312,"tags":1313,"excerpt":1309,"body":1319,"_type":689,"_id":1569,"_source":691,"_file":1570,"_stem":1571,"_extension":694},"/cperez/2026-06-17/xamarin-to-maui","2026-06-17","Migrating a Xamarin Medical Application to .NET MAUI","A widely used medical reference application built with Xamarin had become increasingly difficult to maintain as platform support deadlines approached. The client needed to modernize the application before operating system changes and framework deprecations created larger compatibility risks.","2026-06-22","/cperez/2026-06-17/img/xamarin-to-maui.png",{"name":13,"user":14},[16,1314,1315,1316,1317,1318],"xamarin",".net","maui","app migration","mobile",{"type":19,"children":1320,"toc":1562},[1321,1325,1330,1336,1341,1346,1374,1379,1385,1390,1395,1423,1429,1434,1439,1467,1472,1477,1483,1488,1493,1498,1503,1509,1514,1519,1557],{"type":22,"tag":23,"props":1322,"children":1323},{},[1324],{"type":27,"value":1309},{"type":22,"tag":23,"props":1326,"children":1327},{},[1328],{"type":27,"value":1329},"Art+Logic led the successful migration of the application to .NET MAUI, preserving the existing C# ecosystem while modernizing architecture, improving usability, and reducing future maintenance risk.",{"type":22,"tag":60,"props":1331,"children":1333},{"id":1332},"the-challenge",[1334],{"type":27,"value":1335},"The Challenge",{"type":22,"tag":23,"props":1337,"children":1338},{},[1339],{"type":27,"value":1340},"The original Xamarin application served medical residents and healthcare professionals who relied on quick access to treatment guides, splinting references, and antibiotic data while working in fast-paced clinical environments.",{"type":22,"tag":23,"props":1342,"children":1343},{},[1344],{"type":27,"value":1345},"Migrating the application presented several major obstacles:",{"type":22,"tag":442,"props":1347,"children":1348},{},[1349,1354,1359,1364,1369],{"type":22,"tag":446,"props":1350,"children":1351},{},[1352],{"type":27,"value":1353},"Xamarin support was aging toward eventual deprecation",{"type":22,"tag":446,"props":1355,"children":1356},{},[1357],{"type":27,"value":1358},"Platform APIs and libraries had changed substantially",{"type":22,"tag":446,"props":1360,"children":1361},{},[1362],{"type":27,"value":1363},"The application contained years of accumulated technical debt",{"type":22,"tag":446,"props":1365,"children":1366},{},[1367],{"type":27,"value":1368},"A complete rewrite would have been cost-prohibitive",{"type":22,"tag":446,"props":1370,"children":1371},{},[1372],{"type":27,"value":1373},"Reliability requirements were extremely high due to medical usage contexts",{"type":22,"tag":23,"props":1375,"children":1376},{},[1377],{"type":27,"value":1378},"The client needed a migration path that balanced cost, stability, and long-term maintainability.",{"type":22,"tag":60,"props":1380,"children":1382},{"id":1381},"why-net-maui",[1383],{"type":27,"value":1384},"Why .NET MAUI",{"type":22,"tag":23,"props":1386,"children":1387},{},[1388],{"type":27,"value":1389},"After evaluating alternatives, including native mobile development and Flutter, the team selected .NET MAUI because it allowed the client to retain its existing C# investment and many familiar architectural patterns.",{"type":22,"tag":23,"props":1391,"children":1392},{},[1393],{"type":27,"value":1394},"Choosing MAUI enabled:",{"type":22,"tag":442,"props":1396,"children":1397},{},[1398,1403,1408,1413,1418],{"type":22,"tag":446,"props":1399,"children":1400},{},[1401],{"type":27,"value":1402},"Greater code continuity",{"type":22,"tag":446,"props":1404,"children":1405},{},[1406],{"type":27,"value":1407},"Reduced retraining costs",{"type":22,"tag":446,"props":1409,"children":1410},{},[1411],{"type":27,"value":1412},"Faster migration timelines",{"type":22,"tag":446,"props":1414,"children":1415},{},[1416],{"type":27,"value":1417},"Easier long-term maintenance",{"type":22,"tag":446,"props":1419,"children":1420},{},[1421],{"type":27,"value":1422},"Lower overall implementation risk",{"type":22,"tag":60,"props":1424,"children":1426},{"id":1425},"the-migration-strategy",[1427],{"type":27,"value":1428},"The Migration Strategy",{"type":22,"tag":23,"props":1430,"children":1431},{},[1432],{"type":27,"value":1433},"Rather than rebuilding the entire application at once, Art+Logic approached the migration incrementally.",{"type":22,"tag":23,"props":1435,"children":1436},{},[1437],{"type":27,"value":1438},"The team:",{"type":22,"tag":442,"props":1440,"children":1441},{},[1442,1447,1452,1457,1462],{"type":22,"tag":446,"props":1443,"children":1444},{},[1445],{"type":27,"value":1446},"Reworked application layers piece by piece",{"type":22,"tag":446,"props":1448,"children":1449},{},[1450],{"type":27,"value":1451},"Updated framework dependencies",{"type":22,"tag":446,"props":1453,"children":1454},{},[1455],{"type":27,"value":1456},"Modernized UI components",{"type":22,"tag":446,"props":1458,"children":1459},{},[1460],{"type":27,"value":1461},"Refactored platform-specific functionality",{"type":22,"tag":446,"props":1463,"children":1464},{},[1465],{"type":27,"value":1466},"Continuously tested each migrated module",{"type":22,"tag":23,"props":1468,"children":1469},{},[1470],{"type":27,"value":1471},"AI-assisted tooling helped accelerate repetitive migration tasks, but engineers maintained direct oversight throughout the process to validate generated code and ensure functional accuracy.",{"type":22,"tag":23,"props":1473,"children":1474},{},[1475],{"type":27,"value":1476},"This careful balance between automation and engineering review allowed the team to move quickly without sacrificing reliability.",{"type":22,"tag":60,"props":1478,"children":1480},{"id":1479},"improving-the-user-experience",[1481],{"type":27,"value":1482},"Improving the User Experience",{"type":22,"tag":23,"props":1484,"children":1485},{},[1486],{"type":27,"value":1487},"The migration effort became an opportunity to rethink several critical workflows.",{"type":22,"tag":23,"props":1489,"children":1490},{},[1491],{"type":27,"value":1492},"One major enhancement involved redesigning a complex antibiogram table used by physicians to cross-reference bacteria and antibiotics. The previous interface relied heavily on manual scrolling, making navigation cumbersome on mobile devices.",{"type":22,"tag":23,"props":1494,"children":1495},{},[1496],{"type":27,"value":1497},"The updated experience introduced filtering and guided selection workflows that dramatically improved speed and usability for clinicians.",{"type":22,"tag":23,"props":1499,"children":1500},{},[1501],{"type":27,"value":1502},"The team also developed a new licensing and account-management system that enabled users to purchase and manage digital content licenses directly.",{"type":22,"tag":60,"props":1504,"children":1506},{"id":1505},"the-results",[1507],{"type":27,"value":1508},"The Results",{"type":22,"tag":23,"props":1510,"children":1511},{},[1512],{"type":27,"value":1513},"The migration to .NET MAUI was fully successful.",{"type":22,"tag":23,"props":1515,"children":1516},{},[1517],{"type":27,"value":1518},"Outcomes included:",{"type":22,"tag":442,"props":1520,"children":1521},{},[1522,1527,1532,1537,1542,1547,1552],{"type":22,"tag":446,"props":1523,"children":1524},{},[1525],{"type":27,"value":1526},"100% resolution of known Xamarin-version bugs",{"type":22,"tag":446,"props":1528,"children":1529},{},[1530],{"type":27,"value":1531},"Successful transition to a modern supported framework",{"type":22,"tag":446,"props":1533,"children":1534},{},[1535],{"type":27,"value":1536},"Improved mobile UX and navigation",{"type":22,"tag":446,"props":1538,"children":1539},{},[1540],{"type":27,"value":1541},"Expanded licensing functionality",{"type":22,"tag":446,"props":1543,"children":1544},{},[1545],{"type":27,"value":1546},"Delivery several hundred hours under budget",{"type":22,"tag":446,"props":1548,"children":1549},{},[1550],{"type":27,"value":1551},"Reduced long-term platform risk",{"type":22,"tag":446,"props":1553,"children":1554},{},[1555],{"type":27,"value":1556},"Streamlined development and maintenance workflows",{"type":22,"tag":23,"props":1558,"children":1559},{},[1560],{"type":27,"value":1561},"The project demonstrated that Xamarin-to-MAUI migrations can be both technically successful and financially viable when approached with the right modernization strategy, tooling, and engineering oversight.",{"title":8,"searchDepth":667,"depth":667,"links":1563},[1564,1565,1566,1567,1568],{"id":1332,"depth":667,"text":1335},{"id":1381,"depth":667,"text":1384},{"id":1425,"depth":667,"text":1428},{"id":1479,"depth":667,"text":1482},{"id":1505,"depth":667,"text":1508},"content:cperez:2026-06-17:xamarin-to-maui.md","cperez/2026-06-17/xamarin-to-maui.md","cperez/2026-06-17/xamarin-to-maui",1783408212727]