软件交付的今天.docx

上传人:b****2 文档编号:24405014 上传时间:2023-05-27 格式:DOCX 页数:14 大小:260.01KB
下载 相关 举报
软件交付的今天.docx_第1页
第1页 / 共14页
软件交付的今天.docx_第2页
第2页 / 共14页
软件交付的今天.docx_第3页
第3页 / 共14页
软件交付的今天.docx_第4页
第4页 / 共14页
软件交付的今天.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

软件交付的今天.docx

《软件交付的今天.docx》由会员分享,可在线阅读,更多相关《软件交付的今天.docx(14页珍藏版)》请在冰豆网上搜索。

软件交付的今天.docx

软件交付的今天

第1章软件交付的今天

“2000年左右我们进入了一个新的纪元全球化3.0。

全球化3.0使得这个世界进一步缩小到微型,同时平坦化了我们的竞争场地。

如果说全球化1.0版本的主要动力是国家,全球化2.0的主要动力是公司,那么全球化3.0的独特动力就是个人在全球范围内的合作与竞争,而这赋予了它与众不同的新特征。

——托马斯·弗里德曼

相信很多朋友都看过托马斯写的“世界是平的”这本书。

它向我们描述了全球化发展趋势对企业发展和竞争环境的影响,对团队协作模式的影响以及对每个人日常生活方式的影响。

环顾与审视“平的世界”这个市场、资源和竞争的大网,全球化的企业开始调整其在全球范围内的业务发展策略,优化业务流程,整合资源配置,从而更加关注在全球化“战役”中的胜利,而不仅仅是一城一池的得失。

与此同时,全球化趋势也对企业的业务灵活性提出了更高的要求,要求企业要有更快的市场反应速度、更灵活的业务模式和全球化的资源整合能力。

平坦的世界强迫我们不得不去思考,全球化企业、全球化业务、全球化市场和全球化竞争到底对IT世界提出了什么样的挑战?

这些挑战又给软件工程领域带来哪些变化?

而适应这些变化,未来的软件工程领域会有哪些发展趋势?

“善弈者谋一局之胜,不善弈者求数子之得”,只有掌握了软件工程的本质和领域的发展趋势,企业才能顺应潮流,洞悉先机,打造软件交付的核心竞争力,在全球化的竞争中保持不败之地。

2008年Rational软件开发高峰论坛上,IBM软件集团Rational总经理DanielSabbah博士向我们描述了当今创新的世界:

“去年世界生产出了很多的晶片,这些晶片上面的晶体管的数量比同年生产出的大米粒还要多。

同时,每一个晶体管的生产成本是小于一粒大米的。

现在互联网群体已经超过10亿,而在互联网上的信息也以万亿计。

超级计算能力现在为越来越多的人掌握。

在2010年以前,超级计算机将可以进行每秒1000万亿次的计算,这是非常了不起的一个数字。

最后,在2010年之后,通过通信、计算和互联网上种种应用的有效运用,全世界的信息总量每11小时将要增加一倍,这又是非常了不起的一个创新。

这一切都表明当今时代是一个创新的时代。

创新时代对软件能力提出了更高的要求。

人类需要更伟大的软件去创造历史,去保护地球,去建设绿色家园;企业需要更智能的软件支持其创新的业务发展,需要更高质量的软件支持其业务运营;每个个体也需要更有智慧的软件去实现价值。

但是,我们到底依靠什么来快速交付软件呢?

我们是否已经拥有足够的软件交付能力确保软件的快速和高质量交付?

1.1软件交付面临的挑战

创新时代企业发展速度的加快和全球化软件交付模式的出现,给软件交付团队带来了很多挑战。

但从软件交付过程的本质来看,软件交付团队的挑战可以归纳为以下4个方面:

复杂性、团队、流程和工具,如图1.1所示。

图1.1软件交付面临的挑战

1.1.1复杂性的挑战

从某种意义上说,我们正生活在一个软件的世界:

新的空客A380中包含超过10亿行的软件代码;通用汽车预测到2010年平均每辆汽车有超过1亿行代码。

而比较而言,WindowsXP只有4千万行代码。

在这种情况下,软件的需求和软件生产环境本身的复杂度,为我们制造了很多的麻烦。

复杂性的挑战除了我们所构建的软件世界本身的复杂性以外,另一个重要的原因则是历史遗留系统的复杂性。

