[{"data":1,"prerenderedAt":572},["ShallowReactive",2],{"site-schema":3,"article-en-legacy-system-takeover-guide":93,"article-related-en-legacy-system-takeover-guide":556},{"@context":4,"@graph":5},"https://schema.org",[6,72,84],{"@type":7,"@id":8,"name":9,"alternateName":10,"legalName":15,"foundingDate":16,"numberOfEmployees":17,"taxID":18,"url":19,"logo":20,"founder":21,"contactPoint":23,"address":37,"location":43,"sameAs":63},"Organization","https://joinx.co/#organization","JoinX哲煜科技",[11,12,13,14],"JoinX","TWJOIN","哲煜科技","哲煜科技股份有限公司","JoinX Co., Ltd.","2016-04-28",80,"43774383","https://joinx.co","https://joinx.co/images/logo-with-name.png",{"@id":22},"https://joinx.co/#person-jack-lee",[24],{"@type":25,"contactType":26,"url":27,"telephone":28,"email":29,"areaServed":30,"availableLanguage":33},"ContactPoint","customer service","https://joinx.co/contact-us","+886-2-8771-9095","service@joinx.co",[31,32],"TW","JP",[34,35,36],"zh-Hant","en","ja",{"@type":38,"streetAddress":39,"postalCode":40,"addressLocality":41,"addressRegion":42,"addressCountry":31},"PostalAddress","民生東路二段170號8樓","104","台北市中山區","台灣",[44,51,57],{"@type":45,"name":46,"address":47},"Place","JoinX 台中辦公室",{"@type":38,"streetAddress":48,"postalCode":49,"addressLocality":50,"addressRegion":42,"addressCountry":31},"台灣大道二段360號21樓C室","40453","台中市北區",{"@type":45,"name":52,"address":53},"JoinX 高雄辦公室",{"@type":38,"streetAddress":54,"postalCode":55,"addressLocality":56,"addressRegion":42,"addressCountry":31},"民族一路80號2樓之一(B4)","807","高雄市三民區",{"@type":45,"name":58,"address":59},"JoinX 東京辦公室",{"@type":38,"streetAddress":60,"postalCode":61,"addressLocality":62,"addressCountry":32},"東五反田5-22-37 Office Circle N 五反田 9樓","141-0022","東京都品川區",[64,65,66,67,68,69,70,71],"https://www.crunchbase.com/organization/twjoin","https://www.facebook.com/JoinX.TW","https://tw.linkedin.com/company/%E5%93%B2%E7%85%9C%E7%A7%91%E6%8A%80","https://www.youtube.com/c/joinstuido%E5%93%B2%E7%85%9C%E7%A7%91%E6%8A%80","https://medium.com/twjoin","https://www.104.com.tw/company/1a2x6bjomb","https://clutch.co/profile/twjoin","https://www.goodfirms.co/company/twjoin",{"@type":73,"@id":22,"name":74,"alternateName":75,"jobTitle":76,"worksFor":77,"url":78,"sameAs":79},"Person","李秉哲","Jack Lee","創辦人暨執行長",{"@id":8},"https://jack.joinx.co",[80,81,82,83],"https://www.instagram.com/jack88.podcast/","https://www.threads.net/@jack88.podcast","https://joinx.co/jack88/","https://www.linkedin.com/in/jacklee-taiwan/",{"@type":85,"@id":86,"url":19,"name":9,"alternateName":87,"publisher":88,"inLanguage":89},"WebSite","https://joinx.co/#website",[11,13,9],{"@id":8},[90,91,92],"zh-Hant-TW","en-US","ja-JP",{"id":94,"title":95,"body":96,"category":520,"cover":521,"dateModified":522,"description":523,"extension":524,"faq":525,"hasCoverTitle":546,"locale":35,"meta":547,"navigation":546,"need":548,"path":549,"seo":550,"sources":551,"stem":552,"takeaways":551,"time":553,"type":554,"__hash__":555},"content/en/article/legacy-system-takeover-guide.md","Unmaintained System? Legacy Takeover, Refactor, or Rewrite",{"type":97,"value":98,"toc":486},"minimal",[99,107,112,115,134,137,141,144,149,152,156,159,163,166,170,173,177,180,184,210,219,223,290,293,297,300,354,362,366,369,384,387,391,395,398,402,405,409,412,416,420,423,427,430,434,437,441,444,448,451,455,458,462,465,469,472,476,479,483],[100,101,102,106],"p",{},[103,104,105],"strong",{},"A system that is \"still running\" but that nobody dares to change is the most dangerous kind of stability."," After the original vendor becomes unreachable, the engineers leave, or the documentation disappears, a company should not immediately ask a new vendor to add features; the first step is to regain control over the source code, environments, data, and operational knowledge.",[108,109,111],"h2",{"id":110},"how-can-you-tell-a-system-has-become-an-orphaned-system","How can you tell a system has become an orphaned system?",[100,113,114],{},"JoinX's takeover experience shows that missing documentation, inability to deploy, unclear access rights, uncontrolled versions, and dependence on a single person are all warning signs. The more warning signs appear at once, the more a full health check is needed before taking over.",[116,117,118,122,125,128,131],"ol",{},[119,120,121],"li",{},"Only one person knows how to deploy, and there is no backup.",[119,123,124],{},"The source code is not in a repository the company controls, or it cannot be confirmed as the production version.",[119,126,127],{},"Cloud, domain, certificate, and third-party accounts are held by former employees or a vendor.",[119,129,130],{},"Packages have not been updated for years, and error logs, backups, and restores have never been verified.",[119,132,133],{},"Users still depend on the system, but any change could cause unknown chain reactions.",[100,135,136],{},"These problems do not necessarily mean the system must be rewritten, but they show the company has lost the ability to make predictable changes.",[108,138,140],{"id":139},"what-should-you-check-before-taking-over-a-legacy-system","What should you check before taking over a legacy system?",[100,142,143],{},"JoinX recommends taking inventory across five areas: code, infrastructure, data, security, and operational processes. The purpose of the health check is not to rewrite immediately, but first to establish a baseline of risk and cost on which decisions can be made.",[145,146,148],"h3",{"id":147},"code","Code",[100,150,151],{},"Confirm the languages, frameworks, versions, repositories, branches, licenses, dependencies, tests, and build process. The point is not to make it pretty, but to judge whether it can be reproduced, modified, and verified.",[145,153,155],{"id":154},"security","Security",[100,157,158],{},"Take inventory of known vulnerabilities, hard-coded secrets, excessive permissions, personal data, logs, backups, networking, and third-party packages. Deal first with high-risk items that could cause data leaks or service outages.",[145,160,162],{"id":161},"architecture-and-integrations","Architecture and integrations",[100,164,165],{},"Map out the frontend, backend, databases, scheduled jobs, messaging, storage, and external APIs. Identify which services are single points of failure, which interfaces have no retries, and which system is the source of truth for the data.",[145,167,169],{"id":168},"data","Data",[100,171,172],{},"Analyze data volume, growth, fields, quality, history, backups, and restores. Taking over is not just about getting the code; data is often the system's most irreplaceable asset.",[145,174,176],{"id":175},"documentation-and-on-the-ground-knowledge","Documentation and on-the-ground knowledge",[100,178,179],{},"Interview operations, customer service, finance, and management, and record the main workflows, exceptions, reports, and periodic work such as month-end closing. Operating habits may hide rules that cannot be seen in the code.",[108,181,183],{"id":182},"the-four-stage-takeover-process","The four-stage takeover process",[116,185,186,192,198,204],{},[119,187,188,191],{},[103,189,190],{},"Gain control:"," Collect the repositories, servers, databases, domains, certificates, third-party accounts, and contracts.",[119,193,194,197],{},[103,195,196],{},"Establish a reproducible baseline:"," Complete build, deployment, backup, and restore in an isolated environment, and record the production version.",[119,199,200,203],{},[103,201,202],{},"Add a minimum safety net:"," Set up smoke tests, monitoring, logs, alerts, and recovery steps for core workflows.",[119,205,206,209],{},[103,207,208],{},"Schedule improvements by risk:"," Address security and operational risks first, then talk about features, refactoring, or replacement.",[100,211,212,213,218],{},"To understand why AI-written code still cannot replace these responsibilities, see ",[214,215,217],"a",{"href":216},"/en/article/do-you-still-need-a-software-company-in-ai-era/","AI Writes Code Now: Do You Still Need a Software Company?",".",[108,220,222],{"id":221},"maintain-refactor-or-rewrite-how-to-choose","Maintain, refactor, or rewrite: how to choose?",[224,225,226,242],"table",{},[227,228,229],"thead",{},[230,231,232,236,239],"tr",{},[233,234,235],"th",{},"Option",[233,237,238],{},"When it fits",[233,240,241],{},"Main risk",[243,244,245,257,268,279],"tbody",{},[230,246,247,251,254],{},[248,249,250],"td",{},"Take over and maintain",[248,252,253],{},"The system is reproducible, the core is stable, and support must be restored in the short term",[248,255,256],{},"Technical debt keeps accumulating",[230,258,259,262,265],{},[248,260,261],{},"Partial refactoring",[248,263,264],{},"Problems are concentrated in specific modules that can be isolated with tests",[248,266,267],{},"Misjudging boundaries affects existing workflows",[230,269,270,273,276],{},[248,271,272],{},"Incremental replacement",[248,274,275],{},"The system is important but cannot be shut down all at once; modules can be moved one by one",[248,277,278],{},"Running old and new in parallel and syncing data is more complex",[230,280,281,284,287],{},[248,282,283],{},"Full rewrite",[248,285,286],{},"The technology cannot run, risks cannot be remediated, or the business has fundamentally changed",[248,288,289],{},"Highest risk of missed rules, migration, and cutover",[100,291,292],{},"Do not equate \"we can't understand it\" with \"it should be rewritten.\" A legacy system may contain business rules accumulated over many years; without tests and user interviews, a new system can easily miss key exceptions.",[108,294,296],{"id":295},"how-much-does-it-cost-to-take-over-and-maintain-a-legacy-system","How much does it cost to take over and maintain a legacy system?",[100,298,299],{},"Based on JoinX's project experience, costs depend on how reproducible the system is, its technical debt, data risk, and the expected scope of work. Complete a diagnosis first, then separate budgets for urgent fixes, ongoing maintenance, and refactoring.",[224,301,302,313],{},[227,303,304],{},[230,305,306,309],{},[233,307,308],{},"Work",[233,310,312],{"align":311},"right","Reference cost",[243,314,315,323,331,339,347],{},[230,316,317,320],{},[248,318,319],{},"Initial code and system health check",[248,321,322],{"align":311},"NT$50K–200K",[230,324,325,328],{},[248,326,327],{},"Monthly maintenance",[248,329,330],{"align":311},"NT$30K–150K",[230,332,333,336],{},[248,334,335],{},"Rebuilding documentation and handover",[248,337,338],{"align":311},"NT$100K–400K",[230,340,341,344],{},[248,342,343],{},"Refactoring a single module",[248,345,346],{"align":311},"NT$500K–2M",[230,348,349,351],{},[248,350,283],{},[248,352,353],{"align":311},"Re-estimated based on the new system's scope",[100,355,356,357,361],{},"A full rewrite is not \"building the screens again.\" It also adds the cost of understanding the old rules, cleaning and migrating data, parallel-run verification, training, and cutover. You can use ",[214,358,360],{"href":359},"/en/article/system-development-cost-2026/","System Development Cost in 2026"," to build a budget.",[108,363,365],{"id":364},"ai-can-help-with-a-legacy-takeover-but-it-cannot-replace-verification","AI can help with a legacy takeover, but it cannot replace verification",[100,367,368],{},"Where access rights and data policies allow, AI can help:",[370,371,372,375,378,381],"ul",{},[119,373,374],{},"Summarize modules, functions, and data flows.",[119,376,377],{},"Find likely dependencies, duplication, and high-risk areas.",[119,379,380],{},"Draft architecture, API, and operations documentation.",[119,382,383],{},"Create test cases and refactoring lists based on existing behavior.",[100,385,386],{},"But AI does not know whether an odd branch is a historical bug or an important business exception. Every inference must be verified through running the code, data, users, and engineering review, and sensitive code must not be sent to unapproved services.",[108,388,390],{"id":389},"how-do-you-avoid-ending-up-with-an-orphaned-system-next-time","How do you avoid ending up with an orphaned system next time?",[145,392,394],{"id":393},"contracts","Contracts",[100,396,397],{},"Confirm the delivery of, and rights to, the source code, design files, data, accounts, deployment configuration, and documentation; define termination, transfer, and assistance periods.",[145,399,401],{"id":400},"technology","Technology",[100,403,404],{},"Use repositories and cloud accounts the company controls, and set up automated testing, deployment, monitoring, backups, and regular restore drills, so knowledge does not live only on someone's personal computer.",[145,406,408],{"id":407},"operations","Operations",[100,410,411],{},"Designate internal product and system owners, keep a backup vendor contact, and regularly update the system inventory, access rights, and disaster recovery procedures.",[108,413,415],{"id":414},"legacy-system-takeover-frequently-asked-questions","Legacy System Takeover: Frequently Asked Questions",[145,417,419],{"id":418},"can-a-system-be-taken-over-without-its-source-code","Can a system be taken over without its source code?",[100,421,422],{},"You first have to recover the source and the rights to it; if only executables exist, you usually need to keep the environment running or plan a replacement, and safe modification is difficult.",[145,424,426],{"id":425},"can-a-legacy-system-with-no-documentation-be-taken-over","Can a legacy system with no documentation be taken over?",[100,428,429],{},"Yes, but rebuild the minimum knowledge from the code, data, logs, and interviews before making changes.",[145,431,433],{"id":432},"should-a-legacy-system-be-refactored-or-rewritten","Should a legacy system be refactored or rewritten?",[100,435,436],{},"Decide based on whether it can run, its risks, and how the business has changed; in most cases, you can start with partial refactoring or incremental replacement.",[145,438,440],{"id":439},"how-much-does-a-legacy-system-health-check-cost","How much does a legacy system health check cost?",[100,442,443],{},"An initial health check typically costs about NT$50K to NT$200K, depending on size and how complete the data is.",[145,445,447],{"id":446},"how-much-does-monthly-maintenance-for-a-legacy-system-cost","How much does monthly maintenance for a legacy system cost?",[100,449,450],{},"For small to mid-sized systems, typically about NT$30K to NT$150K; SLA and how scarce the technology skills are affect the price.",[145,452,454],{"id":453},"how-long-does-it-take-to-take-over-a-legacy-system","How long does it take to take over a legacy system?",[100,456,457],{},"An initial inventory takes about 2 to 6 weeks; establishing a baseline for safe modification depends on the environment and risk.",[145,459,461],{"id":460},"can-ai-help-make-sense-of-legacy-code","Can AI help make sense of legacy code?",[100,463,464],{},"It can help with summaries, documentation, and draft tests, but engineers must still verify business rules and security.",[145,466,468],{"id":467},"is-rewriting-always-better-than-maintaining-a-legacy-system","Is rewriting always better than maintaining a legacy system?",[100,470,471],{},"Not necessarily; a rewrite also carries the risks of missed rules, data migration, and go-live.",[145,473,475],{"id":474},"how-can-we-avoid-ending-up-with-an-unmaintained-system-again","How can we avoid ending up with an unmaintained system again?",[100,477,478],{},"Make sure rights and accounts are transferable, and establish testing, deployment, documentation, backups, and an internal owner.",[145,480,482],{"id":481},"what-should-we-prepare-before-a-new-vendor-takes-over","What should we prepare before a new vendor takes over?",[100,484,485],{},"Prepare the code, accounts, data, domains, third-party services, contracts, a list of issues, and workflow contacts.",{"title":487,"searchDepth":488,"depth":488,"links":489},"",2,[490,491,499,500,501,502,503,508],{"id":110,"depth":488,"text":111},{"id":139,"depth":488,"text":140,"children":492},[493,495,496,497,498],{"id":147,"depth":494,"text":148},3,{"id":154,"depth":494,"text":155},{"id":161,"depth":494,"text":162},{"id":168,"depth":494,"text":169},{"id":175,"depth":494,"text":176},{"id":182,"depth":488,"text":183},{"id":221,"depth":488,"text":222},{"id":295,"depth":488,"text":296},{"id":364,"depth":488,"text":365},{"id":389,"depth":488,"text":390,"children":504},[505,506,507],{"id":393,"depth":494,"text":394},{"id":400,"depth":494,"text":401},{"id":407,"depth":494,"text":408},{"id":414,"depth":488,"text":415,"children":509},[510,511,512,513,514,515,516,517,518,519],{"id":418,"depth":494,"text":419},{"id":425,"depth":494,"text":426},{"id":432,"depth":494,"text":433},{"id":439,"depth":494,"text":440},{"id":446,"depth":494,"text":447},{"id":453,"depth":494,"text":454},{"id":460,"depth":494,"text":461},{"id":467,"depth":494,"text":468},{"id":474,"depth":494,"text":475},{"id":481,"depth":494,"text":482},"Technology Insights","/images/blog/legacy-system-takeover-guide.webp","2026/08/27","The original vendor is unreachable, the engineers have left, and nobody dares touch the system? This article walks through how to take over an orphaned system: code health checks, criteria for refactoring vs. rewriting, typical costs, and how to prevent it from happening again.","md",[526,528,530,532,534,536,538,540,542,544],{"question":419,"answer":527},"First confirm whether the source code and the legal rights to it can be recovered from existing servers, repositories, backups, or the original vendor. If only executables exist, you can usually only keep the environment running, rebuild interfaces, or plan a replacement system; safely modifying the original functions cannot be guaranteed.",{"question":426,"answer":529},"Yes, but the knowledge has to be rebuilt from the code, the database, interviews with operators, logs, and the actual workflows. Complete a health check and minimum documentation before committing to a scope of changes, so you are not working directly on top of unknown dependencies.",{"question":433,"answer":531},"If the core rules still have value, the system can be deployed, and the problems are concentrated, prioritize partial refactoring. Only consider a rewrite when the technology can no longer run, security cannot be remediated, or the requirements have fundamentally changed. In most cases, incremental replacement is possible.",{"question":440,"answer":533},"An initial health check typically costs about NT$50K to NT$200K, depending on code size, environments, databases, integrations, and the state of documentation. The output should include risks, dependencies, priorities, and follow-up options, not just a code score.",{"question":447,"answer":535},"For small to mid-sized systems, it is typically about NT$30K to NT$150K per month. Service hours, SLA, the number of environments, incident volume, and how scarce the technology skills are all affect the price. Major revisions and new features are usually estimated separately.",{"question":454,"answer":537},"An initial inventory may take 2 to 6 weeks; establishing a baseline that can be safely modified depends on testing, deployment, and risk. It takes longer when access is missing, the environment cannot be reproduced, or data rules exist only in users' heads.",{"question":461,"answer":539},"It can help summarize code, find dependencies, fill in documentation, and draft tests, but engineers still need to verify business rules, security, and actual runtime results. For sensitive code and data, confirm the tool policies and permissions first.",{"question":468,"answer":541},"Not necessarily. A rewrite takes on all the existing rules, data migration, and go-live risk again, and it easily misses exceptions accumulated over many years. If the legacy system is still stable, partial isolation and replacement are usually safer.",{"question":475,"answer":543},"Contractually, make sure the source code, accounts, and rights are transferable; technically, establish testing, deployment, and documentation; operationally, designate an internal owner, a backup vendor contact, regular backups, and handover drills.",{"question":482,"answer":545},"Prepare the source code, server and cloud accounts, databases, domains and certificates, third-party services, contracts, known issues, and contacts for users and workflows. If the materials are incomplete, clearly list the gaps as well.",true,{},"legacy system","/en/article/legacy-system-takeover-guide",{"title":95,"description":523},null,"en/article/legacy-system-takeover-guide","2026/07/28","blog","x29kne9Fnd0V56Bd0dnhUSuqw_oPIlLU3o-tlTbYh44",[557,562,567],{"slug":558,"title":559,"time":560,"cover":561,"need":548},"2026-system-maintenance-5-benefits-digital-assets","What Advantages Can System Maintenance Bring to Enterprises? Master 5 Key Benefits to Ensure Stable Growth of Digital Assets","2026/04/17","/images/blog/2026-system-maintenance-5-benefits-digital-assets.webp",{"slug":563,"title":564,"time":565,"cover":566,"need":548},"2026-enterprise-tech-whitepaper-software-orphan-and-system-refactoring","2026 Enterprise Tech White Paper: Software Orphan Projects and System Refactoring","2026/03/25","/images/blog/2026-enterprise-tech-whitepaper-software-orphan-and-system-refactoring.webp",{"slug":568,"title":569,"time":570,"cover":571,"need":548},"2026-digital-resilience-maintenance","2026 Digital Resilience: The Complete Guide to System Maintenance and Project Takeover-Ending the \"Software Orphan\" Crisis","2026/03/20","/images/blog/2026-digital-resilience-maintenance.webp",1792411073392]