程式基底要可重複使用且可移植
編寫可重複使用且可移植的程式碼,讓政策制定者、開發人員與設計師等,能重複使用、測試與改善目前已開發的內容,並將改善貢獻 回程式基底中,如此可提高品質、降低維護成本、增強可靠性。
以重複利用為前提籌劃設計程式基底,更容易與多方共享程式基底的目標使命、願景與範圍等。多方開發與使用的程式基底, 更可以從能自我運作的社群中獲益。
以文件記錄周全的模組構成程式基底,能夠改善重複使用與維護的能力。以文件清楚記錄用途的模組,更容易在另一種情境中重複利用。
原始碼不依賴任何貢獻者、供應商或部署底下的特定情況專用基礎架構,則其他任何貢獻者都能測試該原始碼。
需求規定
- 程式基底「必須」開發成能在不同情境中重複使用。
- 程式基底「必須」獨立於任何採用保密、無法揭露、專有或非開放式授權的軟體或服務,以供執行與瞭解。
- 程式基底「應該」有多方單位使用。
- 發展路線圖「應該」有多方單位的需求影響。
- 程式基底開發「應該」由多方單位協作。
- 「應該」使用組態設定方式以將原始碼調整成能適應各情境的特定需求。
- 程式基底「應該」能夠在地化。
- 原始碼與其文件「不應該」包含特定情況專用的資訊。
- 程式基底模組「應該」以使其能夠在其他情境中重複利用的模式撰寫文件。
- 軟體「不應該」要求僅有單一供應商能提供的服務或平台。
測試方式
- 與另一組織單位角色與您相似的人確認,看他們是否能利用程式基底,以及需要怎麼進行。
- 確認程式基底不需要用到任何專有或非開放式授權的軟體或服務,就能夠執行。
- 若程式基底處於早期開發階段,尚未準備好正式上線,則檢查是否有想要尋求協作者的意圖跡象。
- 或是如果程式基底非常成熟與穩定,鮮少需要修正、改善或貢獻:
- 檢查是否有多方單位,或是有在多種情境下正使用程式基底。
- 檢查是否有以文件記錄協作所做出的成果,以及有編列相關預算。
- 若是沒有,則:
- 檢查是否有多方單位,或是有在多種情境下正使用程式基底。
- 檢查程式基底貢獻者是否來自多方單位。
- 或是如果程式基底非常成熟與穩定,鮮少需要修正、改善或貢獻:
- 檢查程式基底檔案與送交版次歷史紀錄中,不包含特定情況專用的資料。
- 檢查軟體是否可以在不使用單一供應商服務或平台的情況下,正常部署與執行。
公共政策制定者:需要的工作
- 為您的政策撰寫清楚且足夠詳細的文件,讓他人即使不是處於同個原始背景情境也能夠理解。
- 確保程式基底有將貴組織單位列為已知使用者。
- 找出貴團隊想要協作的其他組織單位。
管理人員:需要的工作
- 確認利害關係人與業主能夠瞭解,程式基底是以重複利用為明確目標,因而得以減少程式碼技術債,並讓程式基底可以永續發展。
- 確認您的團隊與其他團隊能相互協作。
開發人員與設計師:需要的工作
原始碼應該設計成:
- 能讓其他使用者與組織單位可以重複利用,而不受地方環境影響,
- 能解決通用性質問題,而非特定問題,
- 以邏輯上具有意義且獨立的模組構成,
- 如此讓類似組織單位中要面對近似問題的人,都可以採用這套解決方案(或其中一部份)。
確保程式基底文件中,有說明程式的組建日期與執行時期的依賴項目。如果您的情境需要部署至專有平臺上,或者要用到專有組件,則請確保協作者可以在不用到這兩者的情況下,就能進 行開發、使用、測試、部署等。
在每份送交版次中,審查人員要確認其中不含特定情況專用的資料,像是主機名稱、個人與組織單位資料、代符與密碼等。
延伸閱讀
- 英國政府數位服務團《讓原始碼開放且可重複利用》。
- W3C 全球資訊網協會《在地化與國際化》。