在漫长的IT系统的建设过程中,技术的进步、开发语言的变迁、系统平台的演进、Web2.0的出现,给企业留下了错综复杂的IT基础架构和异构的应用系统。

同时,为了满足各种业务发展需求,企业每年都要扩展现存系统并开发新系统,统计数据表明:

企业78%的IT投资用于维护现有的应用和架构,而不是创新和新系统的开发。

但许多企业核心应用的架构就像是个黑箱,错综复杂,无人能够说清道明。

就像一个重磅炸弹,每次应用功能的改进、系统升级,企业都战战兢兢,如履薄冰。

由此可见,如何有效管理整个IT环境的复杂度,明确现有核心系统架构,建立整合的软件交付生产线,这些因素正日益成为企业不断创新、快速响应面临的重大挑战。

企业软件环境的复杂性可用图1.2来表示。

另外,随着全球化市场竞争的加剧、软件外包市场成熟和软件工程技术的进步,越来越多的企业正在开始打造软件交付的日不落帝国。

他们在美国完成项目概念设计,在欧洲完成系统架构设计,在中国完成软件编码和测试,在印度为软件用户提供售后支持。

在强大的软件工程工具和平台的支撑下,他们开始与时间赛跑,在全球化软件交付环境中,他们几乎实现了24小时不间断的软件交付和支持服务,他们实现了在尊重每个软件从业人员人权(不加班)的同时,软件交付速度的最大化。

图1.2企业软件环境的复杂性

全球化的发展趋势对软件和软件交付环境提出了新的挑战,它不仅催生了越来越多企业的并购和全球化发展,留给IT人更为复杂的基础架构、异构的开发流程和应用系统。

同时,也带给软件交付团队更多人、流程和工具的竖井,包括分布式团队地域本身的障碍、组织结构的障碍、流程和工具等基础结构的障碍等,如图1.3所示。

由此可见,全球化经济、分布的软件交付团队,都增加了软件交付过程的复杂度和挑战。

图1.3全球化软件交付面临的挑战

1.1.2团队、流程和工具的挑战

团队的挑战一方面体现在随着软件本身的复杂度日益增加,软件交付团队也日益扩大,由此带来的跨部门的团队共享、沟通、协作和可视化正变得至关重要;另一方面,全球化软件交付模式对团队管理和团队协作方面也带来新的挑战。

流程方面的挑战主要体现在如何通过合适的流程,加速业务价值的交付;如何通过流程的敏捷性,提高业务的响应速度。

而工具的挑战主要体现在由于缺乏统一的标准工具平台,导致无法实现跨团队的协作、软件交付过程的自动化和实时报告;现实中的工具竖井,导致不同的界面和使用方式、流程和数据无法整合,无法提供软件资产全生命周期的追踪能力。

为了更好地分析软件交付在团队、流程和工具方面的挑战,下面让我们一起来看一下软件企业的软件交付能力的建设过程。

目前,大多数企业的软件交付能力建设过程都是一个随需应变、先局部后整体的过程。

基于木桶短板原理,企业首先定位软件交付过程能力最薄弱的环节,然后基于业务发展对软件交付能力改进的要求,开展能力建设。

例如,某个企业首先发现自己的项目管理、质量管理比较弱,于是从这两方面入手进行改进,分别建立了项目管理方法管理方法、工具平台和质量管理方法及工具平台。

然后在企业发展过程中,他们又会发现变更及发布管理比较弱,再后来又会发现部署过程管理比较弱……,于是企业在发展过程中逐步建立起了软件工程很多环节的管理能力,如图1.4所示。

图1.4软件交付能力建设的现状

经过多年建设后,蓦然回首,我们会发现两个问题:

首先,在企业软件交付能力建设过程中,不同环节能力水平不均衡。

软件交付的总体生产力是由整个软件生产线的效率决定的,而生产线的效率又由整个软件交付过程最弱的环节决定。

其次,在企业软件交付能力建设过程中,由于先局部后整体的思维模式,导致整个软件开发过程存在较多的能力竖井。

不同的工作团队使用不同的流程,不同的流程由不同的工具实现,不同的工具有不同的风格。

最为令人沮丧的是不同工具间信息无法互通,整个软件开发生命周期缺乏可追踪性,阻碍了企业建立端到端的治理能力以提高软件交付效率。

同时企业还面临越来越多的法律、法规、规范的遵从性要求。

作为软件从业者,今夜您是否可以安眠,不再在睡梦中担心是否能够按时交付高质量的软件,担心系统的宕机、数据的安全和业务的连续性,担心您的软件是否足以支持企业的业务发展和创新。

