February 25, 2006

技術本身與道德無關;它沒有是非對錯

這幾天為了一些專案,又是開會又是加班,產生嚴重的無力感,是阿,都花這麼多時間工作了,為何產品的質與量沒有獲得提昇呢?昨天閱讀 Jim Turley 的文章 [程式修補週期令人抓狂] ,讓我想到,這些產品背後的資深經理、專案管理人、軟硬體與韌體工程師,與廣大的企劃與行銷人等,究竟有無聽到使用者的心聲呢?我們都知道 Jim Turley 抱怨的對象就是 Microsoft Windows 一類的「通用性」系統,還有充斥於我們周遭的那些電子設備。

誠如 TI 總裁暨執行長 Rich Templeton 在今年 3GSM World Congress 上的說法:「行動電話將成為市場上最重要的消費電子產品」,身處於世界手機使用密度最高的台灣,更是有這種感覺,Rich Templeton 也在演講中提到:
    「... 無論肯亞的農夫、柏林的執行長或東京的青少年都將感受到手機對生活的影響,因為行動電話正在跨越文化、社會、生活方式和經濟的界限。... 行動電話正朝著下個階段邁進,它們將提供更強大的通訊和娛樂效能,以及更便利、更具彈性和更高利潤。 ... 未來行動電話將變得更個人化,並成為家庭和辦公室的延伸。」
這個概念說起來簡單,真的要作實在困難重重,特別是現在的企劃與市場開發研究員的「豐富」腦力激盪,常令實地開發的工程師膽顫心驚。幾年前就有人希望手機能內建 camera,當時被不少觀察家嗤之以鼻,然而,放眼望去,中高階手機都內建 camera,甚至還用這個特徵來界定中低階手機的分野,想來真是奇妙。照相手機目前有CCD 和 CMOS 兩種呈現技術,前者在圖像品質佔有優勢,而後者辨識率、耗電量和成本考量佔優勢,這是一般使用者的認知,然而,將這些 camera 整合進對資源錙銖必較的手機,真的這麼容易?

即便是業界紛紛提出「多媒體處理器」的解決方案,都還有許多基本卻又難以掌握的因素,阻撓產品現身的時程,Mentor Graphics 在過去就遇到多個來自韓國高階手機機種設計時,在 ASIC 層面遇到因潛在的 interrupt 讓系統陷入 starvation 的致命問題,前前後後造成的財務損失與開發資源的投入,都難以計數,而強調 "time-to-market" 的這些電子裝置開發流程,不僅要面臨 camera 這類高技術的挑戰,還要面臨從過去 legacy system 就有的議題:功能需求越來越多、開發方式沒有明顯突破,但時間卻越來越短,所以品質也成為不定時的炸彈。

硬體自出貨後,除非全面回收外,就不可能更動,所以硬體工程師擔負的責任異常重大,我想,這也是為何在網路上可以看到不少軟體工程師對專案開發的抱怨或揶揄,但鮮少看到來自硬體工程師的說法,或許就是因為他們加班都沒時間了,哪有閒情再來訴苦 (*笑*),相對的,軟體層面的更新被視為可接受的例行性動作,無論軟體設計設計初期採用了哪一位軟體工程大師的「聖經」,並且貫徹 CMMI 流程,當來自與週邊硬體整合的複雜性介入、涉及在理論與實務性已知的技術盲點,以及時程推動的 deadline killer,軟體在方面是無助的,於是一系列的 patch 或 workaround 是必要的手段,更別說來自客戶理性或非理性的要求,這些都是對技術的嚴厲的考驗。然而就如 Jim Turley 所說:
    持續不斷地升級也令人反感。有一天,你的電視 (或者VCR、MP3播放機或手機) 本來用得好好的,可是第二天它就完全變樣了。不是真的壞掉,但就是不一樣了。螢幕顏色變了,項目單換了,選項被重置了。這可能任何時候都會發生,與你所做的任何事都徹底無關。怎麼如此怪異呢?修補錯誤程式碼成為一種生活方式。簡言之,「第一次就讓它正確」成了奢望之言。在現實中,我們要買的東西鄉--也許要生產的,產品總是伴有缺陷。但修復那些缺陷絕不應是強制性的,絕不能是偷偷摸摸的,而且也絕不能是不可取消的。
儘管技術本身與道德無關,但是執技術牛耳的那些廠商,還是得以道德的途徑,解決技術問題,他繼續說:
    我們不能真地譴責技術。技術本身與道德無關;它沒有是非對錯。該譴責的是那些負責指揮掌管技術工程師們的經理人。他們 (還有我們) 必須抵制「在下一個版本中修復它」的衝動。不,產品應該是現成可用的,老弟。那是客戶付錢給你的原因。如果它不能如一開始廣告宣傳般那樣運作的話,他們絕對有權退回產品。
下筆之際,週末我還在台北內湖思考 MPEG-2 Decoding 的 instruction-level optimizations,在心頭的思緒圍繞著「不能徹底發揮硬體效能的軟體是罪惡的」這個概念,持續追蹤系統的效能瓶頸。廣為人知的 Intra 8x8 / Inter 8x8 IDCT 運算,就如 video coding 的教材提到:
    Performs VLC decoding of DCT coefficients for one intra 8x8 block, dequantization of coefficients, inverse DCT and storing of resulted 8x8 block to destination.
就算這個部份已達到 optimal,對系統效能造成衝擊的還有太多因素了,這些都不是學者會提到的議題,因為沒有高度的學術價值,但是我們都必須以既有的技術,作為克服種種威脅效能、功能,或品質等「病毒」的利器,因為,我不想讓這些「技術議題」造成日後的「道德問題」。這是軟體工程師不得不面臨的問題,尤其是從事消費性電子裝置開發者,更需設身處地,只有更多的付出,才能創造更高的價值。

自勉!
由 jserv 發表於 February 25, 2006 05:53 PM
迴響
發表迴響









記住我的資訊?