# 三十、在这个国家狗是干什么的? 我们有多么天真?
我们假设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_lndex.gif)
哦?抱歉,你买了联机指数(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对策
- 四十五、请问,我可以使用连接程序吗