如果还不能,那么您并不孤单,Alinean的研究报告表明:

在过去5年的软件开发项目中,17%的项目在部署前被取消,33%的是问题项目(预算超支、进度延期或者只有部分功能实现)。

每年全世界被取消的项目价值810亿美金。

而且,在所谓成功交付的50%的项目中,28%并未产生预期的业务价值。

1.2迎接挑战,分析软件工程领域发展趋势

达尔文的进化论告诉我们,自然界本身就是一个不断适应新的变化和挑战的适者生存的发展演进过程。

软件工程领域也是一样,今天面临的挑战和压力,恰恰决定了其明天的发展方向。

复杂性的挑战推动了模块化技术和SOA的快速发展;流程和工具的挑战以及软件生产环境本身复杂性的挑战,加速了开放计算和软件开发治理的不断发展;全球化环境下团队的挑战则催生了新的全球化软件协作交付模式。

易经的思想告诉我们:

观其变易,以顺势而为;观其不易,以驭势而行;知变易与不易,可造势也。

顺应趋势,洞察先机,为了在新的全球化环境中获得新的竞争优势,我们不得不仔细审视软件工程的发展趋势,如图1.5所示。

图1.5挑战催生趋势

1.2.1软件工程发展趋势一:

模块化

随着全球化的发展趋势和全球化市场竞争压力的增加,一方面企业需要更多的业务灵活性和创新能力;另一方面企业面临的IT环境复杂度的增加和历史遗留系统的增加,对企业的IT提出了新的挑战。

模块化的思想恰恰能够帮助企业从根本上解决了这一问题,它一方面通过抽象、封装、分解、层次化等基本的科学方法,对各种软件构件和软件应用进行打包,提高对企业现资产的重用水平和能力;另一方面,基于模块化思想,业界提出了SOA技术,它提供一组基于标准的方法和技术,通过有效整合和重用现有应用系统和各种资源,对各种服务进行服务组件化,并基于服务组件实现各种新的业务应用的快速组装,帮助企业很好应对业务的灵活性要求。

它通过有效平衡业务的灵活性和IT的灵活性、平衡业务的灵活性和IT的复杂度,为IT人提供了一个业务视角,让IT人学会用业务的眼睛看世界,有效的拉近了IT和业务的距离,如图1.6所示。

图1.6模块化发展趋势

1.2.2软件工程发展趋势二:

开放计算

“开放标准的最好例子就是互联网本身。

互联网建立了一套任何人都可以使用的标准,其创建的目的就是允许任何人参与。

——经济发展委员会数字连接理事会

虽然软件工程方法、技术和工具的发展可谓百花齐放,但谈到趋势,我们必须首先强调的是能够确定行业基础框架,指导行业发展和技术融合的“开放计算”,它融合了“开放标准”、“开放架构”和“开源软件”三个方面,如图1.7所示。

通过坚持“开放标准”,不同企业开发和使用的软件可以互连互通,不同的软件工程工具能够更好地集成,不同国界和不同文化能够更好地协作交流,用户的投资能够得到很好的保证。

正是它为全球化趋势奠定了重要基础;“开放架构”通过一组开放的架构标准和技术,有效地解决了商业模式的创新对IT灵活性要求的增加和现有IT环境的复杂度之间的矛盾,第一次使IT和业务走得如此之近,其典型代表包括SOA、REST等。

图1.7开放计算

而“开源软件”不但书写了Linux、Eclipse、Jazz等一个又一个的神奇故事,而且它还有效地促进了开放标准的发展,同时有效利用社区驱动的开发与协作创新,优化软件设计中的网络效应,开源软件越来越被中小企业和个人用户所认可。

1.2.3软件工程发展趋势三:

合适的开发治理

软件开发治理的研究对象是软件开发团队,其目的是在软件开发生命周期中,通过定义整个开发组织中的各种角色、职责和技能要求,明确“谁”、在“什么时间”、做“什么”、“怎么做”和如何评测等内容,不断改进软件团队的生产效率和软件产品质量。

软件开发流程和软件工程工具是软件开发治理的两个重要组成部分,如图1.8所示。

图1.8软件开发治理框架

首先,全球化的软件交付和社区驱动的软件交付模式对软件工程方法提出了新的要求。

环顾当今软件开发方法,RUP、敏捷开发、MSF可谓百花齐放,当不同学说的支持者互相不屑一顾的同时,其实我们不难看到,不管是哪一种软件开发过程,它都有自己合适的软件开发团队和软件开发场景。

