移民項目充滿危險。
的第一個危險是,「這是昂貴和痛苦的。讓我們重建 這一切從頭開始,並實施任何新的想法或功能 任何營銷/管理/程序員使用結構化方法 等等等等...... 「這條道路通向滅亡,因爲
1)其工作的一個開放式的量,
2)沒有人真正知道什麼舊系統確實(看到的規格最近還好嗎?),因此你會最終重新發現舊系統在新系統上線後的狀況,對組織的能力做出巨大的痛苦和損害新的軟件。通常實際上,新系統從來沒有趕上舊系統,所以重寫會死亡。
做這種遷移的正確方法是:堅持只留下功能,並轉換現有系統。沒有新的好東西,功能,方法。
這種堅持有其自身的麻煩:組織在遷移發生的窗口期間經常必須爲了生存的原因做出一些更改 。
爲了處理這個問題,您確實需要一個自動遷移工具,以便「無功能更改」規則僅在實際轉換過程中適用,因此越短越好。對於遷移工具的開發人員來說,花一些時間來構建它並徹底測試轉換工具是可行的;同時,該組織可以通過其常規方法來增強遺留系統。當遷移工具準備就緒時....拖動觸發器,轉換代碼,修補問題並測試結果系統的有效性。
系統遷移後,您可以考慮徹底重組或重新塑造,並知道基本功能仍然健全。
無論您選擇什麼樣的自動遷移工具,您都需要注意它生成的代碼在新環境中可以維護。許多轉換器真正實現了一對一的轉換,所得到的代碼最終被遺留在新的條形碼中,或者在幼稚的COBOL到Java轉換後被笑稱爲「JOBOL」。轉換工具必須精通它如何映射語言結構。(您可能想閱讀關於PL/1 To Java Conversion的SO討論)。
你最大的麻煩很可能是「測試」。目前的系統有完整的功能測試,對吧?呃,你有沒有有什麼功能測試?您將如何驗證新系統是否實現了舊系統正確執行的操作?
這裏的正確答案是構造就其輸入輸出行爲而言測試遺留系統,並將這些測試應用於遺留系統和遷移遺留系統。這是很多工作,沒有人願意這樣做,更不用說爲此付費了。這是遷移失敗的第二種方式。
發生的最後一件事情是,管理層悲慘地欠缺和承擔了做這項工作所需的工作。通常與開發團隊的談判是這樣的:
Mgr: How long to do this?
Team: Two years...?
Mgr: BZZZT! Wrong answer, try again...
Team: One year?
Mgr: BZZT! ..
Team: (Gulping) 6 months?
Mgr: OK, get started.
你注意到這裏的工作沒有實際的討論。
在6個月結束時,指尖將開始。經理:「我問過你們,你們說6個月......」
你正在艱難地騎。仔細準備。堅持讓人們真正列出所有問題,並且他們產生可信的估計。如果你第一次進行移民,你沒有好的基礎來做出這樣的估計;如果它是該組織的第一次,它沒有任何基礎來判斷是否有任何估計是正確的。
(全面披露:我有偏見我一直樓宇自動化遷移工具,22年檢查出B2 migration。)
讓我知道如果這個問題需要一些更新...這可能使這更有價值。 – Rachel 2010-05-13 22:05:38
爲什麼遷移到第一個地方?如何升級到CF9並使用現代CF MVC框架將過時代碼重構爲CFC? – Henry 2010-05-13 22:09:29
遷移是一項需求,因此需要完成遷移。 – Rachel 2010-05-13 22:13:33