太子爷小说网 > 杂集电子书 > 微软研发致胜策略 >

第25节

微软研发致胜策略-第25节

小说: 微软研发致胜策略 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



重复就是浪费
前两节中我提过的那位程序设计师,在为Excel 开发
“键盘驱动菜单” (keyboard…driven menu) 时,另一位程序
设计师也正在为Macintosh 版的Word 写同样的程序,两
者相距仅十步之遥。虽然我向Excel 的程序设计师提过这
件事,也分别向Excel 和Word 的项目经理商讨过,希望
避免性质重复的开发工作,但是没有实际效果。两边的
程序设计师仍然分别写自己的键盘驱动菜单,且都正确
执行,两个都很完美,但使用者界面就是截然不同。我
认为这是非常可惜的,我觉得我们错失了一个让Excel 和
Word 的使用者界面互相整合的机会,这样可以减少一半
的开发时间,也可以建立起一套菜单的函数库,顺便可
224
微软研发
致胜策略下载
供其他的应用软件小组使用。因为他们的态度是“这东
西不是本组写的”,所以一定不适用,以致没有人在意我
们的程序设计师在做重复的工作,结果是无法产生标准
的微软菜单惯例。
我个人对开发工作有一个原则:凡是别人写好、测试
通过,而我可以使用的程序,我一定二话不说就把他的程
序抓过来用。基于这样的态度,我在开发自己的程序时,
总是尽可能为潜在的使用者设想,写出一个别人可以使用
的程序。我虽不能把程序做到完全的可移植性,但我尽量
做到“让程序代码可以重复使用” (reuse),在其他条件相
同时,我永远选择让别人分享我程序的做法。
在Excel 的最早期版本中,有一位程序设计师做出了
一个很棒的功能:打印预览(print preview),让使用者在
打印之前,预先瞧瞧一下大概的样子。这个功能设计得非
常具有直效性,可以一页页往前或往后翻,而且连图形也
能显示出来,还有整份文件的预览。
这个打印预览受到使用者的极大好评,因此M a c i n t o s h
版的Word 小组奉命在Word 里也做一个打印预览的功能。
他们做得比Excel 的打印预览精致得多,相形之下,Excel
的打印预览反而显得粗糙,不够精良。所以我也奉命将
225
微软研发·致胜策略
态度问题下载
Excel 的打印预览改得更完美,要像Word 一样好得令人
刮目相看。
我的第一个想法是放弃Excel 的打印预览程序,而把
Word 那一套拿过来用,这样不但减少开发的人时,而且
可以使Excel 和Word 两种产品的使用者界面更统一。当
我把这个想法告诉一位Word 的程序设计师,他告诉我他
们的打印预览程序与Word 主程序是紧密结合的,只适用
于Wo r d,别的产品恐怕很难引用;他说他可以修改这个
打印预览程序,但是他从来没想过我们会想要这个程序,
毕竟Excel 已经有了另一个打印预览程序。真是令人伤心,
我不能用他们做得这么棒的打印预览程序。
最后虽然我把Excel 的打印预览修改得更精致,功能
更强,但还是Word 的效果比较好。更令我沮丧的事情是,
由于Excel 的打印预览具有可移植性,反而其他的应用软
件都是使用Excel 的打印预览程序,而非Word 的打印预
览程序。
我曾说过,撰写新功能最好的方法是引用别人已经写
好又测试过的程序,也就是程序代码的重复使用( c o d e …
r e u s e )。虽然大部分的程序设计师都很认同这一点,但是
他们潜意识里觉得别人写的程序很难拿来使用。
226
微软研发
致胜策略下载
为了增加程序代码的价值,程序设计师应该培养新的
态度,注意自己写的程序是否具有“可再利用性”,要满
足这一点,程序设计师就会尽量减少子程序与主程序之间
的关连性,让子程序独立,才能被别人使用。这个问题就
和避免直接使用global 变量一样,有时候的确无法避免,
但还是有技巧可以排除这个问题。
程序设计师应该随时自问:
这段程序代码是否对别的(或是未来的) 程
序有用?
或是反过来问:
这段程序代码是否确实只有我一个人需要,
别人不太可能引用?
如果“可再利用性”的答案是肯定的,这个程序就应
该写成很独立的方式。像键盘驱动菜单或打印预览这类的
程序,当初就应该做成独立的、可再利用的程序。也就不
会造成现在Word 和Excel 得做重复的工作,但没有双倍
的效果。
227
微软研发·致胜策略
态度问题下载
将程序的可共享性当作优先考虑的目标之一,
否则程序设计师将经常做重复的工作。
杠杆的效应
如果您的部门想要比别人更成功,就得学会善用“杠
杆原理”,就是设法使投入的有限力量得到更大的报酬,
也就是事半功倍的意思。每位组员都应该牢记这个原则:
充分利用现有资源或创造新资源,以便从
每一项工作中获得更大的价值。程序代码的再
利用,就是很好的例子,当然,还有其他的地
方可以运用“杠杆原理”。
我在第6 章提过训练新兵的原则就是一种“杠杆原理”
的运用,您让新加入的程序设计师优先学习公司内使用最
广的技术,最后再让他接触只有本项目会用到的技术,如
此一来,这位程序设计师对公司的价值就会被提升了。对
您的项目来说,新加入的程序设计师学习的先后顺序都无
228
微软研发
致胜策略下载
所谓,但是万一这位程序设计师被调到其他的小组,这个
顺序就很重要了,因为结局只有两种:程序设计师很快进
入状况、或是完全重头开始学习。
只要您用心发掘,大部分的工作里都有杠杆存在的。
举例来说吧,有一回,我在审核使用者界面函数库时,技
术经理拿了一份加强该函数库功能的提案列表,这些功能
几乎涵盖了所有小组的需求,看起来很不错。我对他说:
“这看起来很不错,但是某些函数库的界面似乎和
Windows 的不太一样,你有没有参考过Windows 手册所
列的函数库?”
技术经理似乎有点冒火:“马魁尔,这个函数库可不
是给Windows 用的,只要我们的函数库好用,谁在乎
Windows 怎么呼叫函数库,我觉得要我去看Windows 参
考手册是在浪费时间。”
他说得很对,我这才明白我根本没有向他解释过,为
什么我认为我们的函数库界面应该和Windows 的一样。
于是我说:
“对不起,我想我懂了。你的意思是说,只要我们的
函数库做得好就行了,至于函数库的界面是怎么样似乎是
次要的,可以和Windows 的函数库界面相同,也可以不
229
微软研发·致胜策略
态度问题下载
同,对吧?”
他点点头:“对呀。”
“请让我问你一个问题,现在有2 0个小组在用你的函
数库,你想他们会不会调去做Windows 的软件呢?”
“没错,是有可能。”
“我想也是。那么请你告诉我,那些程序设计师被调
去Windows 的项目时,会很容易学会使用Windows 的函
数库吗?”
他脸上露出恍然大悟的表情:“只要我们把函数库的
界面做得和Windows 的一样,那就非常容易了!等等,
你的意思是说,我们顺便教他们Windows 的程序设计?”
“完全正确,而且你想,这样做公司会需要付出什么
额外成本吗?”他想了一下。
“我想,什么都不用,只要我去读Wi n d o w s参考手册
就行了。”
“没错。另外有件事也请你回去时顺便想想:你会永
远做当这个函数库的技术经理吗?包括你,也可能调到
Windows 的项目呢?”
您可能从来没想过,像“为函数命名”这样简单的事
情竟然也能有杠杆原理,虽然是这样小的事情,却也能导
230
微软研发
致胜策略下载
出不少连带的利益。
人们之所以无法创造出新的杠杆,是由于这需要对未
来有洞烛先机的远见和很大的信心,相信我,现在您所创
造的价值,将来必定有所回报。即使您现在创造的资源未
必能在预料中的将来派上用场,但是现在的世界变化这么
快,所以,您应该保持乐观和健康的心态,随时为未来做
好准备,如果您有各项齐备的资源,需要时便立即可用。
我一向相信这个真理:
如果您创造了一项资源,并且让别人知道,
那么总有一天会派上用场。
当我开始做Macintosh 的交叉发展项目( M a c i n t o s h
cross development project) 时,应用软件和程序语言这两个
主要的需求部门都将这个项目视为仅限内部使用,但我的
目标却希望将这个发展系统架构在微软已上市的8 0 x 8 6
MASM 产品上,也就是拿80x86 版的软件来修改,这样做
的好处是,我们交叉发展系统就能随着80x86 MASM 做同
步改良。这又是一个杠杆的实例,而我打算把它发挥得更
淋漓尽致,因为我相信其他公司的程序设计师如果有了我
的交叉发展系统,就可以一边写Windows 的应用软件,一
231
微软研发·致胜策略
态度问题下载
边顺便做出Macintosh 版。当时大部分的人都认为我疯了,
但是我非常地肯定,交叉发展系统不应该只限微软内部使
用,而应该是个可以上市的产品,如果我们不在一开始时
就认清这一点,将来我们的决策都很可能方向错误。
所以我在设计会议中常常主张,某个方法确实适合内
部使用,但如果我们想把交叉发展系统当作正式的产品,
就不应该这么做。
“但是我们本来就没把它当成正式产品啊。”有人会这
么说。
我会说:“没错,如果你从来没想把它当成正式产品,
它就永远不会是。但是如果它的设计和品质够好,市场上
有需要,为什么它不能既当作内部使用、也同时被当成产
品卖?”
事实证明,大部分的情况是我们不但能够想出一举两
得的方法,还能做出更好的设计、花更少的时间去开发。
目标提高迫使我们必须思考得多一点、难一点,有时候反
而想出了更好的设计方式。也有些时候,我们会发现如果
仅供内部使用的话比较容易开发,坚持把它做成产品的话
时间上会花得太多,那我们就暂时做个内部使用版,等将
来要将它商品化时再来修改这一部分。
232
微软研发
致胜策略下载
每当上级主管关心我们的项目状况,我除了演示文稿
项目进度外,都会向他们说明我的策略是尽量以将来要商
品化为目标。上级主管唯一关心的,也是我所认同的,就
是不要花时间去做将来用不到的东西。
没有人相信交叉发展系统终有一天会商品化。但这一
天还是来了,微软宣布了“四海之内皆视窗” ( Wi n d o w s
Everywhere) 的计划,就在刹那间,我的项目就成了微软
在非80x86 平台的Windows 解决方案,Macintosh 的交叉
发展系统正式宣布将成为一项产品,并列入非常优先的地
位,公司加派更多的程序设计师进来。
从您的每件工作中创造最大的资源,
不管是利用现有的杠杆,或是创造新的杠杆。
善用资源的态度
我一直鼓励您在任何时候,都尽量以创造资源的态度
做事,这是我在本章中所倡导的观念。只要稍微改变一下
态度:不是把上头交办的工作完成就算了,而是去思考哪
233
微软研发·致胜策略
态度问题下载
里可以产生杠杆,您的工作成果是不是可以创造出更有用
的资源,这种投资报酬率比我所知道的任何一种训练方法
都高。
持续不断的改善是件好事,这样做的话,您就可以经
常保持领先竞争对手的优势,但是若希望您的小组更上一
层楼,就必须培养他们自动自发的心态。前面说过的那位
技术经理,一开始不愿意读Windows 函数库手册,只不
过是因为我没有解释理由,一旦他了解我的动机是创造资
源,他一点都不需要我催促他看Windows 函数库手册,
他已经有了自动自发的态度。
重点提示
新进的程序设计师必须了解,写出“零错误
程序”并不是容易的事,如果他们有这种认
知,就不会轻易坚持自己的程序已经完成,
没有错虫。有经验的程序设计师知道,写出
“零错误程序”很困难,但是并非不可能,
那是需要多下点功夫才能做到的,程序设计
师应该在把程序送交测试小组之前,彻底用
234
微软研发
致胜策略下载
除错工具追踪过程序的执行。由于写“零错
误程序”是这么困难,有错虫的程序一旦被
置入软件,那就会造成极大的损失,要大量
的时间、人力才能大海捞针似地挖出这个错
虫,所以程序设计师务必审慎再审慎,用一
切的办法侦测和预防错误,即使要自己改变
程序风格也无妨。
小心那种

返回目录 上一页 下一页 回到顶部 0 1

你可能喜欢的