2012年6月26日 星期二

[書摘] 科技CEO的創新╳創業學(Founders at Work)。保羅.布克海特(Paul Buchheit)是Google Gmail創立者以及開發團隊領導人,他用論壇程式開發出以Web瀏覽器來收發、搜尋電子郵件的Gmail系統

談談你們如何開始的吧。Gmail是非正式的專案(side project)還是公司指派的任務?
兩種都有。因為長期以來,我一直對電子郵件不滿意,所以很早以前就開始試著寫電子郵件軟體,大概是1996年吧。說也奇怪,不知道什麼原因,那時候我就稱 呼它為Gmail,但是那只是試驗性質的小案子,我的想法還沒有真正落實,不能算Gmail前身,不過,確實是我一直想要的實現的目標。

那時候還沒有Hotmail,而且我還在念大學,想收發電子郵件必須回宿舍。我覺得這樣很蠢,應該隨時隨地都能讀電子郵件才方便,所以就想做一個以Web瀏覽器來收發的電子郵件的系統。我毫無頭緒,雖然寫了一些程式,但是沒什麼用,所以一無所成,沒有任何進展。

時光飛逝,很多年過去了,我加入Google的Google論壇工作,論壇和電子郵件不完全一樣,不過還是有一些關聯。第一代Google論壇快推出的時 候,他們問我要不要開發電子郵件或是個人化產品,這個專案沒有特定主題,他們只是覺得這個領域很有趣,當然,我也很高興做這些事情。

所以他們並不是要你做有關電子郵件的產品?
他們說得很籠統,只是覺得有一些事情值得做,可是沒有列舉一些需要的功能給我參考。那時候,大家都認為Google是專門做搜尋引擎的,如果去做電子郵件 會很奇怪,尤其當時沒有人知道什麼是以Web瀏覽器收發電子郵件。現在看來這都不是問題,但是在一切都還不確定的年代,確實有爭議。

我一個人做了很長一段時間,因為對Google論壇很熟,所以剛開始利用了很多Google論壇程式。我花了一天時間,以Google的論壇程式編寫出Gmail的第一個版本,但是它只能搜尋我的電子郵件。我讓一些論壇的用戶試用,大家都說這東西很有用,所以我就繼續寫。

Gmail第一版出來的時候,你是想開發更好的電子郵件程式?還是一個能提供搜尋郵件功能的程式?
兩者都有,搜尋功能顯然很重要。那時候,我們常常要查詢電子郵件內容,因此搜尋功能對電子郵件管理非常重要。我希望它的功能不止於此,但是搜尋顯然是我首先要解決的問題。

在Google,每個人每天都要收大量的電子郵件,我一天就會收到500封郵件,郵件多得離譜,所以迫切需要搜尋功能,這是我能做的最首要也最容易的事。 因此我開發出第一個版本,雖然只能搜尋我的郵件內容,對其他人還是很有用,因為我們有許多相同的電子郵件,他們使用後認為:「要是能搜尋自己的郵件內容就 更好了」。

你把所有時間都投入開發這個案子?還是只撥出一點點時間?
沒有花費全部時間,但是差不多傾全力了。我還有別的正式專案要做,當時應該花更多時間在那些案子上,但我總是會被一些非正式的小案子吸引,而把其他時間又 放在這上面,我覺得我和短期案子很有緣份,像網頁內容定位的網路廣告AdSense就是這樣做出來的。如果記得沒錯,它是在某個星期五被開發出來的。

我們之前花了很長的時間討論這個構想,有人堅信不可能完成,但是我覺得很有趣,所以用一個晚上的時間就開發這個以網頁內容為主的網路廣告系統,證明它確實可行。這個案子本來不是我應該做的,我只是幫忙而已。

就是現在的Google AdSense?
它的原理相同,我寫的只是很粗略的原型,但是已經足以證明這個構想的可行性,也促使其他人認真思考。而且這工作並不困難,因為我只用了不到一天的時間就開發出來。從那時以後,其他人接手繼續完成比較困難的部分,成功開發出完整的產品。

