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),随着时间的推移,每个阶段所注重的焦点也不断发生变化,同时这四个阶段也是不断迭代完成的,每一次迭代都有增量的任务完成。
究竟什么样的方法最适合今天的互联网开发?或者如何综合运用?欢迎评论!
分享到:
相关推荐
软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法
《软件开发的形式化方法》对软件开发中的形式化方法进行了介绍和讨论,内容涵盖了SE2004中关于"软件的形式化方法"的知识点,主要包括:有限状态机、Statecharts、Petri网、通信顺序进程、通信系统演算、一阶逻辑、...
软件开发实践者的研究方法软件开发实践者的研究方法软件开发实践者的研究方法
软件开发者应该要知道的软件方法论! 值得一看的软件开发资料!
《敏捷软件开发方法与实践》第1章阐述了敏捷软件开发方法出现的历史背景、敏捷宣言、敏捷原则及最新动态;第2章介绍了常见的敏捷软件开发方法及其相互间的简单比较;在第3章至第5章中,作者结合自己的敏捷项目开发...
敏捷软件开发方法简介 敏捷软件开发方法简介 敏捷软件开发方法简介
软件开发报价的计算方法.pdf
敏捷软件开发方法理论与实战.pdf敏捷软件开发方法理论与实战.pdf
基于研究的角度,讨论了在软件开发过程各阶段使用形式化方法的可能及困难,进而研究了形式化方法在理论上和应用上的能力、局限性及其产生原因,以及由此产生的对形式化方法的讨论。
软件开发方法;软件开发工具等。使学生具备必需的软件工程的基础知识和基本技能,初步掌握开发中、小型应用程序的过程和方法,培养学生科学思维、综合运用所学知识解决实际问题的能力及一定的创新意识,为学生继续...
用例驱动的软件开发方法论
面向方面的软件开发方法 ppt 面向对象开发技术与开发范型变迁 横切关注点 横切关注点的建模与分离 弹性体系结构演变 AOSD的应用
软件开发价格估算方法(参考) 对做项目核算很有帮助!
软件开发报价(含软件开发项目工作量及报价模板)的计算方法.pdf
软件开发和服务项目价格构成及评估方法.pdf
Scrum敏捷软件开发方法
包括一些设计模式和软件开发的讲课资料 • (1)软件设计原则; • (2)设计模式; • (3)软件体系结构模式; • (4)应用框架; • (5)软件重构技术; • (6)面向组件软件开发方法。
完美软件开发-方法与逻辑,写的真够好,适合带团队的童鞋们。