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