所以你在Google做了兩件具有突破性意義的事情。
大概是吧。我做過許多隨性而為的事,因為我喜歡把構想付諸行動,雖然大多沒什麼成果。

所以你花了一天開發出Gmail,你覺得這件事會有重要成果,然後呢?
很長一段時間裡只有我一個人做,後來山傑夫.辛格(Sanjeev Singh)加入。但是對他來說,轉換計畫並不是一件簡單的事,你不可能在短短一天時間就能讓新計劃上手。而且接手Gmail後,他還在做企業搜尋,必須 花很多時間在企業搜尋。過了很久,山傑夫才把大部分時間用在Gmail上。所以有很長一段時間,Gmail的進展非常緩慢。

絕大部分時間只有我自己,然後是我和山傑夫,後來金.林(Jing Lim)也來了。Gmail進展速度非常慢,而且大家對於這個和原來電子郵件不同的新構想,依然抱持著懷疑態度。

你是在何時認為Gmail將會有很大的發展空間,決定要推出這個產品?
其實是在推出的幾天之後,因為這是一項大計畫,有時候我們還覺得永遠做不出來。

談談哪些部分最有挑戰性?
具有挑戰性的部分很多,例如,規模很大就是一大挑戰。我們一開始就給每位用戶1 GB的電子郵件信箱容量,那時候,其他電子郵件信箱平均只有2~4MB。

許多人不相信會有這麼大容量的免費信箱,他們認為這一定是開玩笑,因為推出當天是4月1日愚人節。

他們也認為不可能,畢竟這是一件很難做到的事,如果你計算一下,就會發現資料將非常龐大:有數百萬的用戶,這些用戶都有大量資料,為了保證系統穩定,就要 準備好幾份資料的副本和備份。這需要大量研究開發,還需要許多機器設備與系統,在不必投入大量人力來維護下,還能保證系統正常運轉,這在當時是很複雜的系 統問題。

我們也做了一些對Google具有創新意義的事,我想這就是傳統創業公司和在Google內部創業的不同之處。在當時,很多人仍然認為Google只做網 路搜尋,現在情況不同了,我們開發許多其他產品。但是那時候,公司裡的許多人都不確定。這個產品的構想就是收取所有電子郵件、還要儲存郵件,和網路搜尋是 完全不同的系統難題,兩者對於資料和搜尋前置時間要求不同。因為網路搜尋,只需要對網頁和索引進行搜尋分析,分析一個頁面後,經過一點時間就可以在 Google上搜尋到。 但是在電子郵件,一切都要即時,更不能失去任何資料。

因此,兩者的開發方式有很大差異,許多用於網路搜尋的開發策略無法使用在電子郵件系統。原因很簡單,因為必須保證速度夠快,處理過程要在短時間完成。你不 能說:「好,我們收到一封郵件,半小時後就會看到它。」早期的版本就會出現這個問題,收到email後,我在索引中加入腳本程式,但是產生時間上的延遲, 導致早期的版本無法成功。

這些細節問題累積起來,帶來許多挑戰,我們必須保證系統正常運作。JavaScript發揮很大作用,因為我們是當時最早使用JavaScript來設計 介面,大多數人以為JavaScript工具只能製作彈出式廣告和其他討厭的玩意兒,那時候還沒有Ajax這種網頁開發技術,所以許多人對於 JavaScript可靠性存疑,畢竟JavaScript有些麻煩,如果寫錯程式,瀏覽器就可能就完了。

所以,為了解決這些問題,讓產品真正具有實用性,我們確實花了很多工夫學習和摸索,以便找到適合的技術與判斷特性好壞的標準。 

你最喜歡的特性是什麼?
這很難講。現在看起來很普遍的「自動完成電子郵件地址輸入」功能,我們很早就有了,當年剛推出時還廣受好評呢。一旦有了這個功能,如果少了它反而會被大家質疑:「為什麼沒有提供自動完成輸入?」

