[書摘] 賈伯斯對產品缺陷的危機處理

「賈伯斯傳」中譯本有一小節-「天線門:設計與工程的對立」,提到 iPhone 4 因為重視外觀的視覺效果與質感,所以將外框加上不鏽鋼邊框。因為讓不鏽鋼邊框充當天線,邊框就必須留一條小縫,但如果一個人握著手機時,手指蓋到這個縫或是出手汗,不鏽鋼邊框就會形成了法拉第屏蔽,天線的訊號就會減弱。

而後《消費者報導》雜誌進行實際測試,宣稱因為天線問題,無法推薦消費者購買iPhone 4。這個天線問題終於正式浮上檯面,釀成危機。

一般的執行長遇到這類因產品缺陷所採取的標準化做法就是:向大眾道歉,然後可能就大規模回收產品,然後不僅損失了龐大的金額,也連帶賠掉了信譽。

賈伯斯對此問題展開了危機處理,首先他找了在廣告界的老朋友,同時也是大師級克洛與公關教父麥肯納還有蘋果公司的公關主任一同開會,商討該如何應對這個難題。

結果麥肯納一副老神在在的樣子,直截了當說:「就是把事實、數據公布出來。別擺出自大的樣子,但是看起來要堅定、要有自信。」而其他人則希望賈伯斯能採取低姿態,但麥肯納反對:

「沒有必要,這樣會讓人覺得你好像做了見不得人的事,心裡有愧。你只要說:『手機不完美,我們也不完美。我們只是凡人,但是我們會盡最大的努力。接著,請看數據。』」

閱讀全文 »

[影片] 丈量世界 (Measuring the world)觀後心得~熱情觀察與學習

丈量世界 (Measuring the world) 片  名:丈量世界 / Measuring the world
導  演:德勒夫巴克 (Detlev Buck)
主  演:佛洛里昂大衛費茲 (Florian David Fitz)
     卡爾馬可維奇 (Karl Markovics)
     大衛克羅斯 (David Kross)
發行公司:絕色國際, Boje Buck Produktion
類  型:劇情
片 長:123分鐘
語言:德文
【劇情簡介】
德勒夫巴克導演,改編自德國作家丹尼爾凱曼,刷新二次大戰後文學銷售紀錄的暢銷同名小說。

揭開山脈與星空的真相,需要的是一枝筆還是一支船隊?天才與頑童的冒險丈量,即將展開……

兩位德國青年一起在十八世紀末以自己的方式「丈量世界」。被譽為「哥倫布第二」的探險家亞歷山大‧封‧洪堡(1768-1859)親赴原始森林深入奧利諾科河中以身試毒,他計算土著身上的頭蝨,更在探勘洞穴與攀登火山之中歷經萬種險境,不僅親眼目睹了海怪出沒,亦與食人族相聚同歡;而數學家及天文學天才卡爾‧費德烈‧高斯(1777- 1855),僅在自家屋中即可證明空間為曲面的景況。沒有女人就活不下去的他,在新婚之夜竟不顧嬌妻從床上一躍而下,只為了記下靈光乍現的公式。

時至一八二八年,年事已高的兩人同享學術盛譽,各自有其獨特個性與脾氣的他們首次於柏林相見,卻被捲入拿破崙戰敗後混亂不堪的德國政局。一場精采絕倫的天才頂尖對決,揭示了截然不同的世界觀點,在人性廣大的渴望與脆弱之中,巧妙結合史實與豐盛的想像力,哲思滿載直抵內心最深處。

這部德國出品的德語片,是改編自德國作家丹尼爾.凱曼(Daniel Kehlmann)的暢銷小說-丈量世界

影片同時描述著兩位主角-探險家 封‧洪堡 (Alexander von Humboldt)與 天才數學家 卡爾‧費德烈‧高斯(Carl Friedrich Gauß)的一生。

兩位主角洪堡出身於貴族世家,而高斯則是出身於一般階級的貧寒家庭;兩位主角只有在小時候曾有一面之緣,那是高斯的數學老師為尋求洪堡的貴族世家贊助宮廷獎學金時,而後兩個各自在不同的領域、不同的世界持續追尋著他們的理想,直至一甲子後洪堡自美洲返回普魯士(當時的德國),並希望與已成為當代大師的高斯見面才又重逢 (但洪堡卻忘記他小時有見過高斯)。

洪堡好動,喜愛探索未知的世界;高斯好靜,只喜歡待在家裡研究自己的數學。這兩個人好像是生活在不同的世界,但其實他們都有著當代大多數人所沒有的特質-熱情、觀察、體會與分享。

