關於系統開發中從舊系統遷移所伴隨的法律問題
在企業中,創建新的IT系統是IT工程師的主要職責範疇,然而,當本所說到「創建新系統」時,這裡往往也包含了「廢除原有系統」的過程。在本文中,本所將從「廢除舊系統」的角度重新審視開發新系統的項目,並對其相關的各種法律問題進行解釋。
何謂遷移到新系統
IT系統的壽命並非永恆
企業使用的IT系統,並非一旦建立就能永久使用。同樣的,一直保留並使用舊有的系統並不一定是最好的選擇。雖然每個企業和每個系統的用途都有所不同,但大致上,一個系統如果使用超過大約10年,就有可能需要做出更換新系統的經營決策。
10年的時間足以讓市場上的電腦性能產生巨大變化。例如,10年前由於電腦的處理速度等限制,一些(從人類角度看來設計簡單且優秀的)程式可能無法實現,但現在可能已經可以實現。此外,如果一個系統從建立開始已經使用了10年,那麼在這段時間裡,公司的業務流程和內部規則可能已經發生了很大的變化。為了應對這些內外部經營環境的變化,後期實施的程式碼可能已經變得非常複雜且結構錯綜複雜,以至於用戶無法從界面上識別。這樣一來,即使用戶有需要添加的功能,但從開發者的角度來看,可能已經無法再進行添加。
隨著系統的老化,可能會導致IT工程師需要進行更多的「手動操作」(例如發出查詢以提取特定數據等運營業務)。系統本身也會隨著老化,讓業務變得更加「人為化」。當一個系統變得過於陳舊,並且與之相關的業務變得越來越人為化時,本所可能會考慮對其進行進一步的「系統化」。這時,就需要開始「開發新系統以從舊系統遷移」的項目。
新系統的開發與舊系統的廢除並行進行
如前所述,雖然並非所有的系統開發項目都是如此,但在一個系統開發項目中,往往會同時包含從舊系統過渡到新系統的過程。系統本身往往會在某一天突然間切換。
然而,日常業務的進行應該是從過去到現在,從現在到未來的連續過程。在保留必要的過去數據的同時,不應阻礙當前業務的進行,並應提出優秀的「系統化」構想,面向未來。過渡到新系統往往伴隨著各種挑戰。這些情況的複合效應使得新系統的開發與現有系統的運營和維護等業務複雜地相互關聯,形成了密不可分的關係。
新系統遷移步驟是什麼?
從舊系統遷移到新系統時,特別重要的是要適當地遷移數據。數據遷移的步驟通常按照以下程序進行。
- 明確確定舊系統存儲的數據中,哪些數據應該遷移到新系統→應該從新系統的界面方便地搜索哪些數據,以及即使界面搜索不可行(例如在審計等情況下),但需要時可以提取哪些數據等區別也是必要的。
- 從第一步中確定的數據中,將需要導入新系統的數據以CSV文件等格式輸出。
- 將第二步中提取的數據導入新系統。
- 驗證第三步中導入的數據是否在新系統中反映,並確認是否正確遷移。→通常,通過顯示界面和打印報表來留下驗證結果的證據材料(所謂的測試過程)。
轉換至新系統的過程中,使用者與供應商的角色劃分困難
在前述的數據轉移步驟中,常常出現的問題是,使用者應該將其視為自家內部問題並進行管理到何種程度。此外,不僅限於數據轉移,對於系統開發項目全面的「使用者的合作義務」的概述,請參考以下的文章。
https://monolith.law/corporate/user-obligatory-cooporation[ja]
一般來說,在系統開發這樣的項目中,供應商確實在系統開發的專業知識方面往往優於使用者(或者更準確地說,這正是他們被委託工作的原因)。然而,另一方面,對於自家系統的「應有狀態」的討論,往往只有使用者才能進行。
基於這些考慮,本所可以考慮讓使用者進行前述的步驟1和4的角色劃分。換句話說,在整個數據轉移過程中,「需求定義」和「驗收」是否按照需求成功轉移數據,可以被視為使用者的合作義務。或者,另一種劃分方式是,如果使用者方有對該舊系統有豐富知識的人,也可以考慮讓他們負責步驟2。
如果不需要外包,並且可以在公司內部處理舊系統的問題,那麼可能會考慮只將新系統的問題外包給供應商。在這種情況下,數據轉移工作中,使用者和供應商的角色劃分有時可能會變得模糊。另外,當使用者將系統開發相關的工作外包給供應商時,通常會對供應商有何種角色期待,以及將承擔何種法律義務等問題的一般解釋,請參考以下的文章。
https://monolith-law.jp/corporate/project-management-duties[ja]
與新系統遷移相關的過去判例
在致力於新系統遷移的系統開發項目中,實際上存在著出現問題並導致訴訟的案例。以下引述的判決書案例中,數據遷移時遷移工作失敗,新系統中出現了多個數據不一致和錯誤等問題,並導致交付日期延遲。對於這些各種問題,供應商和用戶雙方在項目中各自承擔了何種義務成為了爭議點。結論是,法院確認供應商方面違反了應負的注意義務,並明確指出以下內容。
被告在基於本案承包合約的數據遷移業務中,不僅僅是將本案舊系統上的數據遷移到本案新系統,而且還承擔了使本案新系統運行的義務,具體來說,開始數據遷移業務之前,需要對本案舊系統上的遷移目標數據進行調查和分析,了解數據的性質和狀態,考慮該數據遷移到本案新系統後是否會阻礙其運行,如果會造成阻礙,則需要決定何時以及如何修正該數據,然後進行數據遷移業務(遷移設計,遷移工具的開發,數據的遷移),最終,被告承擔了使本案新系統運行的義務
這是合理的認識,在本案中,被告在數據遷移時,應負有修正和消除數據不一致的義務。
東京地方裁判所平成28年(2016年)11月30日
這個案例中,用戶方面承擔了步驟1和步驟4,而供應商方面承擔了步驟2和步驟3,這是原本應該進行的角色劃分。也就是說,供應商方面一度接手了從舊系統中提取數據(步驟2)。因此,法院也認為,如果供應商(作為系統開發的專業人員)接手了數據的提取,那麼他們應該事先考慮到是否能夠順利進行數據提取等問題。
然而,如果步驟2(即數據的提取)事先被劃分為用戶方面的業務,並且在提取工作中失敗,那麼情況又會如何呢?在這種情況下,可能會考慮到的是,由於用戶方面未能事先調查數據提取是否能夠順利進行,導致交付日期延遲,這次可能反過來追究用戶方面違反了協助義務。
此外,這種判斷並不僅僅基於契約,還會根據與系統開發進度相符的會議記錄等證據進行。關於會議記錄的重要性,本所在下面的文章中進行了詳細的解釋。
https://monolith-law.jp/corporate/the-minutes-in-system-development[ja]
總結
系統開發這樣的項目,無論是用戶端還是供應商端,都需要承擔許多義務,並且需要進行細緻的溝通。因此,在前述的法院判例中,只要前提條件稍有變動,責任歸屬可能輕易地在用戶和供應商之間反轉。
考慮到系統可能包含無法從外觀推測的龐大數據和複雜機制,以及由於微小的前提差異可能導致最終司法判決的結果大相逕庭,本所可以說,新系統開發項目的風險管理,應該與舊系統的廢除一同全面考慮。
Category: IT
Tag: ITSystem Development