友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
九色书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

微软研发致胜策略-第4章

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



假定项目的目标是做出世界上最快的M a n d e l b r o t
plotter (一种画几何图形的程序),效率就是程序设计时的
第一优先考虑。
暂时不谈程序设计的优先考虑有何重要性,在我的
经验中,主管很少注意到这个问题。程序设计究竟该以
什么为最优先考虑?速度?体积?稳定与坚固性?可移
植性?可维护性?每一位程序设计师对于程序设计的优
先考虑看法不同,并且反映在他们的作品中。如果大家
各自随意,就很容易出现不一致的情况:有些人为了容
易维护而坚持写干净漂亮的程序,另一些人认为速度是
最重要的,所以写了一大堆别人看不懂的程序代码或汇
编语言。
如果您希望小组工作有效率,能够精确地达成项目目
标,您就得建立最适当的程序设计优先考虑顺序,并且让
所有的程序设计师确实遵守。最低限度,您应该为以下的
程序设计考虑点排出一个优先级表:
◆ 体积大小(size)
◆ 速度(speed)
◆ 坚固性(robustness)
◆ 安全性(safety)
34
微软研发
致胜策略下载
◆ 可测试性(testability)
◆ 容易维护(maintainability)
◆ 简洁(simplicity)
◆ 再用性(reusability)
◆ 可移植性(portability)
这张顺序表中唯一需要解释的是安全性,如果您认为
安全比速度重要,您就得选择重安全而轻速度的方式,优
先要求程序中没有b u g。比方说,程序有两种方法可以选
择,一是表格扫描( t a b l e … s c a n n i n g )、一是逻辑判断( l o g i c …
d r i v e n ),前者比较慢,但也比较安全,既然安全比速度优
先考虑,那么除非有别的重要理由,您应该选择表格扫描
的方式。
除了程序的优先考虑顺序之外,您还应该建立各项
考虑点的质量规范指导。例如您认为坚固性是第一优先
考虑,那到底要多坚固才算合格呢?最低限度,程序在
输入资料正确时绝对不该发生错误,但万一输入资料不
正确时,程序会怎么办?程序应该很聪明地处理错误的
输入资料,在某程度内自动更正它(那就得付出体积和速
度的代价) ?或是在程序中加入检查输入的动作,尽可能
督促使用者输入正确的资料?或是就让错误的资料进入
35
微软研发·致胜策略
奠定基础下载
处理,干脆一路错到底?这个问题没有标准答案,全看
您对品质的要求。
大致上,如果是操作系统,在不死机的前提之下应该
尽可能接受输入值,如果是应用软件,应该尽量能更正不
合法的输入资料,对无法更正的输入应该提出警告。但是,
如果纯粹就程序的质量而言,也许该考虑强调性的失败信
息,例如一个函数库中的程序,遇到部分不正确的输入值
时,虽然可以做下去,但无法预料会有什么结果,此时不
如当成错误的状况处理而中断执行,以免错用这个函数的
程序误以为一切安好。总之,在一般情况下都应该对不正
确的输入作某种程度的处理,只要别让程序代码过度庞杂
就好。
这里的重点是,如果事前就决定了最合适的优先考虑
顺序,以及各考虑点的质量规范,团队就不会浪费太多时
间把程序改来改去,程序的整体风格比较容易一致。
事前决定最合适的优先考虑顺序,以及各考虑点
的质量规范,能够指引开发团队的工作。
36
微软研发
致胜策略下载
安全性或是可移植性?
以我个人的观点,我通常把安全性放在比可移植性优
先的地位,也就是说,我喜欢安全的程序甚于可移植的程
序,这听起来有点含糊,那是因为可移植性高的程序通常
表现出的安全性也高,事实上,这两种特性没有真正的关
连,只是可移植性高的程序碰巧也是安全性高的程序罢
了。
写C 程序时,宏(macro) 是很好用的,它可以用来当
作子程序的定义,但事实上它跟函数(function) 不同,每
一次启用宏,会被展开成一段一般的程序代码。但如果写
得不够小心(例如同一名称重复定义),它会造成潜在的
b u g,这一点C 语言程序设计师都非常清楚。用宏的方式
来做函数,很好用但容易有危险。
如果您愿意利用某些C 语言编译器特别提供的inline
指令,就可以充分享用宏的好处,而不必冒潜在的风险,
惟一的问题是, i n l i n e不具有可移植性,在不同的编译器
之间未必兼容。对我而言,安全比可移植性重要,所以我
宁愿选择用inline 的方式来保护宏函数。
37
微软研发·致胜策略
奠定基础下载
当机立断
您可能听过很多极为成功的人士都有当机立断( s n a p
dicision) 的倾向,事实上,一般人如果过快做决定,大都
是颜面尽失的悲惨下场。差别是在于,那些成功人士早就
已经设定好清楚的目标和优先考虑的顺序,遇到任何问题,
或是要裁决某个建议时,只要把它放到脑海中的决策“尺”
一量,立刻就会有答案。另外,成功人士不会轻易改变主
意的,改变主意等于是背叛了自己的信念。
事实上,成功人士并不是未经思考就草率决策,只不
过他们把目标和优先级订得非常清楚,所以他们不必想太
久,也不必为无关紧要的事情浪费时间;结果是:他们不
必花太多时间来做决定,而是花时间去做已经决定的事。
严守基本原则
回顾本章的讨论内容,我们可以总结出软件开发的基
本观念:“确定您要达成什么样的目标及如何去做,让每
位组员都明白目标,并专注地朝这个目标努力,设定程序
的优先考虑顺序,以及相对的质量规范指导。”这些都是
很基本、很简单的观念。
现在,回头看看您公司内的各个部门,有多少个部门
38
微软研发
致胜策略下载
有清楚的项目目标?有多少程序设计师接到关于程序优先
考虑顺序的明确指示, 以及质量规范指导?然后问问自
己:“程序设计师真的全力投入在改善软件的工作中吗?”
再看看您公司内的项目主管们,他们是否习惯在会议
中讨论一些芝麻小事,或是在讨论真正重要的事情?他们
是否常常扔些与产品无关的工作给程序设计师,例如写报
告等等,或是认真为程序设计师清除所有阻碍工作的障碍
呢?
本章所讨论的全都是相当基本的概念,但在我的经验
中,很少人对基本的东西认真思考。而我相信正因如此,
您随手抓起一本《信息世界》( I n f o World) 或《M a c周刊》
(MacWEEK) 之类的专业杂志,里面就充斥着“某个项目
已再度落后六个月”之类的报导,或是某位程序设计师为
了工作连家都不能回的故事。
重点提示
公司聘请程序设计师,是为了开发高品质
的软件,但如果经常被杂事打扰、分心,
就无法保持专注在真正该做的事情上。主
39
微软研发·致胜策略
奠定基础下载
管必须确定程序设计师能专心投入在具有
策略价值的工作上,而不是打杂,凡是会
阻碍软件开发的东西,主管应该毫不犹豫
地把它排除。
然而,有很多杂事其实是无法避免的,大
公司尤其如此,那就只好将它的负面效应
尽量减少,方法是不断自问:“我到底想要
完成什么?”“我该怎么做才能既保持这件
工作的好处,又能避免它的坏处?”要满
足实质上的需求,而不是表面上的作业程
序。
拥有明确目标所带来的好处虽然不是立竿
见影,但没有明确目标所造成的混乱绝对
是显而易见。没错,建立明确目标是一件
费时又无趣的工作,但比起项目延误或失
控的危险,肯定是值得付出的。请记得使
用者界面函数库的实例,项目目标只要稍
微改好一些,就会明显地减轻压力,项目
目标再修正一次,问题就几乎都迎刃而解
40
微软研发
致胜策略下载
了。
每一位成员都必须有一致的程序优先考虑
顺序,程序的可维护性是最重要的吗?可
移植性?体积?速度?为了让软件产品符
合项目的目标,必须让程序设计师明白本
项目的程序优先考虑顺序,他们在程序设
计时才知道该如何取舍。同时,您还得对
每一项优先考虑点事先建立质量规范指导,
以避免到时候质量不合格又得重写部分程
序,导致时间浪费和项目延误。愈早定出
质量规范指针,愈能省时省力。
41
微软研发·致胜策略
奠定基础下载
下载
第2 章
策略性的
作业方式
2
Chapter Two
虽然我从事软件设计已达2 0年,但我写技术文件或
文章时,从不使用文字处理器,听起来很意外
吧?我仍然用最传统的纸和笔做最初的草稿,然后再输入
计算机去编辑。
我肯定自己没有计算机恐惧症,而且我很清楚用纸笔
绝对比不上计算机方便,但我仍然这么做。
很久以前我就发现,当我使用文字处理器时,每写完
一句我就忍不住用编辑功能东修西改的,最后一天下来写
不了多少东西。由于在文字处理器上编修文字远比撰写文
字简单,我常常沉溺其中不可自拔,太分心在编修上,忘
了写作内容才是本旨。反正早晚得修饰嘛,现在编修并没
有什么不对,只是我拖延了自己的工作效率。
有一天我终于领悟到,原来我一直在破坏自己写的作
品,我必须寻找提高写作效率的方法,我试着在用文字处
理器时专心写作,不去使用编修功能,却没有什么成效。
我需要的是撰写比编修容易的东西,那只有纸和笔了,于
是我不再使用文字处理器来写作,我只用它来编修那些已
用纸笔写好的几页文稿。
我的新方法解决了我在写作时分心编修的恶习,因为
它让我只管写作。
44
微软研发
致胜策略下载
从这里我们可以看出,在程序上的一点小小改变,可
以造成非常不同的结果。以前我写五段的时间,现在我可
以写出五页,这样的进步是因为我成了一位有经验的作家
吗?还是因为我的工作时间加长了吗?都不是。我的生产
效率提高,是因为我了解到我使用的工具有个缺点,而我
找出了另一种比较有效率的方式。
当您读完本章后,您会看到更多小改变大收获的实例。
一旦您掌握了这个概念,把它应用在项目上,您可以大声
说自己确实是在聪明地工作,而不是辛苦地工作( w o r k i n g
smart; not working hard),并且您的工作能够事半功倍,再
也不用熬夜加班,也能如期完成项目。
浓淡合适的咖啡
在咖啡店里常常遇到的难题是记住哪位客人喝什么咖
啡:有些人要喝无咖啡因的,有些人要喝一般的咖啡。于
是有些咖啡店经理不惜花大笔金钱送员工去接受超强记忆
术(Kevin Trudeau’s Mega Memory) 的训练,在那里他们训
练学员如何把看似无关的事物作视觉联想:把客人点的咖
啡和他的衣着、领带等联想在一起,比方说点蓝山咖啡的
这位小姐正好有个特征是戴蓝框眼镜。而大部分的经理会
45
微软研发·致胜策略
策略性的作业方式下载
用更简单的方法解决问题,比方说规定某种咖啡要用某种
特征的杯子,这样服务生只要一看到杯子,就知道这位客
人喝哪种咖啡,续杯时就不会弄错。
常见的问题,也许只用一个微不足道的方法就可以解
决。
除了咖啡店的例子之外,我们来想像一下,还有没有
别的地方也可以运用这个原理解决问题。现在我们来看另
一个例子。
我家附近有两家咖啡屋。他们用一模一样的咖啡壶、
咖啡豆,连服务生都一样用的是大学生,怪的是,煮出来
的咖啡却大不相同:其中一家的咖啡一直是浓淡相宜的,
另一家却时浓时淡,有时甚至烧焦,简直令人难以下咽,
您根本不知道端上来的咖啡会是什么样的味道。
这两家咖啡屋的一切设施几乎完全一样,除了一个小
小的细节:质量稳定的那家,他们的咖啡壶上有一条横的
浮雕花纹,这就是简单而关键的质量体系(quality system)
的秘诀,靠着这条细细的横纹,他们可以提供品质稳定的
好咖啡。每次新的服务员到职,经理就指着这条横纹给他
上课,告诉他:
“你倒咖啡时,只要发现水位在这条线以下,就要立
46
微软研发
致胜策略下载
刻煮新的一壶,要立刻去煮,不要被任何事情耽搁。”
“万一那时候店里很忙怎么办?”
“即使一整队的芝加哥公牛刚刚打完球,全挤到这儿
来也不管,还是先煮新咖啡要紧,那怕你已经倒好一杯咖
啡要端给美国总统,只要看到水位在这条线以下,就要停
下所有的事,先去煮新咖啡再说。”
返回目录 上一页 下一页 回到顶部 0 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!