# 三十、在這個國家狗是干什么的? 我們有多么天真?
我們假設Bezos(譯注:Amazon的執行長)只是把收益重新投入,所以才沒有從谷底爬起來。
去年大概這個時候,第一家大網絡公司倒閉的消息開始見報。Boo.com和Toysmart.com都關 門了。快速變大的想法不再適用。Dockers里的五百名年輕人發現光是照抄Jeff Bezos并不 能算是商業計劃書。
Fog Creek過去幾星期出奇的安靜。我們正在做CityDesk的收尾動作。我想告訴你CityDesk 的一切,不過得再得一陣子。現在要談關于狗食的事。 狗食?
上個月Sara Corbett寫了關于迷惑的男孩的事。一群8到18歲與家人分離的蘇丹難民,被迫 跋涉千里由蘇丹到衣索比亞再回蘇丹再到肯亞。有一半的人在旅途中因饑渴或短吻鱷而死去。 有些人在冬季中期獲救后被送到北達科塔州Fargo等地。其中一個難民由機場乘車到新家時 問道:「叢林里有獅子嗎?」
彼得觸碰我的肩膀。他拿著一罐普瑞納狗食。「對不起,Sara,不過你可以跟我說這是 什么嗎?」他后面的狗食由地板一直堆到屋頂。我回答:「呃,這是我們的狗吃的食物。」 一面擔心八年來都吃粥維生的人聽起來會怎么想。彼得說「哦,我知道了。」他在罐頭放為 柜上,似乎對我的答案覺得滿意。他推著購物車走了幾步,然后轉過來困惑地看著我說:「告 訴我,這個國家的狗做什么工作?」[紐約時報雜志,四月一日,2001]
狗。沒錯,彼得。Fargo的食物充足,連狗也一樣。
真是令人沮喪的一年。
噢,剛開始時多么好玩,我們全都投入B2B和B2C還有P2P準備大干一場,像一個搬到效區的 快樂家庭星期天去麥當勞玩。不過等一下,這并不是好玩的部份,真正好玩的是看著最爛的 商業計劃書失敗,然后股價由316掉到3/16。接招吧,新經濟的大嘴巴們!哈,慘得真好。 哈,真爽,Wired雜志又再次證明,只要把某樣東西放在該雜志的封面,這個東西就會在短 短幾個月內被證明是又笨又錯的。

