系統上線時該拿到哪些東西?一份業主交接清單
系統上線那天,大家忙著確認畫面能不能用,帳號、備份和文件常被擱到後面。這些東西平常用不到,等到要換工程師或主機出狀況時才發現缺了,補起來很費工。下面是業主在上線時該要求拿到的清單。
程式碼放在哪裡,你有沒有權限
第一項是程式碼。你要知道程式碼放在哪個版本庫,例如 GitHub 或 GitLab 這類服務,也要有自己的存取權限。版本庫如果開在工程師的個人帳號底下,哪天換人接手,新工程師拿不到程式碼,只能回頭跟前一位要,要不到就得從頭重寫。
比較好的安排是版本庫建在公司的組織帳號下,開發方以成員身分加入。合作結束時,把對方的權限移除就好,程式碼和每一次修改的紀錄都留在公司手上。
資料庫和備份,要能還原才算數
資料庫是第二項。交接時要問清楚資料庫放在哪個服務,以及備份的做法:多久備份一次,備份檔存在哪裡。備份檔如果跟資料庫放在同一台主機、同一個帳號,主機出問題時,備份會跟著一起不見,所以備份要另外存放。
也建議請開發方示範一次從備份還原。備份檔存在,不代表還原得回來,檔案可能毀損,還原步驟也可能沒人記得,實際做過一次才知道。示範時你不用看懂每個指令,記下花了多久、還原後的資料是不是完整就可以。
主機、網域和第三方服務帳號
系統部署在哪個平台(例如 Vercel 或雲端主機)、帳號開在誰名下,要寫進交接文件,每個月的主機費用由誰付也要講好。帳號由開發方代管也可以,但你要知道轉移的方式,不然哪天雙方不再合作,系統會停在一個你登不進去的帳號裡。
網域和 DNS 設定也一樣。網域登記在誰名下、註冊商的帳號由誰管理,要寫清楚。目前 DNS 設了哪些紀錄,也要整理成一份清單。公司信箱和一些網站驗證都靠 DNS 紀錄運作,之後有人改錯一筆,信件可能就收不到。
第三方服務帳號很容易被忽略。系統常用到的有這幾種:
- 金流:綠界和 LINE Pay 的商店帳號
- 電子發票的服務帳號
- LINE 官方帳號
- LINE Login 的 channel
金流帳號連著公司的統一編號和銀行帳戶,電子發票也是用公司的統一編號開立,這兩項都應該用公司名義申請,開發方只拿串接需要的權限。另外像 LINE 官方帳號,擁有者應該是公司,開發方需要時再加進管理成員。
LINE Login 要多留意一點。透過 LINE Login 拿到的使用者 ID 是依 provider(服務提供者)區分的。如果 channel 建在開發方的 provider 底下,之後改用你自己 provider 底下的新 channel,同一位會員拿到的 ID 會不一樣,原本用 LINE 登入的會員資料就沒辦法直接對應。這件事要在開發初期就決定。
管理員帳號和角色權限表
上線時你應該拿到一份管理員帳號清單,以及一張角色權限表。權限表寫的是每一種角色能看什麼、能改什麼,例如櫃台能不能匯出會員名單,分店主管看不看得到另一間店的營收。之後有人離職或調職,照這張表調整帳號就好,不用每次問工程師。
開發期間建立的測試帳號,上線前要刪掉,或改成你知道用途的帳號。這類帳號的權限通常開得很大,留在系統裡沒人管,等於多了一個沒人看守的入口。
操作手冊和技術文件,兩份都要
文件要兩份,讀的人不同。操作手冊寫給員工,內容是每天要做的事怎麼操作,最好每個步驟都附截圖,新進員工照著做就能上手。技術文件寫給之後接手的工程師,至少要有環境變數清單和部署步驟。
環境變數清單列的是每個變數的名稱和用途,金流的金鑰這類實際的值要另外交付,不要寫在文件裡,也不要貼在聊天群組。部署步驟要寫到另一位工程師照著做,就能把系統重新部署一次的程度。
保固和維護約,上線前就寫清楚
保固的範圍要在上線前講好。上線後發現的問題,哪些算原本的功能沒做好、屬於保固,哪些算新需求、要另外報價,雙方的認定常常不一樣。可以拿需求書裡的驗收條件當依據:驗收條件寫到的功能出錯,算保固;需求書沒寫的,算新需求。
保固結束之後的維護約也是,範圍和費用要先寫清楚。維護包不包含套件更新、主機和網域到期時誰負責續約、每個月可以改幾次內容、多久內回覆,這些都要寫進合約。沒寫的部分,之後每一次都得重新談。
我們交件時的做法
次元創意做系統時選用主流技術,程式用 Next.js 和 React 搭配 TypeScript 撰寫,資料庫是 PostgreSQL 這套關聯式資料庫,系統部署在 Vercel 或雲端主機。這些技術會的工程師多,以後換人也接得手。
後台的操作會記錄下來,之後想知道某筆資料是誰改的,有地方可以對照。資料庫定期備份,備份檔另外存放。資料權限依角色設定,電話、病史這類個資欄位加密儲存。
交接當天可以對照的清單
- 版本庫的位置,以及你自己的存取權限
- 資料庫位置、備份方式、備份檔的存放位置,加上一次還原示範
- 部署平台與主機帳號,含付費方式與轉移方式
- 網域登記資料、註冊商帳號與 DNS 紀錄清單
- 金流與電子發票帳號,以及 LINE 官方帳號與 LINE Login channel 的歸屬和權限
- 管理員帳號清單與角色權限表
- 給員工的操作手冊
- 給工程師的技術文件,包含環境變數清單與部署步驟
- 保固範圍,以及維護約的範圍與費用
這份清單可以在簽約時附進合約,交接時逐項打勾。缺了哪一項,當場補比事後補容易得多。