这就好比中国的饮食文化,粤菜以鲜闻名,川菜以麻辣著称,鲁菜鲜咸,而淮扬菜则追求本味。

但如果问起哪种菜系最为好吃时,则十有八九不同的人会有不同答案。

即使是同一个人,在不同年龄、不同经历下,也可能有不同答案。

软件开发过程也正如菜系,不同的团队、不同的文化、不同的规模、不同的软件类型、不同的质量要求,都会影响开发团队对软件开发方法和过程的选用。

Rational在2004年时提出了“可适应的流程”概念,其核心是通过重用组织过程资产库中的最佳实践构件,能够为不同的项目、不同的团队量体裁衣,快速装配特定团队所需要的流程,如图1.9所示。

图1.9基于企业最佳实践灵活装配的软件开发流程

RationalMethodComposer(简称RMC)是一个软件交付过程的定义、裁剪、配置和发布工具平台,它赋予了RUP以全新的生命力。

RMC提供了可重用的、统一的方法架构和定义语言,同时整合了RUP和更多的业界标准、成功经验和方法论(以流程组件的方式存在方法库中),使企业能够基于RUP和其他业界最佳实践,快速定义、配置和发布自己的软件交付过程和其他管理过程(例如ITUP),实现了流程的重用、可配置和可适应。

基于RMC,企业可以首先将各种管理活动的最佳实践总结成流程构件,然后基于各种最佳实践流程构件建立统一的方法库。

通过重用方法库中的各种流程构件,面向不同类型的、不同规模的IT组织或软件团队,企业能够快速地量身定做出适用的IT治理流程或软件开发流程,保证了流程的灵活配置能力,如图1.10所示。

图1.10使用RMC,基于企业最佳实践灵活装配的软件开发流程

1.2.4软件工程发展趋势四:

全球化软件协作交付

全球化的世界必然带来全球化的软件交付模式。

根据Forrester的数据,目前87%的开发团队是分布式的,56%有两个以上的开发地点,同时企业的合并和收购趋势不断产生众多新的分布式开发团队,企业为了提供全球化的24×7支持和开发能力,也在不断加强全球化软件协作交付能力。

全球化软件协作交付的另一个重要的驱动力来自于软件外包行业的发展。

放眼今天,外包从最初的在印度公司购买廉价的劳动力,到今天在全球全面展开;从最初的以使用海外更廉价的劳动力为目的,到今天的有效使用海外更多人才和领先技术;从最初的技术编程为主的外包,到今天的咨询、BPO、SOA和基础设施的全面外包;从企业最初的有无数战略外包供应商,到今天建立3至5家战略性外包供应商,我们都不难看到外包和全球化交付正在成为软件交付发展的标准模式,而不再是个例,如图1.11所示。

图1.11全球化的软件协作交付模式

1.3顺应软件工程发展趋势,迎接软件交付2.0时代的到来

纵观整个软件工程的发展历程,我们就不应该奇怪当前软件交付领域存在的众多问题,它是由软件交付1.0的本质特征决定的。

在2008年Jazz正式推出以前,软件交付领域基本处于1.0时代。

在软件交付1.0的世界里,软件交付中的人、流程和技术三要素处于对等地位;软件交付过程强调分工,人的创新能力受角色的视角的限制,受到技术和流程的制约;软件交付过程能力的提高更关注不同过程域的改进。

因此,正是软件交付1.0的这些本质特征决定了软件核心能力建设的方法——先局部后整体,关注不同能力域建设的随需应变的过程,其结果是产生能力发展水平的不均衡和软件交付能力竖井。

顺应全球化趋势和Web2.0时代的到来,软件交付正逐渐进入了2.0时代,它以IBMJazz平台的推出为标志。

Jazz是IBM基于开放的国际标准,以开放社区J为中心,通过社区驱动的商业软件开发模式创造的一个开放、可扩展、高效的协作开发平台,它能够帮助企业快速打造软件交付2.0协作平台。

它基于Internet,提供了统一的软件交付平台,彻底屏蔽掉了地域的概念,为全球化软件协作交付团队提供了完美解决方案;它基于组件的架构模式,使软件交付生命周期各种能力以服务组件的模块化形式存在,能够无缝地集成软件生命周期各个阶段的任务,并提供了开放和扩展能力;它提供了整合的核心数据存储库,统一记录软件交付过程的各种信息,提供全生命周期的可追踪性;它提供了智能的流程感知能力,能够帮助团队灵活定制和遵循合适的软件交付流程,实现合适的软件开发治理。

