InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

关于OpenUP的辩论

作者 Shane Hastie 译者 鲍央舟 发布于 2010年4月30日

领域
过程 & 实践
主题
敏捷实施 ,
敏捷 ,
企业级敏捷
标签
教练和指导 ,
敏捷介绍

最近,一个关于统一过程(Unified Process)的不同派生物及其特质的讨论被公布在这里。 在InfoQ的读者中也有一些关于Open Unified Process (Open UP)的争论。这些争论真实地反映出了更广泛的博客圈的争论。

UP Mentors的共同创始人Mark Lines最近写了一篇标题为"敏捷开发使UP成长"的文章。他在文章中引用了Scott Amber来宣称敏捷界的许多人似乎低估或者忽视了企业界的真实情况:

  • 我们许多人并没有同地协作(co-location)的优势。同地协作要求整个开发团队紧密地工作在一起(理想情况在同一房间中),而且要求用户代表一直在场以回答团队的问题。
  • 结对编程,也就是2个程序员共享一个键盘,是大部分管理者无法认可的支出。
  • 在没有适度详细的(超出用户故事之外的)需求时交付系统,对测试,写培训材料以及产品支持来说都是无法接受的。
  • 边做边修改架构(重构)而没有一些初始的架构设计,对大型企业系统来说是不适合的。
  • 许多项目并不是完全独立的,并不能单独开发,因而需要与其他系统的依赖与集成,也需要一些协同工作。.
  • 组织中通常已经有一些管理实践(如PMO,ISO,CMMI)。这使得一个行政级别和一些文档不可缺少。
  • 每一到两周向用户部署软件对大部分组织来说是不实际的。  仅仅是移交软件通过开发,测试,系统测试,用户验收,产品环境已经是一项繁重的任务。  如果有许多项目每周并行做这样的事情,这完全是不可行的。   
他接着概括了OpenUP,并主张OpenUP提供了足够的框架和流程来处理更广泛的企业级挑战,并同时保留了敏捷的核心。

与之形成鲜明对照的是Michael Dubakov对于OpenUP和常规UP方法的回应- 放心,敏捷开发确实在成长 - 其中他对之前提出的每条质疑予以应答:  

关于同地协作(co-location):

当然我们都知道同地协作的团队更好。咨询师建议团队成员在同一个地点协同工作并不使人惊讶。如果你要赢得一场赛跑,开宝马M3比福特福克斯要好。另外,近几年有很多关于分布式敏捷的讨论。对于如何远程实施敏捷已经有很多想法和经验汇报。敏捷也适用于远程团队。

关于结对编程

这个论点很奇怪。很多管理者不想支持持续集成,迭代开发以及行为驱动开发(BDD)。但这并不意味着这些实践不好。背景和上下文很重要。在一些公司某些项目中结对编程会增加产出率,但是在其他项目中却没有受益甚至有反作用。有多少敏捷教练坚决要求结对编程,说“没有结对编程你们就不敏捷”?不多。在整个敏捷社区中传播这种论点是错误的。

关于详细需求:

少来!用户故事可以非常详细。比如说,你可以用BDD用户故事格式来写很多案例。用这种格式描写的功能可以很容易地转化为单元测试!老实说,这是很惊人的。 http://www.targetprocess.com/blog/2009/10/bdd-and-user-story-specification-examples.html 

关于架构

敏捷社区的很多人都相信花一些时间在架构上是很需要的。同样的,这和背景和上下文很有关联。如果你只是创建一个简单的应用,一天的时间就可以明确所有的重要决定。如果你想创建一个复杂系统,那可能要花好几个月。常识很重要。过度的架构设计总是危险的。可工作的软件才是对一个想法的最好证明。一个叫做“渐进架构(emergent architecture)”的概念正在发展。我喜欢这个想法,这也许是对的方向。http://www.infoq.com/emergent_architecture                  

关于项目独立性

敏捷实施正在迅速传播,现在确实没有公共的标准的方法来解决这个问题。但是我相信随着大公司开始实施敏捷,这个问题会被解决。(事实上我们已经进入了这个阶段) 

关于管理和标准

这是不是意味着PMO,ISO和CMMI是好的,而且我们应该放弃并追随它们的统治?敏捷社区努力与官僚抗争,我本人很喜欢这样。文档化的流程对软件开发项目的成功没有任何作用。90%的情况下,它会把你困着蜘蛛网里限制你的创造力。没有创造力就没有软件开发。醒醒吧,Mark! 

我们生活在这些标准中,但是我们应该反击。 

关于频繁交付:

这个论点太常见了… 而且“在大多数组织中不实际”真是句名言。有统计数据吗?除了企业级Java超大型应用,Mark有没有试过部署任何别东西?许多SaaS服务可以无痛苦地每周更新。一些服务甚至可以无痛苦地每日更新!这很难以置信,但是我喜欢它。客户也喜欢它!

你支持哪一方的观点? 请分享你的反馈。

查看英文原文: 关于OpenUP的辩论

译者 鲍央舟 现任OutSofting敏捷咨询师,有丰富的敏捷实践和指导经验,专注于推广敏捷在国内的实施。

还是敏捷好 发表人 Jun Ran 发表于
确实,敏捷既像时尚圈般狂热,又像政党般党同伐异 发表人 s y 发表于
Re: 确实,敏捷既像时尚圈般狂热,又像政党般党同伐异 发表人 吕 新科 发表于
  1. 返回顶部

    还是敏捷好

    发表人 Jun Ran

    虽然敏捷不容易做到,在实施过程中会遇到一些困难和阻力,但是我们并不应该放弃对实施敏捷的努力和追求。

  2. 返回顶部

    确实,敏捷既像时尚圈般狂热,又像政党般党同伐异

    发表人 s y

    Methods Need Theory(方法需要理论)这篇文章从另外一个方面进行了分析

    www.drdobbs.com/architecture-and-design/2191002...

  3. 返回顶部

    Re: 确实,敏捷既像时尚圈般狂热,又像政党般党同伐异

    发表人 吕 新科

    同意。
    “文档化的流程对软件开发项目的成功没有任何作用”,敏捷/Scrum不也规定了一些类似的文档化的流程么?或许流程这个词已经被用烂了,谈流程而色变.

    同时,敏捷如果这样一味的绝对化的否定文档,除了为了图个口快,好像也没什么意义。

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。