30

文 / 帅丹文

分布式系统具有软硬件平台分布性、高稳定性、高可用性、高可扩展性、高可管理性、高并发性及数据一致性等多种特性。正是由于这些重要的特性,使得分布式系统的测试过程变得相对复杂和困难。本文主要从分布式系统测试的四个重要方面出发,探讨分布式系统测试过程中存在的一些难点问题并进行适当的分析。

分布式系统测试环境

一般来说,分布式系统是由一组服务器或者网络设备组成(如图1)。我们在部署测试环境的时候,所涉及的系统架构也会是比较复杂的,有以下几个方面:

  • 网络架构。在图1中,我们应该如何在本地测试实验室环境中模拟分别位于北京和纽约的两个数据中心呢?由于地理原因,北京和纽约之间网络的RTT(Round Trip Time)至少不会低于某个值。所以,在正式进行测试之前,我们需要构建出测试所需要的网络环境,模拟出这样的固定网络延时。
  • 硬件要求。例如,我们曾经测试过一个分布式的文件系统,数据服务器要求运行在裸盘设备上(数据的存储格式、寻址方式自定义以提高查找速度),所以,在安装操作系统时需要特别考虑这样的需求。同时,在测试前,我们需要按照系统设计的要求采购硬件设备。例如,硬盘的规格(SATA硬盘还是SAS硬盘)、内存的规格等。
  • 配置复杂。分布式系统涉及的软硬件平台较多,整个系统中需要设置的参数项非常多,系统配置过程会相应地变得复杂、困难和易错。例如,在图1中,我们需要配置的系统配置文件至少有十多个。

实践-1

图1  一个典型的分布式系统

如果条件允许的话,分布式系统的测试环境应该由测试工程师自己来搭建。系统管理员、网络管理员等都没有办法完全代替测试工程师来进行这些工作,因为他们并不清楚在实际的测试过程中,测试工程师对软硬件环境的具体需求是什么,尤其是不同的测试用例对于环境的要求可能是不一样的。 阅读全文 »

标签:
阅读:25,863 次
29

精益九问

作者:wuzhimin 分类:选题策划 5 Comments »

文 / 路宁

1.敏捷已经做得很好了,还需要研究精益吗?

精益对敏捷软件开发起着补充作用:

(1)精益理论体系完备、不落俗套、而且并不复杂,它从另一个独特的视角解释了敏捷实践和原则,让人耳目一新,也适合指导各项工作。

(2)丰田生产方式和精益中的很多工具和概念可以很好地应用到软件开发领域,补充敏捷的工具集。比如看板,其“控制在制品数量”和“拉动”的特性就非常值得敏捷的“故事墙”借鉴,可以有效地加强故事墙暴露问题的能力。价值流分析方法对于发现软件开发过程中的浪费和改进点很有帮助。PDCA(Plan-Do-Check-Act)改进循环和A3报告对于开展一个个的改进活动是个不错的指导思路。“内建质量”、“停止生产线”的做法和敏捷的测试驱动和持续集成不谋而合。“现场管理”和“自组织多功能团队”也正是敏捷推荐的做法。如此种种,举不胜举。

(3)精益被应用的范围要广的多,尤其是其在部门、组织及产业链上推广的思路有助于敏捷向部门、组织及合作伙伴间推广时借鉴。

2.采用精益是因为Scrum等方法已经被说得过多,作为一种新的管理风尚而吸引眼球?

精益确有此用法,尤其是当它被简单理解为一组抽象了N层的真理型原则之后。既然是“真理”,自己的观点怎么都能和它沾点儿边,不需要改变什么就可以标榜时尚了,这是“浮躁”的表现。敏捷也遭遇了类似的命运,被拿来代指其他观点,便于当事人充满信心地推行自己的想法,尽管这些想法与敏捷可能相悖。

精益有自己独立的意义,它从另一个角度更加系统地解释了敏捷各项实践背后的原因;一些丰田生产方式的实践甚至可以直接引入来指导软件开发,补充和扩展敏捷实践;为敏捷的深度推广提示了思路和路线图。 阅读全文 »

标签:
阅读:11,018 次
29

文 / 徐毅 王献

我们俩来自于诺基亚西门子网络杭州3G研发中心,本文内容来源于诺西一个通信产品研发部门所进行的敏捷转变,它是典型的多站点开发的研发组织,在芬兰、印度、中国等国家都有研发团队,总计超过600人。我们免去在文中冗述各种功绩和所得,只在这里和大家分享我们所经历的那些误区、陷阱,当然还有那些应对的措施。

