軟體開發文件管理的簡單數學
伊藤潤二在其短篇漫畫《藏書幻影》中,描述了一位因為恐懼藏書遺失而決定將家中數十萬本書籍默記在心的書迷。不料,他記住所有藏書的內容後,卻沒有留下絲毫空間給自己的回憶與判斷力,只能終日在書堆中,眼神空洞地翻閱書頁、喃喃自語。
在軟體開發領域,我們同樣面臨對於遺忘的擔憂。需求分析、風險評估與架構決策等資訊,在開發過程中逐步累積,既是團隊經驗的傳承,也是產品應稽的依據。因此,各企業透過各式各樣的文件,紀錄程式碼以外稍縱即逝的寶貴思想與知識;對於醫療檢測產品,政府單位也提供了文件撰寫指引,詳細列出文件應具備的項目,以確保產品的安全性。
然而,市場變化與需求異動帶來的時程壓力,也使得團隊陷入開發延宕的恐慌。長期看來,文件固然能提供產品與團隊價值,但是撰寫文件往往是吃力不討好的工作,一方面它不直接改進產品功能,另一方面撰寫文件的努力不亞於軟體開發本身。因此,在迫切需要功能實現或障礙排除時,文件往往是首先被犧牲的項目。
依照我的經驗,對於如何撰寫文件的倡議,往往基於對內容的保障,未必會考量到維護齊全文件的成本。於是,團隊因為文件與開發的衝突,在棘手的情境間左右為難:要不因為害怕遺漏資訊而導致開發遲滯,又或憂懼逾期交付而造成紀錄不全。
因此,在這篇文章中,我嘗試跳脫基於儲存資訊的文件框架,加入一些專案管理的觀點,來思考解決兩者衝突的策略,從而避免過時、錯誤或不全等貶損文件價值的不利因素。