危機處裡
Bill Gates 可以算是名留 IT 青史的一號人物,有著改變科技潮流與歷史的影響力。但是很多人不知道,在 M 社內部的工程領域,他早期的一些作為可是褒貶不一。一方面的確有一些失控的專案的帳,很難不算在他的頭上。但同時,究竟神人級的人物,他在過去幾個 M 社生死關頭的關鍵點,也做出了力挽狂瀾的決定。整體而言,他還是對 M 社的成功與否有著決定性的影響。
他在任內有三件最受關注的重大決定: 第一是 1999 年的 "擁抱並延伸" (Embrace and Extend) 網際網路的宣言,第二是 2002 年宣布 "可信賴運算芻議" (Trustworthy Computing Initiative, TwC),而第三是 2008 年任命 Ray Ozzie 為總架構師,進一步催生了 Azure。其中筆者認為對 M 社工程基礎與實務衝擊最大的,應該是 TwC 的成立,也堪稱是所見過最成功的軟體危機救援。
話說 Windows XP 在 2001 年上市,被 M 社和個人電腦業界非常重視,因為在工程技術上,它是首款全面採用 32 位元技術,能夠完全發揮當時 Intel 硬體特性,而還同時保留 16 位元應用程式的相容模式。在這之前雖然有 Windows NT,但是上面並不能跑 Win 3.x 及 Win9x 的程式。Win XP 大一統了 M 社的作業系統產品線,工程師的興奮程度無可言喻。
但是一些基本的問題很快就浮現出來: 一方面 XP 的成功招來了黑白兩道駭客的關注,系統各處的軟體弱點不斷地被找到。另一方面工程團隊對於有系統化的更新架構和程序還來不及上手,修補弱點以及釋出更新程式的速度一直快不起來。結果雪球越滾越大,M 社對到處冒出來的安全問題應接不暇,客戶的耐心和信任逐漸崩解,而且媒體也大加撻伐,批評 M 社簡直置使用者的安全於不顧。那時候 M 社狼狽之極,而且用戶對 M 社產品的信任問題延續了好長一段時間。
BillG 看出來這個危機如果不主動處哩,幾乎會動搖國本。他跟一票資深領導不但動作快,也很果斷: 首先是公布了那一份有名的宣言 https://www.wired.com/2002/01/bill-gates-trustworthy-computing/ ,同時在 M 社內部做了幾件重要的措施 : 首先成立了 TwC 部門,總攬全公司工程部門的資安技術訓練以及工法的選擇;當時當下最重要的任務,是協助每個開發中的產品架構評估弱點的多寡以及情況,並且訂下優先順序。接下來,他下令將所有 (沒錯,是所有) 開發中的產品停下來,除了進行評估之外,還讓所有的 PM、Dev 和 Test 接受安全軟體開發 (Secure Software Development Life Cycle, SDLC) 的技術訓練,海外的工程人員也不例外,要分批飛回總部。最後是制度化安全更新的系統以及制度,訂出了有名的 "星期二更新" (Patch Tuesday),增加了使用者的穩定感。
老實說,一開始實施這些措施的時候,許多人很反感,甚至對公司有抱怨跟抗議。早期多半的工程師,包含我自己在內,總是認為這些資安的措施是額外的負擔,所以能敷衍就敷衍,交差就好;這也是形成問題的基本原因。但是看到公司的領導們沒有要讓步的意思,才認知這件事非同小可,找好硬著頭皮跟著策略方向走。到了後幾個世代的工程師,就把這些程序視為理所當然,慢慢融入文化及習慣當中。到了現在,總算是逐漸拾回用戶的信心。
對於這些措手不及的各種危機,M 社也發展出了基本的新法:
一,先暫停正在進行的活動,用最短的時間檢視眼下的情況,以及評估影響的範疇。
二,針對影響最大的部分進行止血,阻止後續的崩壞。
三,絕對不能風頭過了就算了,必須建立可持續執行的程序,避免同樣的情況發生。
說到底,用一切的方法重建自己人以及客戶的信心,並且讓所有人看到執行的決心,才能真正的救援成功。