本文仅代表徐毅和王献的看法,如此大的组织转变,我们作为不到1%的人口代表,看到的、经历的难免会有误差,恐怕不能概括事件的全貌,如有出入,请见谅。我们认为经历的误区和陷阱大致可以分成如下七个方面:特性团队、人、浪费、局部优化、软件质量、测试自动化、流程。

特性团队(Feature Team)

在组织中想要达到真正的Feature Team是一个很漫长的过程,当在组织中实现局部的端到端的组的时候,更大的端到端的组的演变要求就会出现,因为这时组织中新的瓶颈会展现出来,这也是为什么敏捷虽不能解决问题,但却使问题更显现地表现出来的原因之一。

在组织的转型中,产品有非常庞大的老代码:

1. 通常早期的Feature Team所包括的功能性测试不完全,外部的测试对于这些Feature Team所起到的保护作用还是相当重要的;

随着时间的推移,Feature Team对于自己feature自动化测试加强以及测试能力的提高,发布给外部的产品质量会大大提高;

2. 对于外部其他组的依赖接口会很多,特别是组在不同国家的时候,沟通、交接和等待的浪费会很大;

3. 当产品中开发部门和开发部门的依赖减少后,开发和测试的瓶颈会更突出;

4. 当产品中各个功能部门的依赖减少的时候,产品和产品间的瓶颈会凸显。

想象一下从客户提需求到最终提交功能需要经过多少个过程,特别是大型组织中的产品,端到端意味着几十个过程甚至更多,Feature Team中能容纳多少个这样的过程就意味着这个Feature Team的灵活度有多高,本质上敏捷就是为了减少相互的依赖、等待和传递所带来的消耗。

一个组织是一个庞大的系统,Feature Team的转变过程意味着减少整个系统中的Limitation。 阅读全文 »

标签:
阅读:18,688 次
29

三个主要误区

第一个是重视流程忽视人。敏捷宣言开明宗义指出“人和沟通胜过过程与工具”。但是仍然有很多企业试图通过创造一个完美的流程来实施敏捷。不可否认,合理的流程对于提高团队效率有一定的作用,但是企业真正要从敏捷改进中获益必须落实到人的改变上来。

第二个是重视管理轻视工程。很多团队将敏捷等同于开开站会、做做迭代、搞搞回顾。到头来,一切流于形式。敏捷说到底是对于软件工艺性的认识回归,那么持续集成、自动化测试、设计、重构这些手艺是绕不开的。不从这些根本的手艺上解决问题,各种眼花缭乱的沟通手段实际上徒然增加了团队的成本。

第三个是重视指标轻视过程。很多团队特别是从CMM型组织转向敏捷的团队,热衷于设计所谓的敏捷度量体系。度量应该是帮助团队增强信心和持续改进,指标不应成为目的。我们要关心的不只是站在哪里,更应关心我们将走向哪里。

要解决这些问题没有任何灵丹妙药,从来也不存在一个完美的、放诸四海而皆准的流程。我们在帮助各种企业进行敏捷流程改进的过程中,总结了几种改进模式,这里跟大家分享一下。

五种改进模式

跳跃:团队作为整体从一种实践直接切换到另一个实践方式上。

有些实践我们知道其目标,并且知道这种切换对团队的影响较小,或者不适于采用逐步推行的方案,我们就采用跳跃的方式。

例如,配置管理工具切换。某团队原来使用的配置管理工具是ClearCase,为了享受到SVN的原子提交、低成本分支等好处,我们往往采取跳跃的方式,即整个团队立刻从ClearCase切换到SVN上工作。这是因为配置管理的切换总的来说对于团队的工作方式影响比较可控,而且使用简单。 阅读全文 »

标签:
阅读:20,813 次
29

创新与山寨

作者:wuzhimin 分类:选题策划 8 Comments »

大概确如摩根斯坦利广为引用的报告中说的那样,我们已经进入了一个激动人心的新的技术周期,“创新”一词近来成了最热门的话题之一。热门到什么程度了呢?当我在去美国的飞机上写这篇卷首语的过程中,随意翻看的几份报刊上竟然有不下三篇文章在谈创新。

有些奇怪的是,有些评论者常常将创新上升为某种道德标准。在他们看来,似乎世界只有两极,你不是第一个想到、做出来的,那就是山寨/模仿,而模仿者是应该被批判的,就像黑白、善恶一样分明。