你當初是不是打算儲存所有郵件且不要刪除,所以需要大容量儲存空間?
你當然可以刪除郵件。這個構想主要是因有的郵件訊息很珍貴,所以我們認為:「為什麼要刪除郵件呢?」我們發現,關於人們為什麼會刪除郵件有三到四個原因。最普遍的原因是信箱空間不足,因為只有2 MB的容量。我們認為如果給用戶足夠儲存空間,他就不會遇到這個問題。

第二個原因是,人們必須刪除郵件,否則郵件很快就多到難以管理。如果我們能提供搜尋,就能提高管理效率。我不知道現在我的信箱裡有幾百萬封郵件,但這不是 問題,我可以輕鬆應付。這些郵件就儲存在原來的地方,我的信箱裡還存著四年前關於Gmail的評論郵件,利用搜尋功能就可以很容易在信箱裡找到,那封評論 當年看起來很有趣,而現在看則很諷刺。第三個原因是有些郵件內容會讓人不安,他們只是想刪除郵件以免除緊張擔憂,但是這種情況很少見。所以我們才說,你希 望提供刪除功能,但是這通常不是必要的,大多數人是因為受到種種限制才會刪除郵件。

Gmail還有哪些新特性是首創的?
「會話群組檢視」(Conversation View)是新功能,一來一往間(寄出、回覆、轉寄) 的相關信件、相同主題的信件會被群組成同一個「Conversation」,於同一個頁面依時間順序顯示。你打開其中一個郵件,群組的所有郵件會像卡片一 樣列出來,而不是單獨出現。

這是你想出來的?
這個構想是由很多原因造成的。其中一個原因是我曾做過論壇,有同樣的歸類(threading)方式。另一個原因則是信箱裡的郵件太多了,必須有系統的管理。

我們常常會遇到這種情況:有人發出一封郵件,然後有四個人針對這封郵件內容做了相同的回覆,但五個小時之後還有人在回覆同樣的事,其中就會有人想:「這已經重複談論過五次了,你還在回覆。」

據我們觀察,人們費那麼大力氣管理郵件的原因在於,他們試著把相同主題的電子郵件整理在一起,放到同一個資料夾。如果忘記或是放錯資料夾,就會把郵件打 亂,很難找到相同主題的郵件。當時有一些小工具和技巧來管理郵件,但為什麼不一開始就把它們放在一起呢?後來我們又想到,把引用自他人郵件的內容也隱藏起 來,這樣閱讀速度更快,不需要一再重複瀏覽相同內容。我們還試圖整合聊天室或即時通訊功能。第一版時,我們沒時間把聊天室功能加入,但最早的Gmail原 型中其實是有聊天功能的,因為我們希望把聊天室和電子郵件整合,兩者是一體的。所以,我們會從聊天室的角度來思考電子郵件系統,猶如聊天室加入電子郵件功 能。當然,聊天室功能是強調「對話」,沒有人會跟自己聊天。「會話群組檢視」就是這麼來的,有一段時間我們甚至把電子郵件的格式設定得更像聊天室。

聽起來,你們設計Gmail完全是從使用者的角度出發?
沒錯,我們很強調這一點。每次被一些小問題折磨,或者我們的使用者說:「我遇到一個問題,但Gmail沒辦法解決。」時,我們就會花時間思考,找出問題所在,然後設法解決,讓Gmail更好用。

Gmail推出的時候,你的團隊有多少人? 只有你們三個嗎?
那時候有很多人了,要看你怎麼算,那時候大概有12人。

你是否曾經認為需要更多的程式開發人員才能完成?
我一直在要求更多的人加入,現在也是。產品很不錯,但是還有很多事要做,我每天都會找到希望能改進的地方。此外,掌管這樣大型的服務,產品改進和維護就會耗掉很多人力,況且許多改進是看不見的。

例如,我們增加43種語言介面,身為英語用戶,你可能沒有留意,但是對世界上其他地區的人來說,這是非常重要的改善。隨著產品不斷發展,我們的工作量越來越大,需要更多人力來服務數以百萬計的用戶。