所以,看完影片後,我總算了解為何片名取名為「丈量世界 (Measuring the world_」!? 因為洪堡用行動來丈量這個世界,而高斯則是用數量來丈量這個世界。

閱讀全文 »

[活動記實] 讀書會~Clean Code (無瑕的程式碼)@加爾第咖啡

** 所有相關活動的完整照片,可至-「2013.05.18_Clean Code 讀書會」Flickr 相片集瀏覽。 **

上上星期六 (5/18) HSDc. 所舉辦的「Clean Code (無瑕的程式碼) 讀書會」,在相當熱絡的研討與歡樂的氣氛下,圓滿落幕了。

「Clean Code」中譯本的技術編輯(Simon, 博碩文化)也特別蒞臨此次的活動,與會過程中不只用心地回應讀者許多問題外,還分享了在翻譯該書時的用字遣詞,以盡能表達出原文的意境,實在相當感謝他能為業界翻譯如此高品質的譯本。還有,他也為讀友們帶來一項福利,在博碩的粉絲團內按個「讚」,就有機會抽中「Clean Code」原版書籍,定價可是 NT$2,200,不便宜呢。

這次讀書會的導讀與主持不得已就由我個人來擔任。我把時間安排大致分為讀書內容的心得分享、問題提問、自由討論。

一開始先作個腦力激盪 (brain storm),這裡我用心智圖 (mindmap)先整理出關於「Clean Code」的 5W-What, Why, When, Which, Who。雖然看來僅是簡單的整理,但讀友們大都發言踴躍,在分享一些對「乾淨的程式碼」的看法與心得,以及一些問題討論,這樣也討論到中午 12:40 才休息,大家各自用完中餐後,下午 1:30 繼續研討。

Clean Code 心智圖

下午整個主題就完全以書本大綱內的「How-to」為重心了,一章一章地討論大綱內容。畢竟作者就已開宗明義內提及:「小事情上誠實,可不是一件小事。」;同時又提到:「神 (我以為是魔鬼?)就在細節內。」。所以,程式碼當然就要回歸到「How-to」細節內,這可是不能眼高手低的。

事實上,這本書大概到第 10 章就足夠了,後續的內容,有其他作者撰寫的、有作者早期的論文,也有從「Refactoring」一書節錄的重構型錄,許多內容其實翻過就可以了。(不過看來我最認真!? 關於第14章-「持續地精煉」,我可是逐行閱讀其程式碼,整整花了三個晚上還不容易了解內容,直至與 Ringle 討論過後,他認為該範例還是不夠「Clean」,仍需要繼續「精煉」。 >_<) 即使只研讀到第10章左右,但也不容易,直到下午約5:00結束時才勉強「翻完」,其實仍是有諸多細節尚未討論的。不過也算是盡心了,讀友們的發言夠是踴躍了,也相信有許多研討的內容對未來他們的工作,在長期上會有相當體會與助益的。 讀書會@吳興街加爾第咖啡

閱讀全文 »

[好書分享] Clean Code~無瑕的程式碼

無瑕的程式碼:敏捷軟體開發技巧守則 無瑕的程式碼:敏捷軟體開發技巧守則 (中譯本)
Clean Code: A Handbook of Agile Software Craftsmanship
-----------------------------------
作者:Robert C.Martin
譯者:戴于晉、博碩文化
出版社:博碩
ISBN:9789862017050
Amazon 評鑑:四顆半星

內容簡介
本書的原文書名為《Clean Code: A Handbook of Agile Software Craftsmanship》,根據作者的說法,《無瑕的程式碼》為Jolt得獎著作《敏捷軟體開發:原則、樣式及實務》的前傳。

在台灣另一本銷售極佳的書籍《重構─改善既有程式的設計》,根據亞馬遜Amazon網站的統計,購買該書原文版《Refactoring: Improving the Design of Existing Code》,又同時購買的其他書籍第一名,正是《Clean Code: A Handbook of Agile Software Craftsmanship》這一本書。

.第一章
作者開宗明義說明什麼是 Clean Code,他詢問了包含C++發明人 Bjarne Stroustrup、Eclipse 策略教父 Dave Thomas、極限程式設計大師 Ron Jeffries、維基與極限程式設計發明人,Ward Cunningham 等等的大師,從他們的眼光來描述什麼是 Clean Code,最後才說到作者本人認為的 Clean Code 應該長成什麼樣子,有什麼好處,以及學習撰寫Clean Code的基本原則。

最早知道這本書大約是前年 Ringle 已購買的原版書籍,並發現他常在課堂教授的空檔就津津有味地細讀該書,我想會吸引他如此認真閱讀絕對非同小可。不過當時我拿來略翻一下,有太多生活化的白話字彙 (如同極致軟體系列,但卻又更厚上太多),要翻查這些生字太吃力了些,故而放棄閱讀原文。沒想到國內出版社今年有相中該書,將之翻成中譯本,而且許多專業字彙還保留了原文的對應 (我很習慣軟體的原文字彙),讓我得以在兩個星期內就看完本書,而且到第10章以前 (約一半),可是逐字細讀。第10章以後,總感覺有些雜燴,有些是其他作者的論文,有些是原作者早期的文章,有許多主題已經是偏向程式開發領域的技術性議題,用來解釋「Clean Code」,我是覺得反而沒必要細讀,大略知道本意即可。

當時 Ringle 告訴我 Clean Code 的原則就是:每一個函式 (function, or method),不超過10行,最好是5行以內。天啊,這讓我很難以想像,我知道函式不能肥大,也不要有一堆的 if-then-else or switch 之類的判斷式,但如何縮短為只有10行以內的寫作,我也很難理解。不過細讀本書內容之後,總算能瞭解要如何作,當然,你更應該體會為何要這麼作。

簡而言之,程式寫作是一門「craftsmanship」,我還蠻喜歡中譯本將之翻為「工藝典範」。它既要精確,卻也期望將程式寫作昇華為具有美感的作品。我覺得,稍具有良心與審美觀的程式設計師,絕對不是只有滿足於「可以執行程式」。寫出來程式往往只是起點而已,持續不斷地精煉 (也就是重構),讓程式整潔,軟體才有可能具彈性與維護性。往往程式設計師只滿足於讓程式「順利運作」的狀態,有經驗豐富 (還有良心)的程式設計師,知道那其實是一種專業上的自殺行為。

所以,事實上,寫程式就如同寫散文一般,程式寫得艱澀冗長讓人無法理解,就代表散文寫作能力不佳。程式設計大師不認為他們在寫程式,而是在說故事。大師利用所選定的程式語言機制,來幫助建造更豐富更具表達力的語言,讓這個語言可以用來說故事。而簡短的函式,有意義的命名,以及漂亮的結構,則都有助於描述故事。

閱讀全文 »

開放「Excel 即時報價暨分析圖表」小型程式交易委製開發專案

*** 現因個人已轉至 Multicharts 交易系統,小型程式交易委製已停止 ***

※ 參考委託案例
 o 聊聊 C# 實作 Excel 選擇權報價交易系統
 o [交易系統] C#.NET 開發海外期貨部位策略管理系統

由於常接收到諸多欲作程式化交易的讀者來電或來信詢問,原來不便接受個人化的委製開發,不過經與所屬顧問團隊負責人討論之後,同意可將視其為小型化的專案 (project),以服務有實際需求的個人用戶。

開發週期係以「週」為開發單位,並視所需完成的功能來報價計費。最短一週、一般這類小型化專案不致超過一個月。(當然仍需視系統的複雜度來決定,若為企業層級的系統,則另行專案處理。)

接收即時性的報價源與圖表分析的處理,會以 Excel 作為主要的界面,畢竟這仍是最普及、且易於與各券商的報價系統連結的應用系統。

其實利用 Excel 非作為程式化交易 (即自動化的下單),而是善用 Excel 的特長:統計分析,然後再作為決策判斷的交易系統。

所以要打造 Excel 成為個人化的即時性決策系統,會需要完成三大部分:即時報價源、分時資料紀錄、圖表分析

一、即時報價源:

一般 Excel 會透過 DDE or RTD 連結券商所提供的免費報價系統,僅需透過連結字串與 Excel 儲存格的對應,即可以取得即時性的報價資料,參考如下圖。
報價資料即時接收

少數用戶可能會透過更穩定的專線或特定的傳輸協定,來連結券商的報價系統。此時就必須參考券商所提供的傳輸協定,來撰寫連結資料的 Data Adapter。

閱讀全文 »

[HSDc. 讀書會] 無瑕的程式碼 (Clean Code)

報名請至: http://www.hsdc.com.tw/course/reading_meeting_20130518

研討書籍:無瑕的程式碼:敏捷軟體開發技巧守則 (中譯本)
原文:《Clean Code: A Handbook of Agile Software Craftsmanship

o 報名費用 :免費。自行於當場點餐、下午茶點或飲料即可。
o 日期:2013/05/18 (星期六) AM 10:30 ~ PM 16:30
o 地點:加爾第咖啡莊敬店。北市信義區吳興街269巷1弄21號
    電話:(02) 2345-1136
    http://kaldi-coffee.com.tw/mainwebsite/about4_a.html

這是一本好書。透過從程式碼的簡潔撰寫原則與不斷精煉的過程中,得以反思軟體設計關於結構設計上的議題。

我們希望與會學員們起碼約略有翻閱過該書,但不需要全部看完。只要針對書本內任一章節,可以作心得分享,甚或問題提問討論即可。

我們希望是以相當輕鬆的態度來參與讀書研討。重要的是分享,甚或是提出問題一同討論,這才會是舉辦讀書會的意義所在。

***
請注意,由於需要保留及計算報名學員們的座位,請確定會前來參加後才填寫報名單,若不克前來,也請於報名表單或來信取消報名。

※ HSDc. 團隊主要成員均會參與,並歡迎接受提問。

o 對象:對軟體設計相關議題有興趣者,包括在職軟體開發人員及相關資訊科系講師及學生等。
o 主辦單位:HSDc 軟體設計顧問中心。
o 備註:
 o 本次讀書會預計開放 24 個名額。(額滿即停止報名)
 o 如因故未能參與,請取消報名,以免影響其他學員權益。
 o 請自行攜帶讀書會研討相關書籍。

§ 書籍大綱

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal