邁向架構師的暖身運動 (8):不要小看 PoC 的重要性
自從自己出來當 SOHO 以後,幾乎所有的系統都是獨力完成的,但以前總因為時間因素,幾乎都沒有做什麼 PoC (Proof of Concept,概念驗證) 模型就直接上了,雖然系統成果是做出來了,但總是在後續維護上有一些限制或是不好用的地方,客戶雖然可以接受,但自己總是覺得缺了一點什麼。後來到了合作的 Consultant 公司後,被委任研發系統核心的功能,在第一個版本時因為都沒有做 PoC,結果成果很差,差到自己都無法接受的程度。
後來在第二個版本時,我說服了合作公司的主管,在時程控制上給我較大的彈性,讓我可以有充份的時間在定義和設計架構時,在每個重要的環節上加入 PoC 的原型設計和測試,證明可行才加入核心元件中,經過 PoC 驗證過的功能,在新的核心上都能充份發揮功能,尤其是最基礎的 Ajax + HTTP Handler + XSLT + XML 之間的核心資料驗證,如果這一層的話,所有後端的模組開發都會無法進行,因此光是這一個部份的 PoC 我就做了兩個多月,驗證適合的開發方式,同時還要考量要技轉給合作廠商的軟體開發部門,發展的方法不能太難,開發方式也要做 PoC,而這個部份就是配合模組的開發一起執行。
經過了這些事之後,如果是架構上的新嘗試,或是一個前人未做過,或參考資訊很少的想法/功能等,亦或是要將新東西併入原有的架構,只要涉及對架構的改變,都需要做 PoC,因為 PoC 可以驗證:
1. 使用技術的可行性 (例如 jQuery,HTTP Handler 以及使用者介面等)。
2. 想法實現時的可能問題或是限制。
3. 新技術的評估。
4. 測試架構的可行性與相容性。
所以如果未來你想要設計軟體架構,或是擔任核心系統的開發或設計工作時,最好不要一股腦就栽下去,花點時間做 PoC,會讓你在核心開發時可能會碰到的架構適應性更好,潛在的問題也會比較小。