这种简单的思维方式非常可笑。稍具科技史常识的人都知道,任何创造都不是凭空产生的,即使是里程碑式、颠覆性的全新理论、理念,真正研究一下发展历程细节,绝大部分也都是在多人不断探索的基础上才诞生的。那种独居深山、面壁十年而大功告成的故事不是没有,但在当前天下一家的信息化现代社会中,几乎已经成为神话。可以说,改变世界的伟大创新,其实大多是某种意义的山寨或者许多模仿积累的结果。牛顿早已说过,我们都站在巨人的肩上。

那么,到底什么是创新呢?

现代对创新的系统研究由1911年著名经济学家熊彼特(Joseph Schumpeter)《经济发展理论》一书奠基。他在书中提出,创新就是把生产要素和生产条件的“新组合”引入生产体系。尤其值得注意的是,他认为创新与发明(invention)不同,没有投入实际应用、无法创造价值的发明不能称为创新。 阅读全文 »

标签:
阅读:13,199 次
28

本期封面报道:敏捷在实践程序员1010封面da
自2001年17位软件工程大师级专家共同起草了“敏捷宣言”始,敏捷运动已经如火如荼地发展了10年,极大地改善了软件开发的面貌。敏捷方法被引入中国之后,业界中有着许许多多认识上的谬误,在实践上也面临着许多不可避免的陷阱。如何更好理解和实践敏捷,是我们需要关注的重点。本期封面报道,特邀国内外敏捷专家、实践者从如何进行敏捷实践的角度,剖析如何避免敏捷误区,希望能给读者一个正确理解敏捷的参考。
(1)敏捷在实践
(2)专家圆桌会:敏捷十年谈
(3)大规模组织敏捷转型的启示
(4)敏捷实践的七个方面
(5)围绕公司目标的敏捷实践
(6)打破敏捷实施中的迷思
(7)如何实现自组织团队
(8)忘记敏捷
(9)要有一个软件
(10)敏捷测试的方法和实践
(11)精益九问
(12)敏捷后的思考

高端视点
(1)软件开发方法需要理论
(2)GIS:规划我们的未来
(3)“大云”是一个开放的平台 阅读全文 »

标签:
阅读:29,269 次
26

文/ Peter Seibel  译/李琳骁

开启编程生涯

Jamie Zawinski(简称jwz),Lisp黑客、Netscape早期开发人员。Zawinski十几岁开始编程,一直投身Lisp和人工智能领域,浸染于黑客文化;领导开发了XEmacs,后来成为最著名的开源分支之一;Netscape浏览器Unix版本及其后Netscape邮件阅读器最初的开发人员之一;与Brendan Eich一道,通过mozilla.org促成了Netscape浏览器的开源;目前在旧金山经营夜总会,力争让它成为各年龄层都能进入的现场音乐表演场所。

Jamie Zawinski(简称jwz),Lisp黑客、Netscape早期开发人员。Zawinski十几岁开始编程,一直投身Lisp和人工智能领域,浸染于黑客文化;领导开发了XEmacs,后来成为最著名的开源分支之一;Netscape浏览器Unix版本及其后Netscape邮件阅读器最初的开发人员之一;与Brendan Eich一道,通过mozilla.org促成了Netscape浏览器的开源;目前在旧金山经营夜总会,力争让它成为各年龄层都能进入的现场音乐表演场所。

Seibel:你是怎么开始学习编程的?

Zawinski:哇,很久以前的事了,都快没什么印象了。没记错的话,我第一次真正使用计算机编程大概是在八年级。当时学校里有几台TRS-80,我们边玩边学了点BASIC。我记不清是不是专门开了门课,好像只是课后摆弄过。我记得那些机器没法保存程序,只能照着杂志或手册什么的,将程序逐行敲进去。当时我看了很多书。书中讲到的计算机语言,我没办法实际运行,只好在纸上编写那门语言的程序。

Seibel:后来你是怎么开始接触Lisp的?

