譯者序
很多人都知道微軟公司,它依靠軟件變得非常富有。關于微軟是如何從一個只有十來個人的小公司成長起來的故事,很多人都聽過。聽了后,不少人都覺得它很幸運。那么除了幸運之外,微軟還有什么過人之處么?很基本的問題,它是如何開發軟件的呢?這個問題容易回答,很多人都能講上幾句。但如果只是講講有哪些“工種”,立哪些規矩,也很乏味。要是能從頭到尾的講講一個很大的產品是怎么從無到有開發出來的,該多有趣。
微軟的軟件產品很多,但是在其產品線中,起著中流砥柱作用的當屬操作系統,即Windows,中文稱視窗。Windows有眾多版本,但不論是Windows 2000、Windows XP、Windows Vista,還是即將問世的Windows 7,都是基于經典的Windows NT內核。NT內核從1988年開始醞釀,1989年開始編碼,歷時將近五年,于1993年7月正式發布,即Windows NT 3.1(在本書中簡稱NT)。通常,軟件的版本號是從1.0開始的,但NT的第一個版本就是3.1。
NT的最初開發計劃是18個月,但實際用了快5年,是計劃的好幾倍。軟件項目延遲是常有的事,但延遲了這么久還沒有被槍斃掉也是有些不尋常的。在行業外的人看來,編寫軟件的人,特別是所謂的高手,大多有些古怪之處。NT團隊最初只有幾個人,結束時發展到兩百多人,其中一定不乏特立獨行或者離經叛道之士。這些人聚到一起,吃頓飯都可能爭吵起來,何況要像繡花一樣合作寫軟件呢,而且是寫操作系統這樣的復雜軟件。
彈指一揮間,距NT團隊成立的日子差不多20年了。親歷過那段“美好的舊日時光(the good ole days)”的人,都早已聲名顯赫、腰纏萬貫了。請他們講一下從前的故事,不是一件容易的事。
那么如何滿足一下好奇心,或者冠冕堂皇一些,“師夷長技”呢?幸運的是,有一本書很好的記錄了開發NT的全過程,它是用英文寫的,名字叫《Showstopper》。
“Showstopper”這個英文單詞很有趣,在觀看戲劇或者其它演出時,人們使用這個詞來形容節目格外精彩,讓人拍手叫絕,以至于被觀眾的掌聲和喝彩聲所打斷,不得不等人們安靜下來后才能繼續。在日常用語方面,它也是一個很好的詞,人們用它來形容超乎尋常的美麗和迷人……
但當這個詞被引入到計算機特別是軟件領域后,它的含義發生了根本性的變化,它代表的是最嚴重的問題。因為在軟件領域,人們經常使用臭蟲(英文為BUG)這個詞來稱呼軟件中的瑕疵或者問題,并根據嚴重程度,將臭蟲分成若干個等級,而“Showstopper”用來指最嚴重的那類臭蟲,它如此嚴重,以至于影響了產品的核心功能,不解決它產品就不能用。如果是在開發階段,Showstopper的存在會導致產品就不能發布,其它很多工作也無法進展,整個項目不得不延期……
《Showstopper》一書以時間為主線,生動了描述了開發NT的整個過程,講述了5年中的很多精彩故事,特別是NT團隊如何解決開發中的Showstopper類問題的動人情節。開發軟件不是一件簡單的事。分析需求、定義功能、設計架構、編寫代碼、測試集成……,每個環節都不容易做。但難度最大的,最難以控制進度的,其難度又經常被低估的,就是定位和去除臭蟲,也就是所謂的軟件調試。如果把計算機系統中的每一個比特位看作是一個水滴,那么今天的典型計算機系統就都是一片海洋,定位臭蟲的過程就好像是在這個海洋中撈針。而去除Showstopper類型的臭蟲,更是難上加難,因為這樣的問題往往關系著整個產品或項目的成敗,關系著很多人的事業和命運。
在介紹緊張的開發過程的同時,作者用簡煉的筆法,為我們描繪了一大批個性鮮明的人物,包括他們的學習工作經歷、性格、家庭、婚戀,以及他們面對困難和壓力時的反應。在作者的妙筆之下,幾十個人物躍然紙上。他們有些是公司的管理者,有些是項目經理,有些是團隊的技術首領、小組長,有些是普通的程序員、測試員、構建員和技術編輯。他們各司其職,為共同的目標努力,盡管也有爭執、摩擦、甚至沖突……
我在四年前買了這本書,放在案頭,有空的時候就拿起來讀一讀,有些內容讀了很多遍,但是每一次都有新的感受,能受到不同的啟發,有技術方面的,有項目管理方面的,也有處世和人生方面的。
2005年的時候,我開始寫一本軟件調試方面的書,旨在幫助人們提高去除軟件臭蟲的效率。在寫作過程中,我還經常拿起《Showstopper》,有時是為了小憩一下,有時是為了汲取靈感。有一天,我突然冒出一個想法,為什么不把這么好的一本書翻譯成中文,讓更多國內的讀者可以看到呢?于是我開始想辦法聯系書的作者。費了些周折后,終于找到了兩個郵件地址。于是便寫了一封簡單的郵件,發了出去,時間是在2007年的5月8日。信寫的不是很長,因為擔心作者收不到,白費功夫。沒想到,第二天一早我就收到了回信。信落款處的署名是Gregg,也就是作者全名G. Pascal Zachary中G的完整形式。Gregg格說,他很高興收到我的信,愿意讓他的書在中國出版,末尾他還說:
Plus, Chinese readers are keen on books about management of tech projects.(此外,中國的讀者很喜歡如何管理科技項目的書。)
是啊,這何嘗不是一本軟件工程管理方面的好書呢?盡管大多時候我是將其當作報告文學來讀的。
接下來的問題就是找一家國內的出版社。這并不像我預想的那樣順利。前兩次嘗試都很快就失敗了。過了幾個月后,又有了第三次機會,為了讓這次機會成功的可能性大些,我特意邀請了兩位編輯見面來談。我先是花了些時間告訴他們這不是一本專門介紹技術的書。然后我講了書中的一些精彩內容和這本書對于程序員、測試員、項目經理、公司老板以及歷史愛好者的意義.在我滔滔不絕、激情澎湃的講了一個多小時后,兩位編輯有興趣了,想看一下這本書,然后推薦給社里的領導來審判。過了幾周后,我得到了答復:社里的領導不同意。這時已經是2007年底了。當時,我自己寫的書已經完成了大半,在寫第5篇——“軟件的可調試性”時,我很自然地想到了《Showstopper》中的故事是一個很好的案例,征得了Gregg的同意后,在我的書中有了“Showstopper和未雨綢繆”這一節。
2008年初,我又向另一家出版社推薦。這次很順利,出版社很快決定購買版權。2008年3月,Gregg很高興地發郵件告訴我他已經和中國的一家出版社簽約了。之后的一些細節又花了些時間。2008年秋,《Showstopper》的翻譯工作開始了。
翻譯難。盡管在打算翻譯這本書的時候就預計了這個任務會很難,但是實際感受到的難度還是超出了預料。這本書的作者是《華爾街雜志》的著名記者,也許是因為寫慣了針砭時弊的新聞稿,他的文筆很是犀利,用詞潑辣,豪放不羈。不管是書中的小人物,還是大人物,作者都不加任何粉飾,直言其原貌,甚至缺點,毫不留情。另外,為了力求生動,作者在很多地方使用了口語化的描述方式,用了很多俚語和固定用法的短語。這些特點,使這本書讓人讀起來感覺很是過癮,但是卻給翻譯帶了很大的挑戰。很多俚語和短語是詞典里查找不到的,有些即使能查到,但是詞典上給出的詞意看起來也不符。更何況,如果完全照搬詞典上的解釋,翻譯出來的東西就會失去原作的風采。
就拿書名為例吧。作者使用Showstopper這個詞作為書名,是有一語雙關之妙的。一方面是使用了這個詞在計算機領域的含義,即最嚴重的臭蟲,這是對這本書主要內容的一種直白表達;另一方面當然還是使用了這個詞的傳統含義,把打造NT的過程比喻成一場“戲”;一場雖沒有刀光劍影,但也絕對堪稱緊張激烈的戲;一場發生在高科技領域,但也處處彰顯人性光芒的戲;一場有歡樂,也有悲傷的戲;一場讓人拍手叫絕的戲……
如何翻譯這個書名呢?從打算翻譯這本書的時候,我就開始考慮這個問題,也與一些朋友一起探討過,希望用“頭腦風暴”激發出一個好的中文名字。關于這個詞在計算機領域的用法,在我們嘗試過的詞典中,都沒有包含這種用法。關于傳統用法,詞典中一般也只是一句說明,沒有給出中文的對應詞匯。在想出的很多種譯法都被否決后,我們想到了保留這個詞不譯,這是最省事和穩妥的做法,但還是覺得那樣做有些不好,特別是對于那些不太熟悉這個英文單詞的人來說。
.最近幾年,我越來越喜歡閱讀古代的文學作品,尤其是當寫作或者翻譯中遇到困難時,我經常會翻看古人的作品尋找答案或者靈感。這一次,在翻看了幾本書都沒什么收獲后,有一天,當我在書柜中搜索其它可看的書時,我看到了一本小小的書,128開本,大約一寸多厚,是典型的“口袋書”。拿起來一看,是上海古籍出版社出的袖珍本《古文觀止》。在我很小的時候,就聽說過這本書,但是當時還不知道這個書名的含義。后來慢慢明白,觀止是“好到極致”的意思,出自著名的歷史典籍《左傳》。原文是說,吳國公子季札到魯國訪問,請求觀賞一下周朝的音樂,于是魯國派了樂隊為他演奏,季札一邊觀賞,一邊稱贊。當看到歌舞《韶箾》時,他發出由衷的贊嘆:“德至矣哉,大矣!如天之無不幬也,如地之無不載也!雖有盛德,其蔑以加于此矣。觀止矣!若有他樂,吾不敢請已!”成語嘆為觀止就出自于此。
看來漢語中的觀止本來也是用來形容精彩的演出,“觀”意為觀賞、欣賞,“止”即停止。這與SHOWSTOPPER這個詞何其相似,SHOW即表演,STOP即停止,二者加到一起就是令演出停止,后面的ER是英文中名詞的常用后綴。看來,中國的古人和西方的圣賢不約而同的使用了同一種方式來表達他們對美好事物的終極贊嘆,最由衷的情感和最美麗的語言是跨越地域差異的。想到這里,我如獲至寶,決定將“SHOWSTOPPER”翻譯為“觀止”。
除了封面上列出的譯者外,還有很多人為翻譯這本書傾注了智慧和汗水。劉穎翻譯了第6章,王宇翻譯了第1章的前半部分(初稿)。本書原作者Gregg在百忙中回答了我提出的很多問題。我的英文老師Barry October幫助我消除了很多疑問。高端調試網站(ADVDBG.ORG)的很多網友(KernelPanic、neilshu、dos、applepwc、merryzhao等)為翻譯這本書提出了很多寶貴的意見,是與他們討論后,才決定了本書中人名和地名的翻譯方式(譯為中文,但是在每章第一次出現時在中文后標注英文)。在此向上面的各位朋友以及曾關心過這本書的引進和翻譯工作的所有人表示衷心的感謝!
因為譯者的水平有限,書中定有錯誤和不當之處,敬請讀者批評指正。
張銀奎
2009年2月