有軟體工程研究指出,在實務的軟體產業中,其實軟體維護(Software Maintenance) 的工作佔了75%軟體公司營運的代價(ownership cost)。而在軟體維護的工作內容中,追蹤程式碼,也就是程式的理解(program comprehension)來找到有問題的程式碼進行修正或是擴充,更是占據了開發人員主要的時間(40%-60%)。在軟體工程的實踐中,技術文件(technical documentation)對於維護工作來說,應該扮演著舉足輕重的角色。技術文件的主要目的是知識的傳承(System Knowledge transfer),理論上好的技術文件實踐可以讓不熟悉此專案的開發人員,花費最少的時間成本,來了解該系統的架構及執行細節,進而更快速地解決維修的工作。即便是熟悉該專案的人員,在程式碼快速變動的過程中,良好的技術文件實踐可以更有信心,更正確地進行系統的擴充與維護。很不幸地,軟體工程技術文件的實踐,一直以來都惡名昭彰地充滿了很多實踐上的困難。針對這些困難,計劃主持人提出一個嶄新的軟體工程工具GeekyNotes,一個Software KM tool。其目的在解決許多技術文件的維護及管理上的問題。GeekyNotes所提倡的關鍵想法為:(1) 需要透過在程式碼及文件插入任何的資訊,即可完成程式碼與文件的雙向連結,且在看最新版本的程式碼同時能夠直接看到過往的所有文件;(2) 經過數個版本後的專案,計算文件的有效程度,去評估文件是否已經過時,需要更新;(3) 提供一個名為追蹤案例(Trace Case)的方法,使用類似偵錯工具的概念,讓技術文件的製作與理解更貼近程式理解的大腦原理;(4)提供耦合標記功能,讓專案中複雜的耦合關係,能夠一目了然的管理維護;(5) 能夠計算專案的文件覆蓋率,為專案提供一個客觀的數字,開發人員可以快速地評量專案文件現況。目前GeekyNotes v1.0 正在導入於台灣T-公司。本計畫延續先前 GeekyNotes v1.0 的進展與成功,針對目前推廣導入過程中所觀察到的問題,提出新的解決方法,另外也提出了更多創新的想法,擴充新的功能以及獨特性,希望能藉由這些進展一舉解決技術文件在實務上的困難。