哦?抱歉,你買了聯機指數(Wired Index)嗎?
至于新經濟這東西,Wired真的把它毀了。報導了嗅覺技術(smeM-o-「ama)和注定失敗的游 戲公司那么多年,又說過PointCast會取代web(等一下,PointCast不是己經在1997年三月取 代web 了嗎)這種話,他們應該早己知道他們的封面對任何技術或公司甚至一昔成名之物都是 個死亡之吻。不過反正他們就是不信邪,不只把新經濟放在封面上,還把該死的整整一期都 拿去寫新經濟,所以把NASDAQ搞到像學飛的羊一樣直線下跌。 不過我們以他人的不幸為樂,也只能高興到現在。如今情況愈來愈沮喪,我知道經濟并不是 真的肅條,不過我本身卻還是很沮喪。并不是因為有這么多愚蠢的新公司倒掉,只因為整個 思潮很沈悶。所以現在我必須棄麥當勞而改吃狗食。
這就是我們正在做的事情,因為日子常還是要過。每個人都垂頭喪氣地到處亂走,抱怨為了 SockPuppet.com的股票選擇權投入了多少小時,如何犧牲健康和愛情生活,即使如此生活還 是照常要過。產品開發循環當然也得繼續,而在Fog Creek的我們也走到產品開發循環中要 吃自己狗食的那個過程。所以短期內我們會是Dog Creek Software。
在計算機業界中,吃自己的狗食是個怪名稱,表示真正使用自己產品的動作。我直到一個月 前都忘了它的效果有多么好,我拿了某一版的CityDesk回家(想著差三星期就要推出了),然 后嘗試用它建立一個網站。
哎呀!結果發現有幾個問題,根本不可能開始測,得先把問題修好才能繼續試。我們所做的 測試(小心地點選每個選單,看看是否會動)并沒有發現這些讓產品無法達成預期功能的嚴重 問題。而像個顧客一樣地使用產品卻在一分鐘內就找到了。
還不只這些呢。我繼續靜靜地想建個簡單的網站,什么功能都還沒執行,光在星期天下午就 找到45個問題。而我是個懶人,不會在這件事上用超過兩小時。我只用了產品最基本的功能, 其他東西連試都還沒試。
我星期一早上回去工作時就把整個團隊都找去廚房。我告訴他們這45個問題(公正地說,里 面很多都不是真正的問題,只是沒有原本設計那么方便的小缺失)。然后我建議大家要用 CityDesk至少建立一個夠份量的網站,好把問題都熏出來。這就是吃自己的狗食的意思。
以下是找到的某個問題。
我預期很多人會想用復制HTML碼并貼上的方式,把現有的網頁匯入CityDesk。這個動作是可 以正常作用。不過當我想匯入某個紐約時報的網頁內容時,我得花一整天耐心地編輯HTML 內容,找出所有IMG連結(連到外部的圖片)并由網絡下載圖片,再把圖片匯入到CityDesk, 然后把IMG鏈接改成指向內部圖片。雖然很難令人相信,不過那個網站上某篇文章竟然有65 個IMG連結,分別指向35張不同的圖片。有的是只有一個像素的分隔圖片,小到很難用瀏覽 器下載。另外CityDesk有個好玩的強制規定,會把匯入的圖片用神圣的數字重新命名,而且 完全沒辦法知道會用什么數字,總而言之就是我得花一整天才能把一個網頁匯入CityDesk。
這開始有點令人沮喪,所以我就離開一陣子去除草了。(我不知道等草都除完之后要用什么 來排解壓力。感謝上帝我們還請不起造景服務。)這時候我突然想到:嘿,我是個程序員耶! 匯入一個網頁加上調整圖片用的這些時間,足夠我寫個全部自動完成的子程序了!事實上, 去寫個子程序用的時間可能還比較少。現在匯入一個網頁不用一整天,只要半分鐘不到就好 了,而且基本上完全不會做錯。 哇! 這說明了為什么要吃自己的狗食。
當Michael自己開始匯入某些網站時,他發現大約十個我不小心引起的問題。舉例來說,我 們發現網站用的圖片名稱如果太復雜,在匯入時會無法轉成檔名,比如問號在URL里是合 法的,可是不能用在檔名里。
有時候當你下載了某個軟件,卻發現它爛得無法置信,或是費盡工夫才能完成該軟件應該很 簡單就能做好的事。這時候原因很可能就是開發人員并沒有用過該軟件。
關于沒有吃自己的狗食而出事,我還有個更好玩的例子。猜猜看Juno在線服務內部用什么電 子郵件產品?[告訴剛來這里的人,我在Juno客戶端程序團隊工作過幾年。]
嗯,你猜Juno嗎?因為那是,呃,我們的產品嗎?
錯。有些人(包括老板)在家里用Juno,不過我們其他175人都用微軟Outlook。
至于不用的原因? Juno客戶端程序并不是什么偉大的電郵軟件;兩年間我們唯一做的事就是 用更好的方法顯示廣告。我們大多數人都想過,如果我們必須用這個產品,我們就得把它做 好一點才能讓自己好過一點。老板非常堅持在使用過程中要顯示六個廣告,不過等他回家看 過那六個突現式的廣告之后,說的話就不一樣了 : 「知道嗎?兩個廣告大概就夠了。」
AOL的會員人數能急速上升,部份原因是因為它提供比Juno更好的使用者體驗,而我們因為 沒有吃自己的狗食,所以搞不清楚這回事。而我們不吃自己的狗食是因為它很難吃,可是管 理階層實在太失職,根本不淮我們修正問題或讓它至少可以入口。
總之CityDesk開始感覺好了許多。我們把那些問題全部修好,另外又找到些新問題然后 也全解決掉。我們加了一些之前忘記但后來發現很重要的功能。而且我們愈來愈逼近出貨了! 萬歲!謝謝上帝我們不必和37家有著2500萬創投資金的公司競爭。這些公司競爭的方式是到 處免費送出產品,好在你前額剌上大片的廣告剌青。在這個后新經濟年代,大家都想找出不 需要收錢的方法。如果你夠聰明的話,后新經濟并沒有什么不對。不過這數不盡有關于「網 絡昏迷(dot-coma)」的新聞,只顯示商業刊物編輯的創意不足。fuckedcompany.com抱歉了, 玩一個月還算有趣,搞到現在就變可憐了。我們會聆聽客戶的聲音并吃我們自己的狗食,專 注改善我們的產品并會堅守本業。而不是在到處飛來飛去募集更多創投資金。
- 第一部分 位與字節:編程實踐點滴
- 一、語言的選擇
- 二、深入底層
- 三、joel測試:改進代碼的12個步驟
- 四、每一位軟件開發人員必須、絕對要至少具備UNICODE 與字符集知識(沒有任何例外!)
- 五、輕松寫就功能規格說明書 - 第1節:為什么煩心?
- 六、輕松寫就功能規格說明書 - 第2節:什么是規格說明書?
- 七、輕松寫就功能規格說明書 - 第3節:但是……如何?
- 八、輕松寫就功能規格說明書 - 第4節:技巧
- 九、輕松制訂軟件進度表
- 十、每日連編是朋友
- 十一、難伺候的故障修復
- 十二、軟件開發中的5個世界
- 十三、稿紙原型開發
- 十四、不要被太空架構師所嚇倒
- 十五、開火與運動
- 十六、人員技能
- 十七、源于計算機學科的三個錯誤思想
- 十八、二元文化
- 十九、自動獲取用戶故障報表
- 第二部分 開發人員的管理
- 二十、面試游擊指南
- 二十一、重金激勵害多利少
- 二十、二不配備測試人員的五個首要(錯誤)原因
- 二十三、任務換人有害無益
- 二十四、絕不去做的事情,第一部
- 二十五、冰川下的秘密
- 二十六、漏洞抽象定律
- 二十七、程序設計界的LordPalmerston
- 二十八、評測
- 第三部分 Joel對常態問題的遐想
- 二十九、RickChapman解讀愚昧
- 三十、在這個國家狗是干什么的? 我們有多么天真?
- 三十一、作為哼哈二將,只管去做事
- 三十二、兩個故事
- 三十三、巨無霸麥當勞與天才廚師JamieOliver
- 三十四、沒有什么像IT看起來那么簡單
- 三十五、提防非自主開發綜合癥
- 三十六、策略I:BEN&JERRY公司與AMAZON
- 三十七、策略II:雞與蛋問題
- 三十八、策略III:讓我回去!
- 三十九、策略IV:大件與80/20神話
- 四十、策略V:公開源代碼的經濟因素
- 四十一、墨菲法則肆掠的禮拜
- 四十二、微軟公司是如何敗北API之戰的
- 第四部分 對.NET稍多的評說
- 四十三、微軟精神失常了
- 四十四、我們的.NET對策
- 四十五、請問,我可以使用連接程序嗎