Zawinski:我看了许多科幻小说,觉得人工智能实在太迷人了,计算机将统治世界。为此我学了点人工智能。我高中时有个朋友叫Dan Zigmond,当时我们俩互相换书看,于是一起学习Lisp。有一次,他去参加Apple用户协会(Apple Users Group)在卡耐基•梅隆大学举办的活动,这其实就是大家聚在一起交换软件,而我朋友只是想搞点免费的东西。另外,他还找了个大学生模样的人搭话,那个大学生说:“喂,大伙来看,这里有个15岁的孩子会Lisp,真是少见。你该去找Scott Fahlman要份活干。”Dan真的照做了。而Fahlman还真给了他一份活。Dan又说:“对了,我有个朋友你也一起要了吧。”他指的就是我。Fahlman就那么雇了我们。我猜他大概是这么想的,哇哦,有两个高中生居然对这东西感兴趣,让他们在实验室里晃荡也不会有什么大碍。于是我们开始做些简单的活,比如用新版编译器重新编译整套代码。整个过程真叫人难忘。你可以想象,只有我和Dan两个是小孩,其他都是研究语言和人工智能的研究生。

Seibel:高中毕业后,你很自然地就去了CMU。

Zawinski:是的。事情是这样的,我讨厌高中,那是我生命中最糟糕的日子。快毕业时,我去找Fahlman要一份全职工作,他回答说:“不大好办,不过我有几个朋友刚开了家公司,找他们谈谈。”那家公司名叫Expert Technologies,也就是ETI。他们正在打造一个专家系统,可以自动给电话簿标页码。他们使用Lisp开发,我认识其中几个人,之前都在Fahlman的小组里待过。他们雇了我,一切顺风顺水,约莫过了一年,我开始惶恐不安:哦,天哪,得到这两份工作完全是撞大运,绝不会有下次了。一旦丢了这份工作,没有大学文凭的话,我就只能去打打零工了,看来我应该去拿张文凭。

那段时间真的很糟。上高中时,所有人都抱怨:“净是些没完没了的老掉牙的标准化测试,上了大学,一切都会好起来的。”结果上大学第一年,与高中毫无区别,“放心,等你念了研究生,都会好起来的。”大学和高中一样糟糕,换了时间而已,我可受不了。每天早上8点钟起床,就开始往脑子里塞东西。那门叫做课程介绍的课还非上不可,这门课教你怎么用鼠标。我找到他们说:“我都在这所大学里工作了一年半,我知道鼠标怎么用。”但所有人都得上,概莫能外,“这是规定”。其他也都差不多,我实在无法忍受,索性退学了事。我觉得自己做得很对。

我在ETI干了大概4年,后来公司开始走下坡路。那时我已经写了不少代码,便找了个新闻组,发帖子找工作,还顺带提到自己写过不少代码。Peter Norvig(注:Google研发总监,《十年编程无师自通》作者)看到帖子后安排了面试。

Seibel:Norvig当时在伯克利?

Zawinski:是啊。那份工作很奇特。他们有一大群研究生在做自然语言理解方面的研究,他们基本上都是语言学家,只做一些编程。因此他们打算找个人接手他们自己编写的那些零零碎碎的代码,并整合成真正能用的东西。 阅读全文 »

标签:
阅读:40,795 次
26

细心的业内朋友可能会发现,从在西安成立中国开发中心、中国全球软件分析实验室,到现在成立武汉全球服务执行中心,我们的业务有向中国中西部拓展的趋势。我们知道中国的发达地区,是从北京开始沿着海岸线延伸的,那么为什么IBM也开始青睐内陆地区呢?其中一个重要的原因是基于人才因素的考虑,因为中国的中西部正在汇聚越来越多的优秀人才。这需要从两个方面来理解。

首先,中国有很多内地城市,各地拥有很多优秀的人才。以武汉为例,周边有将近82所高校,构建了良好的人力资源基础。

其次,中国的人才流动正呈现出这样的趋向:从一线城市向二线城市迁移。随着中国经济的飞速发展和城市化进程的加速,许多沿海城市都已经演变为超级大都市,对于刚毕业的年轻人来说,生活压力加大,所以他们更乐于去正在积极改善生活环境的二线城市,这也不可避免造成了人才的分流。

在这种人才迁移的大背景下,IBM作为一个已在中国30个城市开展业务的大型公司,能够为人才的内部流动提供很大的方便和可操作性:随着我们在二线城市设立分公司或者执行服务中心,使得很多优秀员工更加坚定信念,愿意继续留在IBM 工作。比如我们目前武汉服务执行中心的相当一部分员工就是从IBM内部加入的,也有很多湖北籍或者中部地区的员工都表达了希望到武汉中心工作的愿望——这对公司和员工来说是一个双赢的结果。 阅读全文 »

