按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
特征的杯子,这样服务生只要一看到杯子,就知道这位客
人喝哪种咖啡,续杯时就不会弄错。
常见的问题,也许只用一个微不足道的方法就可以解
决。
除了咖啡店的例子之外,我们来想像一下,还有没有
别的地方也可以运用这个原理解决问题。现在我们来看另
一个例子。
我家附近有两家咖啡屋。他们用一模一样的咖啡壶、
咖啡豆,连服务生都一样用的是大学生,怪的是,煮出来
的咖啡却大不相同:其中一家的咖啡一直是浓淡相宜的,
另一家却时浓时淡,有时甚至烧焦,简直令人难以下咽,
您根本不知道端上来的咖啡会是什么样的味道。
这两家咖啡屋的一切设施几乎完全一样,除了一个小
小的细节:质量稳定的那家,他们的咖啡壶上有一条横的
浮雕花纹,这就是简单而关键的质量体系(quality system)
的秘诀,靠着这条细细的横纹,他们可以提供品质稳定的
好咖啡。每次新的服务员到职,经理就指着这条横纹给他
上课,告诉他:
“你倒咖啡时,只要发现水位在这条线以下,就要立
46
微软研发
致胜策略下载
刻煮新的一壶,要立刻去煮,不要被任何事情耽搁。”
“万一那时候店里很忙怎么办?”
“即使一整队的芝加哥公牛刚刚打完球,全挤到这儿
来也不管,还是先煮新咖啡要紧,那怕你已经倒好一杯咖
啡要端给美国总统,只要看到水位在这条线以下,就要停
下所有的事,先去煮新咖啡再说。”
接着,经理开始解释,从一个空壶、放进磨好的咖啡
豆、到开始煮,总共要花1 5秒钟,这样虽然会让客人多等
1 5秒钟,但却可以避免这壶咖啡全空之后、新咖啡未煮好
前,让客人多等7分钟。
但是如果您走进另一间咖啡屋,坐下来,您可能会
看到服务生伸手拿咖啡壶却发现里面是空的,于是您得
等上7分钟。有时候,服务生为了让客人少等些时候,就
会看看从咖啡机滴到壶里的已经煮好的咖啡,如果能凑
成一杯的话,就把这杯倒给您。但是好的咖啡不是这样
煮的,应该等到这一泡咖啡完全从咖啡机里滴到壶中,
热水和咖啡的混合比例才会恰到好处,如果太早把壶内
的咖啡倒出来喝,就会太浓而难以入口,而后段的咖啡
又太淡没有味道。这就是这间咖啡屋质量不稳定的原因。
所以有时候倒出来的咖啡,虽然看起来很像咖啡,味道
47
微软研发·致胜策略
策略性的作业方式下载
却是咖啡渣加白开水,有时候喝到很正常的咖啡,有时
候咖啡竟煮焦了—为了快点煮好咖啡,咖啡机内只放
了一杯份量的咖啡和水,由于水太少,加热器不容易调
到适当的火力,结果咖啡就焦了。
这两家咖啡屋唯一不同的是,一家等到壶内的咖啡全
空了才再煮新的,一家却是壶内的咖啡到了低水位时就再
煮新的一壶。两家的作业方式几乎完全一样,就只有这点
小小的差异,结果竟然如此天差地远,而且这和人员的技
术毫无关系。
我举咖啡屋的例子,当然是因为这个原理和软件开发
很有关连。
如果我问您,软件开发过程中,正确的除错时机是什
么; 您会怎么说?等到所有的功能开发完毕后再一起测试、
除错,或是一发现有错误就立刻除掉它,或是无所谓,反
正花的时间都是一样的。
如果您认为何时除错都一样的话,那可就错了。这就
像咖啡屋经理误以为什么时候煮新的咖啡都无所谓,是一
样的错误观念。对于项目经理而言,最坏的情况莫过于被
错误整得团团转,根本无法追求项目目标;如果您想要控
制好项目的发展,最好是不要有任何的错虫,忽略了这个
48
微软研发
致胜策略下载
目标就等于是注定失败(我在《零错误程序》一书中有详
细的说明)。当我刚加入Microsoft Excel 工作小组时,他
们都喜欢把错虫留到后头再来清除,我指出这种作法可能
带来的种种问题,最糟的一个结果是,到时候会无法决定
产品究竟可不可以推出。因为实在太难估算一个错虫要多
少时间去把它逮到、消灭,再说,除错的动作可能带来新
的潜在错虫,这是测试小组无法确定的。
如果只管开发,把错虫留到最后再来解决,会让项目
的完成比率被高估。看起来好像已经完成开发的项目,高
层主管却惊异地发现还要用六个月的时间除错,而只有真
正在拼命除错的程序设计师才晓得为什么,因为到处都是
错虫,这个产品不能推出。
在好几项软件因为错虫太多而不得不宣告失败之后,
微软决定好好自我检讨一番,以下是这次检讨的摘要:
◆ 错虫愈晚清除,时间花得愈多。毕竟,您得知道程
序是怎么写的,才能判断那里出了错虫;刚写完的
程序记忆犹新,一年前写的程序可能早就忘了。
◆ 在开发的过程就立即除虫,可以让您早些学到经验,
然后就不会再犯同样的错误;相反地,如果到了项
目后期才发现,您可能已经犯过多次同样的错误而
49
微软研发·致胜策略
策略性的作业方式下载
不自知。
◆ 发现错虫而立即除错是一种缓冲器,提醒那些讲求
快速而不够谨慎的程序设计师,以后多加小心。如
果您坚持错虫全都清除了才能开发新的功能,就可
以防止所有的程序处于半完成状态,因为错虫太多
而使项目延误乃至无法推出;相反地,如果您允许
错虫的存在,等于是埋下了项目失控的地雷,最后
看似完成的项目,其实已经失控。
◆若能保持没有任何错虫,您就能比较准确估出项目
的完成时间。不必猜测3 2项功能和1 742个错虫共要
花费多少时间,只要估算3 2项功能的工作时间就行了。
更重要的时,万一到时候有些功能做不完,您可以做
多少算多少,因为软件一直保持在无错误状态。
我经常提醒每一位程序设计师,假若您发现了错虫,
而不打算立刻除掉它,请想想微软的惨痛教训。从别人的经
验中学习比较上算,要不然您想自己走一遍错误的道路吗?
一发现错虫就立即清除掉,别拖延。
50
微软研发
致胜策略下载
无法忍受的慢
在微软,有些小组把“错虫”的传统意义扩大解释,
包括产品的性能缺陷也算是一种错误;例如软件的执行速
度太慢了,即使所有的功能在逻辑上都是正确的,仍然被
认为是一种错虫。
如果他们有确实采取“一有错误、立即更正”的策略,
他们就得事先定义何谓“无法忍受的慢”,也就是必须早
点定出质量规范指导,这样的话,程序设计师一开始就知
道标准是什么,免得到时候又得重写部分程序代码。
这样做的缺点是程序设计师可能过度追求速度而写出
很复杂的程序,因为在写完之前他无法知道整体的执行效
率会如何,有时候会品质过高,不过一般来说这种缺点是
很容易被发现并改正的。
程序设计师应该把找错虫当成一件很重大的事,必须
立即采取相应的行动,不为任何理由而耽误,就像咖啡壶
里的水位一般。要求错虫随时发现随时改,等于是在开发
过程中引进一个小小的质量管理机制,多方的防微杜渐,
保护产品的正确性,这种策略还有其他的好处:
◆ 以事实向程序设计师耳提面命,错虫是一件严重的
51
微软研发·致胜策略
策略性的作业方式下载
事情,不可轻视忽略,也无法逃避,还是勇敢面对
它、尽早解决它最好。
◆ 自己的错虫,自己负责清除。不该是小心翼翼的人
去帮助散漫随便的人收拾残局。老是出错虫的程序
设计师,会因为必须清除错虫而十分辛苦,而没有
错虫的程序设计师则进度稳定,这样才公平。一方
面也是鼓励程序设计师,要非常小心谨慎,一个错
虫的代价常常是很高昂的。
◆ 如果一发现错虫就立刻清除,就不会漏掉重要的
错虫,也不会到头来赫然发现好长一串错误清单,
以致到了期限前才发现项目的延误。也就是说,打
击恶魔要趁早,趁它还没有长大到无法收拾以前就
把它消灭掉。
◆ 最后,也是最重要的一点,如果您要求程序出现
错虫时立刻清除,那么程序设计师的功力高下便可
立见分晓,如果有人的进度一直落后,这等于是警
告您—他需要加强训练了。
软件开发过程中,有非常多的小事情会影响整体项目
进行的顺利与否,以及产品的品质,绝对不可因为事情
“小”就不予重视。咖啡壶上的那一条小小横线就是例子,
52
微软研发
致胜策略下载
您可以看出来它的影响有多大。您可以想出更多让项目顺
利进行的方法,抓对要点的小小改变可以带来大效益,好
好运用这个原理,您会受用无穷。
妥善运用可以促进开发成效的策略性工作方式。
电子邮件的陷阱
e…mail 实在是个很棒的工具,我简直无法想像没有它
的话,工作效率会变成什么样子。但是我不得不说,水能
载舟亦能覆舟,如果e…mail 被不当使用,它也会伤害生产
力。
我常发现新进的程序设计师喜欢让e…mail 打断他们
的工作,我不是指他们发了太多的e … m a i l,而是只要有新
的e…mail 进来,他们就停下手边的工作,看看有什么新鲜
大事发生了。新进人员一般不会有太多e…mail 必须回复,
大部分的e…mail 都是被动性的信息,像微软股票的收盘价、
同业的重大讯息、当天的头条要闻等等。
新进人员常常每隔5 分钟就看看e…mail 信箱,这样
53
微软研发·致胜策略
策略性的作业方式下载
他们一天下来可能一件事也做不成,因为写程序的工作是
无法分割成n个5 分钟的片段去完成的。为了解决这个问
题,我只能不断告诫新进人员,回复e…mail 要分批做,不
需要实时就做:早上一进公司时看、中午休息