最近進入一家非常傳統,歷史算是悠久的軟體公司,我們最強最強的是,有一個多年前用 BSDDB 在加值開發的全文檢索系統,還有一個自己刻的 Web Frame Work ,主要的功能,就像是 Django Admin 的功能,來簡化開發,用無數 template ,不斷的 include and include more template,這一種方式,和一般我們用的 template ( Django , Jinja , Mako )很不同,因為,總不知道,下一個 include file 又 include 了多少的 files ,在 template 裡也混用了一大堆的 code

系統越是了解,我越是疑惑,以前學的,不要亂擺程式邏輯,可以和 UI 設計師,完美合作, TDD,真的在業界適用嗎? 更另我震驚是

1. 沒有任何一個單元測試的程式,一行也沒有,所以當然 CI 也是沒有的 (雖然測試不是萬能,不過,一點也沒有,驚)

2. 沒有版本控制,由於,每個專案,都需一點客製化,不過,none version control 也是令我震驚 ( 難道這才是 Agile software development 的終極奧義)

3. Python version 2.2 and 2.4 對不同的產品版本 ( 內心 OS 真虧還有保留下來,我都 download 不到了,原來,這才是愛壓,真正的不離不棄 )

4. C 和 Python 裡,混用 tab 及 space 做縮排 ( 前輩,我知道,這就是考驗我 “火的意志” )

5. 我們用 RedHat , Fedora , CentOS , Solaris ( Debian user 內心 OS ,馬的,現在最通用的不是 ubuntu 和 debian 嗎? 不要跟我說,以前的人寫文件,寫的是 RedHat ,我以前的 server 還都是 FreeBSD 和 RedHat 壓,十年前,那時候,他們是最好的選擇壓 )

6. 由於,自己 rebranding 客製的 BSDDB 的 C extension 是在 unix 平台的,所以開發,都是用 ssh 連到內部伺服器,開 vim 開發,哈哈,可是第一次見到,這麼多人用 vim 來寫東西,不過,我想同仁應該也是迫於無奈 ;-)

是我一直都自以為是,什麼都要 do it right , do it simple ,也不竟,懷疑起來,台灣軟體發展現況真是這樣嗎? 我怕,不知道,我去說服同事,我們也可以這樣做,更簡單,可以快十倍,可以像葉問一樣,一打十,到底是對得,還是? 只是滿足自己,固執的個性,或是,好好把時間,花在自己想玩的東西上面,最需要自勉的是,在傳統的軟體,如果不是走消費端的服務,開發,只是,小小的一小塊,可能只佔整個公司不到 1/10 ,所以不要把自己過度的放大,還有第一線的客服,業務,企劃,系統,專案經理,產品經理,還有一大群協同運作的長官,及成員

另一點,最大的覺醒是,90% 的學校單位是我們客戶,還有無數多政府單位,只要和知識有關的,幾乎都是我們的客戶

PS: 最令人欣慰的是,同事人都超好,不厭其煩的向我解釋,這一個複雜的系統,要如何使用, code 要由哪裡 copy and rewrite ,光是,資深主管,資深同事,帶我的時間,還有內部溝通的訓練,加起來,短短來 2 個月,就應該超過一,兩個星期,這可是台灣老闆,最不願花的成本,連生日派對都是上班時間喔,是我待過教育訓練,最好的公司,前些時候,面試的一些公司,心裡也有許多心得,改天分享