2.0时代的软件交付的最大特点就是突出了作为软件交付主体的“团队”的要素。

核心理念就是以人为本,关注协作,自动化和透明的治理。

关注以最佳实践为基础快速实现业务价值。

强调团队的智慧、协作的力量,整个软件交付生命周期由以能力为核心的组织方式转变为以团队为核心的组织方式。

它更关注通过整合的软件开发生命周期,变能力的竖井为全生命周期各种服务的整合;更关注通过交付团队的无缝协作变个人绩效为团队绩效;更关注通过赋予平台以流程意识,变局部自动为全局自动;更关注通过社区技术和Web2.0技术,打造开放的、标准化的、可扩展的软件生命周期服务生态环境,从而实现人主宰工具平台,享受工具平台的服务,而不是人为工具打工。

如图1.12所示为软件交付2.0的服务组件结构图。

图1.12软件交付2.0的服务组件结构图

在2.0的世界里,作为软件交付的主体人虽然处于核心位置,但并不是说软件交付流程和技术就不重要。

相反,借助技术的进步,方法的创新,软件交付流程和工具将逐渐以服务组件的形式存在。

就像SOA,开发者可以根据项目特点、团队规模和偏好,快速组织、编排所需的软件交付生命周期服务组件和软件交付流程服务组件,生成团队开发所需的软件交付流程和工具平台环境;组织也可以基于自身发展水平、发展速度和业务要求,选择不同供应商的服务组件,搭建更加灵活、可扩展的协作环境,更自动化的软件交付过程,实现更透明的团队治理。

通过提高软件交付自动化水平和管理的透明化,真正做到变个人绩效为团队绩效,提高整个软件交付过程的生产力。

软件交付2.0时代,团队首先被赋予了基于上下文实时的协作能力,它屏蔽了团队间物理的地域限制,为我们打造更有效的全球化团队,实现团队更加熟练、更有组织、开销更少。

其次,软件交付的自动化水平将得到充分利用,包括软件交付内容的自动生成、测试的自动完成、管理报告和文档化工作的自动完成、团队流程的自动执行。

通过自动化程度的提高,提高软件交付团队的生产力和工作效率。

最后,软件交付的治理过程将更加透明。

“透明”在这里的含义指的是:

与软件交付过程相关的治理工作相对于软件交付生产的主体工作变得透明,使人能够更加集中精力完成创造性的软件生产过程,而由工具自动完成治理所需的信息收集和报告工作。

其中软件交付治理工作包括流程、项目计划、绩效管理、综合报告和文档化等内容。

如图1.13所示展现了软件交付2.0的主要特点。

图1.13软件交付2.0的主要特点

IBMRationalTeamConcert(RTC)是IBM基于Jazz平台推出的第一个商业产品,这是一个协作式的软件开发平台。

RTC提供的自动数据收集和汇报功能可以明显地减少开销,提供进行有效项目管控时所需要的实时洞察能力;实时协作功能有效地帮助团队减少出错机会,使不同角色能够更加紧密地在一个实时工作环境里遵循敏捷流程进行高效协作。

RTC改变了开发团队如何进行软件开发的方式,使软件交付活动具有更加高效的协作性、更高的生产率、更加透明并且富有乐趣。

如图1.14所示为基于Jazz的软件交付2.0平台。

图1.14基于Jazz的软件交付2.0平台

通过开放的Jazz,我们还可以整合更多的工具平台,形成统一的流程、方法、数据、工具使用方式,进行畅通的上下文协作,从而彻底打破传统的过时的以工具为中心的平台建设思想,真正实现以企业业务目标为指导的大平台建设思想,彻底打破工具竖井。

1.4小结

本章首先向各位展现了当今世界软件交付过程面临的挑战,分析由此催生出的四个软件工程发展趋势:

模块化、开放计算、合适的开发治理和全球化软件协作交付。

顺应软件工程发展趋势,软件交付2.0时代的到来势在必行,而软件交付2.0协作平台的出现也正体现了大自然适者生存的进化规律。

IBMJazz平台顺应软件工程发展趋势,完全符合了软件交付2.0团队协作创新的要求,能够帮助软件企业快速打造软件交付2.0平台。

第2章我们将为您逐步揭开Jazz平台的神秘面纱。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1