程式設計要看多遠 (近) ?
這裡指的當然不是眼睛到螢幕的距離。
寫程式跟一般日常生活一樣,要做各種各樣的決定。但是這些決定,跟選陽春麵還是滷肉飯之類的一個很大的不同,就是不管做對做錯,都很難走回頭路。所以越資深的人,多半對設計的選擇會越來越謹慎,越來越遲疑,每一個關卡都好像要賭上人生一樣。
以前在前東家所受的教訓,幾乎所有的資深長官都說: 你要看的三五年之後的技術觀點;老實說,有一段時間我自己也是深信不疑的。不過到了現今,恐怕沒有多少人或企業有自信可以看得這麼長遠了,技術的變化速度實在太快,而程式交付的時間越來越短。迫於現實,一些技術的參數能決心定下來就不錯了。
兩難的是,很多東西一旦訂了,水就潑出去了,而且還不是甚麼高深的演算發之類的決定。我的周邊,還有很多早期因為需求簡單,使用 ANSI encoding 的程式,到了現在想改成 Unicode,不是自己碰到很難了解有多難改。另一個典型的基本設計問題,是要繼續用 32 位元,還是轉成 64 位元。不要看那些大公司推 64 bit 程式不過一個版本的功夫,看來稀鬆平常,殊不知背後要花上多少人力和資源和辛酸血淚。
看來又是個無解的難題: 看得近了,後面要還債的機會極大;而看得遠,也是要看有沒有賭對,賭錯了,一樣下場悽慘。
我的心得: 人家說 「盡量不要欠技術債」,我倒是覺得欠債恐怕迴避不了,唯一能做的,是認清這個事實,然後盡量纂一些本錢,早點想想甚麼時候還。怎麼還。