But,就是那個 But,這世界上有一種軟體,是很難先做出 working software 的。這種軟體都是全有全無,只要做出會動的,就相當於做完了。那種軟體叫做系統程式,如編譯器、作業系統、與資料庫系統。
這種軟體都有下列特色:
資料模型的重要性遠大於演算法操作
用很潮的講法就是,MVC 三項開發的成本都集中在 Model 身上,Model 沒開發完成之前,View 跟 Control 都沒辦法開發。
舉例來說好了,編譯器最重要的部分是 intermediate representation (IR),在 IR 沒有設計出來之前,其他所有的演算法都只是空中樓閣,只能想想不能做。
當初在設計 MCLinker 的時候就被主管問過,為什麼不先做出一個功能,然後再做出下一個。當時我的回答是『如果可以,我當然會這樣做。可是 Linker 這種東西,就只有一個功能 - linking,只是要做到這個功能需要許多特殊的資料結構,而資料結構需要大量時間』
因此系統程式的開發,是很難先有 working software 的。
那麼系統程式的開發就不能使用敏捷式開發?其實可以,只是這個 working software 的意義有所轉變,是靠 release engineering 來替代 working software。
...To Be Continue...
沒有留言:
張貼留言