标签:
阅读:30,165 次
25

未标题-1中国已经是一个实力强劲的制造大国,对于中国来说下一个发展契机将由软件来创造:中国有机会通过软件制造出某种人们从未想到过的超级体验,来满足国内外市场需求。而Linux则是唯一具备如此大的拓展性、知识产权可控的软件平台,这对于中国来说是个非常大的机遇。

对于应用开发者来说,为Linux平台开发应用的好处在于,Linux平台支持更广泛的硬件。目前,在x86、ARM和MIPS甚至Power的平台上,Linux都可以很好地运行。开发者只需要将精力放在更好地开发应用上,而不必考虑硬件的问题。尽管现在互联网电视和智能手机的尺寸差距非常大,但采用基于Linux的Qt平台,应用开发者可以不必对程序做大规模修改就可以让它适应不同设备,这让用户在不同设备上使用同一程序成为可能。所以对于开发者,未来竞争的重点将侧重在如何提供一个友好的用户界面。

今年Linux阵营中,最引人瞩目的事件是MeeGo平台的脱颖而出,它是由Linux基金会管理的一种开方式Linux操作系统。MeeGo除了对硬件架构和设备的广泛支持外,还支持不同的应用软件商店,其中包括Intel AppUP和Nokia Ovi等,可以预料,这将为开放平台上的应用软件和服务带来新的推动。

从市场角度看,不仅全球,中国Linux 的推广应用也取得了令人欣慰的进步。据中国开源软件推进联盟提供的数据显示:2009年中国国内市场Linux销售额为3.86亿元,年增长率20%,其中在超级计算机、大型主机、嵌入式操作系统领域占据绝对优势,甚至桌面领域已结束了1%~2%的低迷徘徊状态,跃升到8%~10%;与Linux相关的开源软件应用,也从早期的政府、教育领域,开拓并走向金融、 电信、 铁路、电力、航空等大市场。当然我们要看的不仅仅是当前市场份额增长的数字表现,未来的一些参考数据也很最重要:比如股票市场,它是一个未来的指数,毕竟投资是投向未来,而不可能是投向过去。在过去的一年里,从同一个点来看,红帽价值增长了50%以上,而微软却是保持不变。 阅读全文 »

标签:
阅读:15,539 次
21

记者 / 付江

由CSDN和《程序员》杂志联合策划组织,旨在与业界人士分享IT产品背后的技术和用户体验故事的系列线下活动TUP(Technology,User Experience,Product)于6月27日下午在北京丽亭华苑酒店成功举办,首期活动以“移动开发实践”为主题。原计划为200人左右的小规模高端技术人才聚会,实际到会人士超过300人,不少与会者站在会场内听完了整场论坛。

本期TUP“移动开发实践”主题活动围绕Android应用赢利模式与现状、iPhone与手机游戏、SNS游戏在移动平台的飞跃等话题展开深入探讨,为此主办方特邀了北京易联致远无线技术有限公司CTO、中国最大Android开发社区eoeAndroid.com的创始人姚尚朗,在中国游戏市场工作15年,对PC网游、手机应用和游戏拥有丰富运营及市场经验的mAPPn高级副总裁暨机锋网运营总监李鹏和爱图腾科技有限公司CEO刘磊为与会者带来了精彩演讲。

除了预先安排的演讲,到会的中国联通上海分公司应用商店筹备中心总经理王昌成、宇龙 (CoolPad)北京研究所所长韩黎光、三星中国投资有限公司在线业务部经理仲飞、三星中国应用商店项目经理等人也挡不住与会者的盛情邀约,分别介绍了各自负责的移动项目的最新进展情况。

开发者如何实现盈利

如何实现盈利?始终是近年来移动开发者最为关注的问题 。姚尚朗认为移动广告和在应用中收费是目前Android开发的主要赢利模式,当前阶段仅靠App Store直接卖应用挣钱基本不现实。他还介绍了市面上主流手机广告发布平台的不同特色,包括国外的Dmob、Quattro、Google Adsense,以及国内的WOOBOO(哇棒)、有米广告、CASEE(架势无线)。接着,姚尚朗以墙纸和指南针的应用实例解读了开发人员该如何选择应用类型、如何从现有的数以百计的同类产品中突围,他认为分析畅销应用背后的数据以及开发具有文化背景特色的本地应用将是不错的选择。 阅读全文 »

标签:
阅读:10,643 次
preload preload preload
京ICP备06065162