小说 一念之间之一 她(十九)

创作的冲动来源于对过去的尊重和对未来的向往。字里行间无意中表达出你的理念,你对生活,工作,爱情的诠释。

文章均为狮子羔羊原创,版权归狮子羔羊(CN) 及其笔名拥有者所有。为保护微信公众平台的【原创】特性,有意转载者请联系作者
打印 被阅读次数

大家吃上嘴了后,曼云喝了一口饮料这才不急不忙地继续说了起来。

 
刚才谈了网络设备的性能提高飞快,有线网无线网络大多在30%到60%的年增长率发展。可用户不会因为你有了新设备就把旧设备扔了买新的设备。而且这些设备的物理寿命很长,如果你只满足于目前的性能,你会继续用下去而不买新设备。
 
你只会在旧设备无法满足新需求时更新旧设备。而云计算就是这种新需求的源泉。苹果在其itune 平台上租和卖电影,微软在其xbox平台上做同样的事情。Netflix,胡芦通过网络放电影电视,有线电视新闻网络公司也把其新闻节目通过英特网送到用户的显示器,电视屏幕,和手机平板设备上。Vonage 通过网络提供电话服务,这样的面向消费者的网络服务如雨后春笋,它们为网络设备提供了非常强劲的需求。但相比于面向工商业的云计算这些还是相对地小了许多。
 
我在讲座里面提到的平台云计,应用云计算和基础设施云计算为网络设备提供着最为强劲而且不断提高的需求。如果你做一个调查你就会发现一个公司的云计算的推广程度与这个公司的总带宽是成正比的。有了这个总带宽的增长,整个英特网的各个环节都要不停地更新,这就给我们网络设备供应商提供了无穷的商机。设想一下我们公司今天没有网络或者网络比平时慢一些,我们会有什么样的反应?
 
说到这里,服务员送菜来了。不同于一般美国餐馆是用一个小车送菜的,这里是服务员手举一个七八十公分的大盘子,上面放着每个人的菜餚。托着盘子走过来,放下盘子,不洒不泼不翻,真是好身手。
 
转眼之间大家的食物都上齐了,大家都开始吃了起来。
 
彼德边吃边问道:在许多推广agile 开发过程中遇到从管理层的阻力大多是单元测试和配对编程,他们主要的考量是这些活动对工作效率的影响。史蒂夫在这个方面有什么见解,能否在争取领导层的支持给我们一帮助。正好迈克尔在这里,你们也许可从用情景对话的方式探讨一下。
 
曼云笑着说这是一个很有趣的话题,迈克尔,我们试试?迈克尔点头应允。
 
就开始慢慢地说了起来:
 
从表面上看,配对编程减少了一半的工作效率。自动测试至少减少了20%的工作效率。从这两个数据上看,不是好主意。
 
可是让我们来看看真正的实际情况。首先,如果你注意观察一下我们程序员的工作状况,你会发现我们花多过一半的时间读程序和走程序,用少过一半的时间写程序。其主要原因是我们不知道哪里出了问题,我们在人工地走逻辑企图发现问题所在,或者我们在让程序一步一步地运行同时监测数据变量和流程从而找出问题所在。这两个活动占去了我们程序员的大半时间,从某种意义上讲这些是无效时间。(nonproductive time )
 
还有一个情况也是很普遍,就是你应客户要求改了程序的一个逻辑,你以为你做了应该做的事情然后做了些测试,运行正常,质检部门也没发现问题。然后你把它送上线了。可是半夜里你被电话叫醒了,程序出了问题了。因为你的改动对程序的其它部分造成了副作用。在这种情况下哪怕是最后解决方案是只要改一行程序,其所需的时间和对公司业务和声誉的影响是非常之大的有时甚至是不可弥补的。
 
还有一个现象我想大家都遇到过的。系统的某一个部分一直是小组的某一个成员写的和维护的。就在他或她度假期间,或者更坏他或她刚刚辞职的第一周,用户部门提出改动需求,小组里谁都不太有把握动手。然后强动了手了,上线后提心吊胆的,生怕出前面所讲的问题。
 
这里的关键点就是程序越来越复杂不是某一个人能完全了解和记得的。一两百万行程序的系统比比皆是,已经超越了人的极限了。最近的阿发狗赢了国际冠军就是一个例子。
 
其解决方案就是上面讲的做法,让程序测试程序。每次做了改动后把所有测试程序运行一下。出错的机会就小多了。虽然在早期开发时会多花20%到30%的时间。随着时间的推移,你20%到30%的投资会以100%甚至更高的回报。
配对编程在实际情况下会增加时间费用20%到30%,绝不是我们想象的50%的费用。但是这20%到30%的投资会产生更高质量的软件产品,试验显示,百行出错率减少30%,程序可读性可延伸性提高40%多。
 
这里有心理学基础的。我不是说人的本性是偷懒的,我是说当一个人在大庭广众之下他会比只有一个在一个角落里表现得好。
 
还有在配对编程下我们小组的每一个人对每一个部分都了解了,所以不会出现前面讲的没有人敢动手的情况。特别是小组增加人手和人员变动时其优越性更加明显。
 
最后再讲一个附加的好处(对公司而言)试验表明在配对编程的情况下,成员迟到早退的情况减少了,成员在上班时间做私事的少了,因为你要向你的同伴解释和对他(她)有个交代了。所以我们程序员推动配对编程时要清楚“what you are asking for "
 
彼得问道:在配对编程的情况下,为什么每人都对每个部分都了解呢,顶多每部分两个人知道呀?
 
曼云回答道:你说的对,如果他们不换编程伙伴的话。与警察出警不同的是极端编程中配对编程中的伙伴天天换。就这么一换,一两个星期做下来你就与每一个人都配对过了,你也对小组里工作的每一部分都了解了一些。
 
再加上自动测试,你对系统进行改动时的把握大多了,什么地方有问题自动测试会告诉你的。
 
我注意到迈克尔认真地听着思考着。
 
隔了好一会一儿,迈克尔问道: 在这种工作流程中对编程人员的技术上有什么不同的要求吗?
 
曼云回答道:这是一个关键的问题,如果我们像以前一样地设计和写代码,前面讲的优势就无法显现出来。
 
在这种流程下,我们设计程序结构时要把可测试性考虑进去。在发现现有程序结构在加入新的是逻辑时显得不那么地合理时要勇于创新勇于改进,万万不能拷贝一下修改一下就交差。要有精益求精的精神。绝对不放过一个重复逻辑,一定要把能够共用的逻辑精练提取出来,业中有一个词叫DRY (Do not Repeat Yourself ) 绝不重复。
 
我也注意到曼云基本上没有动他盘子里的食物,只是吃了几口印度煎饼和喝了些饮料。
看到大家都吃得差不多了,他就请服务员送过来一个盒子打包了。迈克尔顺便让服务员把账单送来。那个挺帅的小伙子指着曼云说:这位先生来的时候已经提供了信用卡信息预付了。希望你们享受这里的午餐,谢谢你们。大家纷纷向曼云表示感谢。我知道他这些都是为我做的。
 
大家都起身准备离席了,我走近迈克尔说:我哥哥就要走了,我与他已经两年未见了。我与他说会儿话,然后我再去听讲座,可能会跳过一个节目,可以吗?
迈克尔连忙说:没问题,你们是该私下聚聚了,是我们耽误了你们的私人时间还害得他午餐都没吃好,对不起了。
说着大家与曼云一一握手道别下楼了。
 
小说纯属虚构,请勿对号入座
 
登录后才可评论.