2012年9月18日星期二

沒有「速成解決方案」這種東西!!

<沒有銀彈>(No Siliver Bullet)是IBM大型電腦之父Fred Brooks在1987年所發表的一篇關於軟體工程的經典論文。該論文中強調真正的銀彈並不存在,沒有一種單純的技術或管理上的進步,能夠承諾在10年內大幅提高軟體工程的生產率、可靠性和簡潔性──複雜的工程問題無法靠簡單的答案來解決。

我已經厭煩了總是聽到大家說沒什麼想法或完全不知道該用什麼方式,才能將創新的想法或產品概念落實於市場現實中──我主要是指那些膚淺、能言善道且油腔滑調的學者與政客。

不知為什麼,他們總是暗示一些很棒的想法──「靈丹妙藥」和「銀彈」(magic bullet or silver bullet)似乎正成為時下流行用語──往往能夠披荊斬棘,為我們帶來能夠直接解決一些不愉快問題的速成方案。儘管很多時候一種很好或很妙的想法真的能夠改變遊戲規則,但要使這些想法成為可實際運作的解決方案往往並不像它聽起來的那麼容易或簡單。

事實上,導致問題發生的原因往往並不單純只有一項,因此也沒有一種所謂的快速方案能夠真正完全解決問題。所有的事物都是一個系統,除非從頭到尾分析完整的過程,否則也沒法知道在哪一個環節能夠為你帶來最佳的表現。遺憾的是,大部份的人只試著在解決一種現象,而非問題本身,而這或許能帶來暫時的滿足,但卻無法根治惱人的問題。

在日前舉行的Design West大會上,我有機會與Energy Micro公司業務副總裁Raman Sharma聊到了該公司的超低功耗EFM32 Gecko微控制器產品。他除了展示有關的能源利用資料以外,讓我特別注意的是他清楚的解說了未來能儘量縮減電源/能耗的多種技巧。(我確信其它供應商也採用了一些或很多同樣的想法,但Raman把相關產品概念全部都集中在一個清楚的列表中,真是獲益匪淺!)

 ‧低主動功耗
 ‧在任何主動模式下儘量減少使用時間
 ‧非常快速的喚醒時間
 ‧超低待機電流
 ‧自主週邊設備(計時器、ADC)作業,以避免CPU介入的必要
 ‧週邊設備間直接進行傳輸訊號,無需CPU介入
 ‧多種能源使用模式
 ‧低功率I / O週邊
 ‧CPU處於睡眠狀態時,ADC和相關支援元素啟動作業
 ‧讓設計者觀察並微調能源利用的開發工具

這已是個老掉牙的故事了,但卻往往被掩蓋:就算是真正如法寶一樣的想法也需要經過激烈的競爭、對於細節嚴格檢視,加上解決所有第一、第二、甚至第三級的問題後,才能取得成功。

想想在貝爾實驗室(Bell Labs)於1948年開發出鍺接點電晶體,以及最終實現量產的分離式元件(或首款IC)及其如何成為當今元件等等其間的所有發展步驟。你也可以仔細研讀Jim Williams在1976年的文章,探討如何在MIT Nutrition Lab進行高精確度的類比電路設計──他有系統地確認、瞭解並最小化許多細微的錯誤資源。(如果你還需要更多重新思考想法和實現之間的,請參考我的建議書單;幾乎在我的清單中的每一本書都可為你提供一些想法。)
你是否曾經落入一種「採用這款快速方案吧──其餘的應該都沒什麼大不了」的陷阱?而這是你單純設定好的「法寶」嗎?還是其它人提供給你的「秘笈」?



參考原文:Sorry, folks, there is no 'magic bullet' solution here,by Bill Schweber

没有评论:

发表评论