微软研发致胜策略-第14章
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
有时候,对方的请求其实是非常合理的,您也很想同
意,但因为您的日程排满了,实在爱莫能助,您也只好对
他们说“不”;然而,在我的经验中,很多主管为了避免
冲突,仍然会同意这样的请求,只是不知道该如何如期完
成这些过多的工作,只想到时候再说,也许船到桥头自然
直。事实上事情很少这么容易—船上若是载了太多货,
就是船身直了也过不了桥啊。
这些主管不了解,勉强自己接下不可能完成的任务,
实在是以长痛代替短痛的做法,而且长痛的是整个团队。
此外,到时候无法如期完成,倒是害得需求小组因此而做
了错误的日程安排,所以,最好的做法还是老老实实地拿
着您的日程表,对需求小组说明自己心有余而力不足的情
况,设法安排一个折衷的日程或工作内容。
87
微软研发·致胜策略
保持进度下载
请想一想其中的差异。当别的小组向您提出他们的需
求内容时,大概都会把期限排在未来一段时间之后,如果
您没办法满足对方的需求,至少在这一段时间内您可以和
对方商量出其他的解决方法。只有两种情况会让您成为坏
人,一是直接拒绝而不试着想别的办法,二是无条件答应
请求而最后食言。与其现在心存侥幸,到了时限却实在做
不出来,以致连累需求小组一起延误,倒不如现在想个折
衷的解决之道。
我们这样想吧:如果您想向银行申请房屋贷款,其中
一家银行马上拒绝您的申请,另一家则是一口答应,但等
到您已经签约成交时却又反悔。您觉得哪一家比较可恨?
我并不鼓励您在进程排不出来的情况下立即回绝,我
只是强调绝对不要答应别人自己做不到的事情。也许您很
想说自己做得到,但那只是希望。通常主管是眼看日程表
排得满满的,或是已发生延误,就够紧张了,如果再加接
下一件工作,就等于确定会延误,其焦虑可想而知。
对身处前线的主管而言,协调好这些彼此矛盾的工作
与日程,实在很不容易。但若是只顾一时的面子,几个月
后公司的大老板就会满脸怒容坐在您的桌子上质问,为什
么广告都上了书报摊了,你才承认进度落后。
88
微软研发
致胜策略下载
别放弃任何可行的方法
要协调原本就对立的双方,有一个要诀,就是寻求真
正的解决之道。如果您对需求小组说“不”是因为您很确
定您的小组人员实在无法在他们的期限之内完成所要求
的,您务必得协助他们寻求真正的解决之道。也许需求小
组自己也可以做这些工作,也许有一部分您的小组可以帮
忙,也许他们可以请求公司里其他的部门支持,说不定已
经有类似的程序代码已经完成,稍加修改就可以运用。不
试试看的话,谁知道呢?
说“不”也许令人不快,但这才是勇敢面对问题的态
度。说完“不”之后,就是设法解决问题的开始;明知不
可行而答应,就是问题发生的开始。
绝对不要答应别人自己做不到的事情,这样对双
方都有益无害。
我无法说“不”
有一回,Word 小组请求我的使用者界面函数库小组
89
微软研发·致胜策略
保持进度下载
做一些成本很高的工作,当时我们的日程排得满满的,如
果决定满足他们的需求,势必使我们进行中的工作发生延
误,这样就会影响到20 个以上的小组。我向Word 小组
解释我们无法做到的理由,以及我们能够做的,但就是没
有办法符合他们对期限的要求。我向他们建议,如果一定
要有这些功能,其实他们也可以自己做,然后由我们帮忙
写文件、测试以及日后的维护。Word 小组不太高兴,认
为我们本来就应该做使用者界面,况且这些功能是大家都
会需要的,这一点并没有错,但这并不能改变我们无法在
期限内完成的事实。我们为了这个问题僵持了两个月,我
终于屈服了,答应他们完成这些功能,并且从我带的另一
个项目中抽调一位程序设计师来帮忙。
很不幸,我实在无法找到合适而足够的人手,后果真
是不堪设想。Word 小组的期限过了几个星期,我才完成
工作,他们都气得要杀人了。我也延误了正常的进度,有
20 个左右的小组受到波及,到处都怨声载道。我非常后悔
当初没有坚持说“不”,现在搞得每个人都不高兴,唉!
你无法让每个人都满意
身为主管,您一定会面临各种要求,为了工作的效能,
90
微软研发
致胜策略下载
您得学会在适当的时机,适当地说“不”。无论您说得多
么委婉,对方都不会喜欢被拒绝,他们可能会认为你错了,
然而,您必须了解自己无法让每个人都满意的事实,您要
做的是协调,而不是完成每一件事,那是做不完的。
如果您负责做共享函数库,某天某个小组要求增加一
些函数,这些是只有他们需要的,如果您说“不”,他们
会很难过,如果您说“好”,其他的小组群起抱怨函数库
怎么体积变这么大。这是永远无解的矛盾问题,谁教您负
责的是共享函数库呢。
当您碰到互相冲突的需求时该怎么办?有没有比较有
效的办法?这就是我在前面强调详列项目目标的用意之一
了。您的目标既然是提供对每个小组都有用的函数,不符
原则的需求就应该婉拒。当然您一定会受到抱怨,您不妨
向需求小组解释原因,万一您今天破例做了“专用”的函
数,大家都会来这样的要求,最后函数库成了大杂烩,就
失去了函数库的意义,这不花您太多时间的,对方再怎么
不悦,您还是要耐心解释,问题总得交代清楚。
每个人都不愿意被别人讨厌,这是人类的本性。但是
身为软件开发的主管,您就必须掌握这个道理:如果您希
望每个人都满意,最后您会焦头烂额,什么事都做不成。
91
微软研发·致胜策略
保持进度下载
以我的经验,人们虽然不喜欢自己的需求被拒绝,但
如果您有充分的理由,他们还是会了解的,并且感谢您的
用心。
不要为了讨好别人而伤害双方的工作进程,您永
远要根据自己的目标,做适当的决策。
如果不是函数库项目
我以函数库的实例讨论互相冲突的需求,您可能不是
负责开发函数库的,无论您负责的是什么项目,我们所讨
论的观念和做法几乎都可适用。基本上,您难免会遇到外
部的要求,提出需求的人甚至可能是行销小组,或是来自
使用者的反应,即使是极端机密的软件开发项目都可能有
人来插上一手,您必须学会摆平冲突。
上级的建议
一位主管在做任何决策时应该以项目目标为最大的考
虑,不要企图讨好别人,尤其不要盲从上级提出的建议。
92
微软研发
致胜策略下载
我不是主张反抗权威,而是强调上级也是人,一样可能犯
错,他们的建议不一定是好的,尤其是他们可能不了解您
的目标、决策优先级,以及您所必须面对的技术挑战。如
果您想做一位出色的主管,您必须非常认真地衡量所有的
建议,不论是谁提出的,您都得确定其符合项目目标才能
采纳。
如果上级要求您做一件事,而您认为不妥,那您应该
在着手进行之前向上级说明您的想法。也许,上级会同意
您的想法而放弃他的建议,也许,上级会赞许您的想法,
但仍请您考虑他的意见。不论结果如何,起码经过沟通对
彼此都有帮助。
有一次,我查阅一位资深程序设计师的程序。对其中
有一些很明显属于设计上的缺点我很惊讶,我不太相信这
么一位优秀的程序员会写出此等程序,于是我问他为什么
这样设计。
“是柯比设计的,我只是照做而已。”柯比是他的项目
经理。
我觉得好奇的是他自己的看法:“你自己觉得这样设
计好吗?”
“如果是我设计,不会用这种方式。”
93
微软研发·致胜策略
保持进度下载
“你在写程序的时候,应该能感觉到这一点吧?”
他轻描淡写地说是的,并且耸耸肩道:“但我刚到微
软不久,柯比是我上司,我认为他应该比我有经验,他这
样设计也许有特别的用意。我可不想把事情搞砸。”
事实上,柯比并没有比这位程序设计师有经验,他只
是比较幸运,在微软待得比较久罢了。
对于这个观念,我还有另一个很有意义的实例。当时
我领导Microsoft 680x0 的交叉发展系统(在Macintosh 和
PC 之间使用),我的顶头上司,也就是有权变动我计划的
人,名叫莫特。每隔一段时间,莫特就会到我的办公室来
问我有关680x0 的C/C++ 编译器项目进展的问题。他每
次来必定会问一个问题:
“FORTRAN 进行得怎么样了?”
莫特很清楚我们根本不做F O RTRAN 的编译器,但
是他喜欢F O RT R A N,而且他相信一个好的M a c i n t o s h版
F O RTRAN 编译器一定很有销路。事实上,如果把我们做
好的C/C++ 编译器修改成F O RTRAN 编译器并不太难,
我和莫特都知道,微软开发编译器都是遵循大部分教科书
所描述的三阶段方式:
1 。前端处理(front end) :把高级语言(如C / C + +,
94
微软研发
致胜策略下载
FORTRAN 等) 解析成中间代码。
2。 优化( o p t i m i z e r ):对中间代码做执行时间的优化
处理,诸如程序代码搬移、调整,同次表示式消去等
等。
3。 后端处理(back end):从经过优化的中间代码,产
生最佳的执行代码。
当然,实际工作比这三点略述要复杂得多。但是由这
些您可以看出来,要推出一个Macintosh 用的编译器,只
要重新写一个后端处理,就可以把英特尔80x86 的编译器
转成摩托罗拉680x0 的编译器。
从理论上说,一旦我们完成了680x0 的后端程序,我
们就可以用它来把所有的英特尔80x86 的C / C + +、
F O RT R A N、Pascal 的后端处理替换掉,这样就做出摩托
罗拉680x0 的C / C + +、F O RT R A N、Pascal 的编译器了。
这就是莫特对F O RTRAN 特别有兴趣的原因。然而事实
上,我们要做F O RTRAN 编译器的话,必须把后端处理
完全做好才行,当时我们只完成了95% 的C / C + +编译器
后端处理。
每一次莫特问我有关F O RTRAN 的问题时,我的回
答也是千篇一律:“我们还没有开始。”然后再补充道:
95
微软研发·致胜策略
保持进度下载
“主要是因为F O RT R A N编译器的关键组件—后端处理,
尚未完成的缘故。”
莫特也许是对的, F O RTRAN 编译器在M a c i n t o s h上
也许会有很好的市场,但是他忽略了项目最优先的目标。
就算是有再好的市场,也实在没道理要把做了一半的项目
停掉,更何况他自己也认为C/C++ 编译器的市场潜力应
该比F O RTRAN 更好。要不是莫特的个人兴趣,我不会
和他讨论这么多次,他的个人兴趣已经蒙蔽了他身为主管
的智能。
您必须保护项目不受外界的左右,尤其是当这种操控
来自特权人物之手。像莫特这样,想法明明是错的,您却
得服从上意。如果是我刚开始担任主管时,我会向压力低
头,服从上级的意思,现在我学会了独立判断,不论是谁