按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
受到威胁。我们希望任何事情都很自然,没有必要加重组员
的苦恼,绝不是强调谁是老板谁是奴才,谁必须服从谁。
在微软曾经有几位主管,每次一遇到项目进行不顺利,
就把组员叫出来骂,说他们是最差劲的程序设计师,不配
自称是微软的程序设计师,以及等等之类的无聊话。我不
能确定这几位主管究竟用意何在,但是如果他们的目的是
让组员工作更努力的话,那他们的方法可就大错特错了。
我相信您完全可以想像,这种责骂只会激起组员心中的愤
恨、羞恼和沮丧。更糟的是,就我所知这些项目的问题事
实上都出在管理方面,目标不够明确或是野心太大,这些
项目的程序设计师只是倒霉遇上了差劲的主管,其实他们
的能力并不比公司内其他的程序设计师差,因此责骂他们
只会让项目更糟,绝对没有改善的效果。
68
微软研发
致胜策略下载
您必须小心注意,别设置了不当的负回路系统,例如
以程序新增的行数、或新加入程序的数目来决定组员的奖
金,把程序改好则不记入功劳,那么,程序员肯定只爱写
拼拼凑凑的初稿,程序不求精巧,而且不愿认真改善现有
的程序。您原本希望奖励的是生产效率,结果却造成公司
里大而无当的拼凑程序到处泛滥。
我希望您能从以上的讨论中,体会到两点原则,第一,
当您设计一个新系统时,利用负回路的观念来帮助项目进
行顺利;第二,要考虑这种回馈对员工的长期影响,确定
不会造成不良的副作用。
在您的软件开发活动中,小心谨慎地运用负回路
的观念,让项目顺利进行;但务必要注意避免反
馈回路的不良副作用。
愈简单愈好
最后,请您确定您的策略性工作方式够简单明白,让
69
微软研发·致胜策略
策略性的作业方式下载
人容易了解和遵循。
请回想一下我刚才举过的实例:用纸笔写的稿子、咖
啡的浓度、整批阅读e … m a i l、立即除错,这些都是细微的
小事,不会对作业流程发生重大的影响。
人都希望用简单的方式解决复杂又耗时的问题,因为
人们常常被工作之外的程序性事情绊住。如果问一位程序
设计师:“如何避免错虫?”这个简单,但若是要求所有
的程序设计师针对他所遇到过的每一个错虫写出一份报
告,说明如何避免这只虫,那就是另外一回事了,简单的
事情立刻变成大麻烦;如何避免错误的报告应该是主管去
汇总撰写的,组员只要口述检讨就好。这种麻烦像荆棘一
般,会自动蔓延生长,您必须时常大力扫荡一番。
请切记,我们的目的是整体生产力的提升,而不是去
填满繁杂行政程序的各步骤。我们要获得工作方式的好处,
丢弃它的缺点;妥善的策略性工作方式可以达到这个目的。
重点提示
小小的改变可能产生惊人的效果,所以,
请仔细观察您现有的作业方式,会很容易
70
微软研发
致胜策略下载
发生问题吗?耗费很多时间吗?矫枉过正
或防弊重于兴利吗?会不会让人员心生挫
败,而造成生产力低下?如果是的话,请
找出一种简单又有效的方式改善这些情
况。
当您决定采用任何一种策略性作业方式,
请解释您的用意,让组员充分了解是什么
方面应该改善。这种开放的做法会在无形
中教育组员,让组员学会思考,也许,时
间久了之后,他也能想出很不错的点子。
当您针对问题寻求解决方案时,一遍又一
遍地修正您问自己的问题,培养自己能够
提出精确的问题,想出更好的答案。但光
是精确还不够,精确的问题也可能是错的
问题,让您得到没有帮助的答案。您必须
注意,问题是否切中要害,是否是您真正
想达到的目的,是否是您的理想状况。不
要自问:“如何叫程序设计师加班?”要
问:“如何增强工作效率?”
71
微软研发·致胜策略
策略性的作业方式下载
策略愈是吸引人,愈会有多人认同它,甚
至把它当成牢不可破的定律。请提醒您的
组员,再好的策略也不能应付每一种情况,
“避免用g o t o”是公认的好的程序设计策
略,它让程序可读性提高,但是当不用
goto 的结果是可读性反而更低时,您得教
程序设计师如何权衡取舍。
每当您建立一个反馈回路时,请务必考虑
它的副作用和长期使用的效果。最好的反
馈回路不但可以随着时间增强效益,也能
同时减少负面的作用。
72
微软研发
致胜策略下载
下载
第3 章
保持进度
3
Chapter Three
我们都会希望项目按照事先规划好的进程来进行,
但是事实总是无法尽如人愿,有时候项目会有一
点超前,有时候会落后些,但不会与计划差太多。项目的
进行大都是以迂回的方式前进。
即使是进行最顺利的项目,也无法完全按照计划执行。
但是如果您放任项目随意进行,有一天您猛然发现项目脱
轨太远,无法把方向扭过来,剩下的时间也不够,也就是
说,项目完蛋了。项目就像是一枚瞄准月球的火箭,只要
有一点点不够精确,到时候就无法命中目标,差之毫厘,
失之千里,实在不可不慎。所以,绝对不要让项目有一点
点脱轨,不论是多么小的偏差,倘若您没有立即修正错误,
它很快就会愈跑愈远、无法抓回。
聪明的主管懂得这个道理,他们会经常注意项目的进
度,随时修正方向,保持项目不偏离计划进行。本章将介
绍一些很有效的策略,帮助项目保持进度。
高架道路
我一直相信,项目之所以脱轨,主要的原因在于人们
并未认真思考如何使项目保持进度、顺利前进。如果没有
未雨绸缪,只是坐待问题发生,到那时候就太迟了。一个
74
微软研发
致胜策略下载
月前没有花3 0分钟思考这个问题,现在得浪费几小时或几
天的时间去修正。这就是所谓的“被动式行动” ( w o r k i n g
on reaction),而很多主管都是如此。
解决这种被动式行动的方法,就是化被动为主动,发
掘潜在的问题,并设法避免。以我们在第一章的搬移房子
的比喻来说吧,假定拖车原本缓慢而稳定的行驶,突然在
转角边上动弹不得了,原来是有个高架道路拦住了去路,
这下子只好掉头绕道行驶,结果前方又多了一些电话线,
真是气死人了。本来在地图上看来都是平路,上路了才发
现是这么崎岖,不仅要爬坡,还加上坑洞,怎么办呢?事
先没有勘察好路况,没有准备好应付路况的辅助工具,临
时手忙脚乱不说,还得老天保佑车子别翻了。要是主管用
心做好“向前看”的工作,事先把路铺好,把障碍扫除掉,
这些麻烦都不会发生。
主管不愿意认真地“向前看”,因为不看似乎比较轻
松。您可曾听说过某个主管在面临一个始料未及的障碍时
说:“啊,要是我事先多花点时间想想,就可以避免这件
事了。”以我的经验,很少有主管会这样承认的,反而是
在意外出现时不以为意,他们认为,意外难免发生,很正
常嘛。
75
微软研发·致胜策略
保持进度下载
您得驱逐这种被动式的想法,要积极防范意外才行。
有很多方法和技巧可以训练自己“向前看” ( w o r k
proactively),但总结起来不过是一句简单的要诀:
定期暂停手边的工作,然后往前思考,随
时做必要的修正,以避免未来的大障碍。
只要您懂得向前看,要事先避免大障碍并不困难。比
方说, Windows 版的软件完成后,自然得继续开发
Windows NT 版,或是准备一些示范用的软件。这些事看
似小,但是如果不及早做出相应措施,后面的事情就很难
收拾。就好像开车进入山区之前先把油箱加满是一样的道
理,小小的动作可以避免在山区里加不到油而必须跋山涉
水的窘况。
我已有十年以上的习惯,每天花1 0到1 5分钟思考下面
的问题,并且列出答案:
有什么事情是我今天能做,而且可以帮助
项目在未来几个月内顺利进行的?
这是一个十分简单的问题,但是如果主管定期用它来
检讨、思考,必定能想到许多保护项目不受意外打击的妙
76
微软研发
致胜策略下载
方。请不要把这个问题的答案想得太复杂,事实上,答案
应该简单到能在几分钟之内写完,通常是这样的:
◆ 订购MIPS 和Alpha 处理器的技术手册,以便
Hubie 需要时,随时可得。
◆ 发个e…mail 给Word 的工作部门,提醒他们如果有
任何功能要加在这次的新版里,请在下周一前提出
需求。
◆ 发个e…mail 给负责Graphics 的各位经理,我们需
要的函数库预计在3个星期后用到,确认他们届时
可以交货,没有问题。
没有一件事占掉我很多时间,但是却能省掉我将来可
能面对的麻烦。订购MIPS 的技术手册显然是件小事,但
是手册若是3星期后才送来,万一这中间MIPS 发生了问
题,没有手册,工作就无法继续,那项目就延误下来了。
订购手册要花多少时间,1 0分钟够了吧?现在花1 0分钟让
手册早点有得用,比起急需要用时再花1 0分钟订,再等3
星期,那事情都甭做了。
经常用这种方式思考,您就会想到许多也许会发生的
情况,也许G r a p h i c s小组会晚两周,也许Word 小组不知
道该早点告诉您需求,因为他们以为不急于一时嘛。如果
77
微软研发·致胜策略
保持进度下载
没有经常“向前看”,到时候可能突然发现Graphics 小组
延误了。这下可惨了,所有的工作都会因此而赶不上进程,
或者是Word 小组最后一分钟才发现他们的需求因为告知
太晚而来不及做出来。
当然,在理想的情况下,Graphics 的主管们会事先告
诉我他们要延期完成,但是他们真的会这样做吗?根据我
的经验,几乎是从未有过,因为主管通常会在项目已经明
摆着延误了才会跟别人说—通常是到期的前三天。
每天都要问自己:
“有什么事情是我今天能做,而且会帮助项目在
未来几个月内进行顺利的?”
错误的问题
在Word for Windows 的开发过程中,我曾被要求检
查一个函数库。这个函数库不是Word 小组的人写的,是
一个对话窗管理程序,目的是把应用软件和操作系统区隔
开来,让应用软件的程序设计师在需要对话窗时,只要调
78
微软研发
致胜策略下载
用这个函数库就行,不必担心操作系统是Wi n d o w s、
Macintosh或是其他的系统。
我被交代找出这个函数库为何速度这么慢—Wo r d
的项目经理们无法忍受每次调一个对话窗要等那么久,写
对话窗函数库的程序设计师已经做了一些最优化的措施,
也监测过程序的执行,但是Word 小组还是不满意,认为
这样简直是使公司声誉扫地,双方大吵了一架,而其他原
本打算使用这个对话窗函数库的小组也开始迟疑了。
我去找Word 的程序经理谈,以便更深入了解速度的
问题,还要找出什么速度才可以被Word 小组接受。他递
给我一张清单,上面表列着很多项目,每一个项目旁注记
有可容许的最长显示时间,也就是他们的质量规范指导。
然后我们开始测试,我们一只手按鼠标调出交谈窗口,一
只手同时按下秒表计时,等待对话窗出现。“看!”他一
边指着秒表说:“这个等太久了吧。”我倒觉得没那么可怕,
所以我再测一次,咦,这次快多了,几乎一下就蹦出来,
我说,第二次的速度一点儿也不慢,很明显符合可接受的
质量水准。
“没错,第二次总是没问题,我们是针对第一次要求
改进。因为只要停了一段时间没有使用,再调出对话窗时,
79
微软研发·致胜策略
保持进度下载
速度又变慢了。”
等我了解了实际状况后,回到我的办公室查看原始程
序代码,结果使我大吃一惊,原来问题的症结是Word 的
优化功能。因为Word 的优化功能会取代Windows 的程序
代码置换算法(code…swapping algorithm),当Word 发现某
段程序久未使用,就会自动把它从内存中删除,以充分运
用宝贵的内存。因此,就算对话窗程序再快也无法通过测
试,因为它必须重新自硬盘加载。
所以,让Word 小组抱怨了好几个月的速度问题根本
不是程序的问题,而是内存运用的问题。Word 小组抱怨
对话窗太慢,却没有深入了解原因。单独测试函数库,似
乎是够快了,同样的程序实在没道理在Word 里面就跑得
特别慢。
猜猜错虫在哪里?
很多程序设计