Gmail推出時已經有用戶了嗎?
其實從第一天開始就有了。 Google的好處在於我們可以先在公司內部推出產品,這樣就會有許多人來測試,所以公司內部已經使用Gmail很長一段時間。

那時候的程式叫Caribou,最早我叫它Gmail,後來我們發現不太穩定,所以改名叫Caribou。

Caribou是你的主意嗎?
是的,呆伯特(Dilbert)漫畫裡有一集出現 「Caribou計畫」,我覺得這名字很滑稽就選來使用。

談談開發Gmail最困難的時刻,也就是你想放棄的時候。再談談最高興的時刻。
困難的時刻來自許多方面。就像我說的,許多是來自對這個計劃的爭議,尤其是在早期,因為其他人對這個構想一直有爭議,不知道是否能成功,所以態度搖擺不定。等到態度對我們不利的時候就非常難以應付,後來情況才好轉。

我們還遇到一些內部的系統問題。 推出產品前的上一個版本,Gmail的設計還有一些問題。有一次,其中一台機器的硬碟故障而停止運作,裡面儲存了所有人的電子郵件。我去解決這問題的時 候,身邊經過的每個人都在問:「什麼時候能把Caribou備份?」我拿著螺絲起子跑到機房時,每個人看到我都大叫:「噢,不要!」

我把硬碟拆了,換上另一塊硬碟的電路板,整個過程沒有遺失任何資料,想想發生過的事情,這在當時實在是令人難以置信。畢竟Google搜尋引擎使用的機器都是廉價品,也就是普通PC,穩定性很差。

最高興的事當然就是推出產品。 沒有什麼比終於向全世界的人展示產品,並且廣獲好評更讓人興奮了。

產品推出當天遇到什麼大問題嗎?
出奇順利,沒遇到什麼大問題,難免會有小問題,但是都不值得一提。那時候我已經連續工作三天,70小時沒闔眼。因為我使勁地做收尾的工作,添加一些功能讓它更好用,例如系統登錄,我還得測試所有功能。

當時Google業務重心放在搜尋功能,你會不會擔心他們取消你的專案?
一直都會擔心,儘管現在Gmail接受程度非常高,但是當時確實有一點太早。

Gmail是有別於單純網頁搜尋功能的創新構想,論壇的本質也是搜尋,只不過它是針對網路新聞發布的消息來搜尋。

所以人們花很長一段時間才適應Gmail的新觀念,你要記得,當時Google和Yahoo!的情況不同,公司不一樣,受到注意的重點也不同。

你從Google學到什麼?你有導師嗎?
進入Google前,我對開發大型系統一無所知,所以我觀察Google各部分如何運作,看到成功例子就會問自己,這個適合我們嗎?我們能重新利用這個技 術嗎?因為它們都是成功解決某些問題的範例,這也具有挑戰性,我們必須判斷,什麼時候能從Google其他部門借鏡,什麼時候必須當機立斷:「我們的問題 與他們完全不同,我們需要有所創新。」

我們花了不少時間才弄清楚這一點。你不想放棄過去的經驗,因為如果不記取教訓就會遇到很多麻煩;但是有時候,你要解決的問題的確和以往截然不同。

例如在「更新」這個問題上,我們必須及時更新電子郵件。但搜尋的更新,可以延遲一點,如果是文件,幾分鐘內無法更新並不是大問題。所以在系統設計層面,這確實是一個很大的學問,儘管聽我這樣說,好像沒有什麼差別。

你在開發Gmail的時候,是不是以創業的心情?感覺是在創業嗎?
沒錯,我們有一個小團隊,團隊裡的人都很聰明,跟他們合作非常愉快。我不習慣早睡早起,所以我通常都工作到晚上,正常工作時間是中午到凌晨三點。想要在晚 上回家是不太可能的,因為有時候我一開始工作,會對自己說:「我只是要做最後的修改,很快就好了。」但下一次抬頭看時鐘時,已經半夜三點了。(摘錄整理自 第十二章) 

本書的網路書局連結:

科技CEO的創新╳創業學


其他好書推薦:

Related Posts Plugin for WordPress, Blogger...