ThoughtWorks的开发方法
传统的说明性方法论采用的是一种由上而下的项目管理途径,来建立一种命令和控制的体系。这些方法论的假设基于,只要有了足够的计划和管理,成果就可以预测,风险就可以避免。
当客户的业务和技术都保持相对稳定的时候,这些方法论很有效。然而,对于那些与日俱增的战略性软件项目来说,说明性的方法都既不能提供企业所需要的灵活性,也不能提供企业所需要的市场进入速度。太多的时候,最终的结果不是高价值的软件,而是一大堆分析结果,只会在某个经理的书架上积满了灰尘。这和在白板和键盘上发生的变化……或者,真正的商业需要来说,相差太远了。
敏捷方法基于非常严谨的过程。实际上许多这些实践都已经有着充分的定义,能够直接纳入开发工具之中。例如,单元测试框架,持续集成工具,带重构的开发环境,就构成了新的一套新开发工具,让人们能够更快更好地创建软件。
很早以来的研究已经证明,唯一能对软件生产力产生重大影响的,是人。然而,奇怪的是,敏捷方法是第一套基于人们实际软件开发特点的软件工程实践。
同时,ThoughtWorks认识到方法论不是万能的。作为采用敏捷方法的几个先驱者之一,我们十分了解这些方法的利和弊。不过,敏捷方法包括了许多近期史上最成功的软件成果中演化而来的有用的实践。极限编程(XP),SCRUM, Crysta等等敏捷方法都推崇脚踏实地,切实可行的各种实践,如持续集成,测试驱动编程,和重构
联合技术开发FTD
一种方案是:美国软件开发组花了一年的时间研发CRM软件。在美国总部试用时没有任何问题,该软件完全能够满足产品生产的需要。软件开发组于是将软件推向中国市场。由于对中国市场缺乏了解,他们花了大量的费用和工作对软件系统进行改进。在经过一年的改进后,终于完善了软件功能。此时中国本地产品也开发出来了。
第二种方案是:组建两个软件开发组,他们相互独立而又同时开展工作。但是中国软件开发组团队既缺乏技术、又缺少经验。由于公司规定中国是受控国之一,中国软件开发组难以及时获得新产品线的有关信息,致使开发工作进展十分困难。因此,客户关系管理软件CRM软件在中国市场的推广工作非常不理想,致使大量客户十分不满。公司不得不花了两年多的时间,才消除了市场的负面影响。
假设还有第三种方案:与当地软件开发组采取松散的方式联合工作。美国软件开发组具有的丰富支持产品线的软件开发经验,他们把这些经验快速地传递给中国软件开发组。CRM软件在美国照常按计划投入使用,而在中国的软件开发组继续后面的工作,解决软件系统适应在中国使用的有关问题。CRM软件最多晚三个月,就能够在中国市场顺利投入使用。
以上三种假定的开发方案中,方案一是高度集中化,方案二是高度分散化,而方案三是最优化。其中第三种软件开发方案,特别适用全球化公司的软件开发,称之为联合开发FTD(federatedtechnologydevelopment:联合技术开发)。应用软件集成仅仅是FTD发挥作用的领域之一。FTD方法不仅适用于信息技术和业务处理,而且适应软硬件开发和产品开发。
FTD是优化业务产出的方法之一。采取这种方法,一是本地组织可以自主作出决定,不同组织之间是平等关系而不是联盟。二是要有一个中心机构负责工作协调,每一个分支都能够在统一的命令和安排之下开展工作。
RUP(Rational Unified Process)
即Rational统一过程,定义了一系列的过程元素,如角色,活动和产物,通过适当的组合,能够帮助软件开发组织有效地管理软件过程。RUP的特点体现在它是以用况驱动(use case driven)的,以体系结构为中心(architecture-centric),迭代和增量(iterative process)的。在系统的整个开发生命周期内共有4个阶段:初始(inception)、细化(elaboration)、构造(construction)和移交(transition),随着时间的推移,每个阶段所注重的焦点也不断发生变化,同时这四个阶段也是不断迭代完成的,每一次迭代都有增量的任务完成。
究竟什么样的方法最适合今天的互联网开发?或者如何综合运用?欢迎评论!
分享到:
相关推荐
软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法
软件开发价格估算方法 软件开发价格估算是软件项目管理中的一项重要任务,它对项目的成本控制和利润的影响非常大。软件开发价格估算方法是根据软件开发的工作量、商务成本、国家税收和企业利润等项来计算的。 软件...
复用系数是软件开发工作量的另一个重要影响因素,它是根据软件企业对基于构件的开发方法和软件产品线的实施情况来确定的。复用系数的取值范围是0.25 ≤ τ ≤ 0.75,复用系数越高,软件开发工作量越小。 开发费用/...
在软件开发方法中,有多种方法论,每种方法论都有其特点和优缺。了解软件开发方法论的历史发展和当前趋势对于软件开发是非常重要的。 Ad-hoc 方法论 ad-hoc 方法论是软件开发中最早的一种方法论,也是最简单的一种...
### 软件开发中的软件方法论 #### 1. 软件方法论的重要性 在软件开发领域,软件方法论是指一系列指导软件项目管理和开发的技术、流程和规范的集合。一个好的软件方法论可以帮助开发团队有效地规划、设计、实现、...
形式化方法是一种基于坚实的数学基础的软件开发方法,它利用数学的精确性来描述软件系统的行为和属性。这种方法的目标是提高软件的质量,确保其正确性,并简化维护工作。形式化方法通常包括但不限于以下步骤: - **...
复用系数是考虑软件企业是否采用基于构件的开发方法,是否有可复用的构件库等。 软件开发报价计算公式可以表示为:软件开发价格 = 开发工作量 × 开发费用/人·月。其中,开发工作量 = 估算工作量经验值 × 风险...
软件开发报价计算方法 软件开发报价的计算方法是软件开发项目中非常重要的一个环节。软件开发价格与工作量、商务成本、国家税收和企业利润等项有关。为了便于计算,给出一个计算公式:软件开发价格=开发工作量×...
复用系数是软件开发中复用的系数,包括了软件企业已经采用“基于构件的开发方法”,并己建立起能够复用的构件库(核心资产库),或者已有一些软件产品,仅作二次开发等。 0.25 ≤ 复用系数 ≤ 0.75 1.2 开发费用/...
《敏捷软件开发方法与实践》第1章阐述了敏捷软件开发方法出现的历史背景、敏捷宣言、敏捷原则及最新动态;第2章介绍了常见的敏捷软件开发方法及其相互间的简单比较;在第3章至第5章中,作者结合自己的敏捷项目开发...
敏捷软件开发方法简介 敏捷软件开发方法简介 敏捷软件开发方法简介
通过以上内容,我们可以看到《软件开发方法.pdf》这本书覆盖了软件开发的各个方面,从软件的基本概念到现代的开发方法和技术都有详细介绍。这对于想要深入了解软件开发领域的读者来说是一本非常有价值的参考资料。
复用系数(以 τ 来表示)是软件企业采用“基于构件的开发方法”时,已经建立起能够复用的构件库(核心资产库),或者已有一些软件产品,仅作二次开发,从而使软件开发工作量减少。团此:0.25≤复用系数≤0.75 开发...
### 敏捷软件开发方法理论与实战 #### 敏捷方法概述 敏捷软件开发是一种以人为本、灵活应变的软件开发模式,旨在通过迭代和增量的方式快速交付高质量的产品。相较于传统瀑布模型等预见性的开发方法,敏捷更加注重...
"软件开发过程和软件开发生命周期" ...软件开发过程和软件开发生命周期是软件开发的两个重要概念,软件开发过程模型是软件开发的结构框架,为软件项目的管理提供里程碑和进度表,并为软件开发提供原则和方法。
软件开发报价的计算方法.pdf
敏捷软件开发方法是一种在21世纪初期被广泛采纳的软件开发模式,它的出现是对传统工程方法的一种革新,强调灵活性、适应性和以人为本的原则。本文将深入探讨敏捷软件开发方法的理论与实践,包括其核心理念、起源、...
目前主要有两种主流的软件开发方法:面向对象方法和结构化方法。 ##### 1. 结构化方法 结构化方法的基本原理是跟踪数据流,即研究应用领域中数据如何流动以及如何在各个组成部分进行处理。这种方法的特点是自顶向...