讨论:敏捷开发真的对架构设计不利吗?
创始人
2024-06-07 03:10:37
0

目前有很多程序开发人员都认为敏捷开发会帮助项目更快的完成,但是本次讨论却要从反方向来进行探讨。希望这些对大家有所帮助。

增量迭代开发(敏捷实践之一,它意味着每次迭代的产出只是本次迭代范围内的需求)真的不利于产生好的设计吗?Scrum真的提倡“忽视架构问题”吗?如果没有敏捷技术实践的话,架构设计能有效的演化吗?测试先行式的开发真会产生优雅的设计吗?在红绿条提示下的重构循环只在局部小范围内有效吗?

来自Net Objectives的Alan Shalloway就利用Scrum构建应用的经验向ScrumDevelopment yahoo group的成员提出一些问题,问题之一就是“他们是否找到代码质量是依靠什么来保证的?”

当我在课程中或在那些讨论“向已建系统中追加新特性”的会议中提出这个问题时,每个人都认为这属于集成成本。我想,这是因为大多数人不会编写那些融入了很多设计模式的具有良好的扩展性、足够灵活并且易维护的代码。这些人中,大部分也没有使用过Scrum。

Shalloway随后详细解释了他的观点:

……正如Scrum所告诉我们的,他们(指在Scrum团队中的开发者)根据客户价值一次只开发系统的一小部分,如果团队中有高级架构师的话,就会组织得更好。很多开发者有一种很好的意识,即他们会回头看一下是否应该做一些改动,使架构更合理。但更多的人并不知道,假如代码是通过拷贝、粘贴并修改(甚至改得面目全非)得来的,那么这会带来很多冗余。此时,Template Method可能是一个比较好的解决方案。

也许我悲观了一些,但我的感觉是,假如你没有注意熵的话,就意味着它们会达到你不期望的地步。在你的案例中,你正在使用Scrum来改善很多团队忽视的东西。所以,我的问题是:

大家忽视它了吗?

如果真是这样,它会引来问题吗?

到目前为止,这些反应都表明很多使用Scrum的团队有这个问题,甚至那些坚持写测试和进行重构的团队也有同样的问题。那些没有使用多少有些变化的敏捷技术实践的团队,可能会有更大的麻烦。(请记住:Scrum 与开发技术没有必然的联系,你可以使用传统方法开发软件,也可以用XP,或者其它技术实践,只要你在Scrum的框架之内使用就可以了)

接下来,让我们讨论一下现实中,Red-Green-Refactor loop是如何发挥作用的?一个团队在写测试和重构方面深有心得,就会有一个好的设计吗?Paul Jones 的blog中有一篇关于TDD如何创建了混沌代码(Ravioli Code),宣称用TDD开发出来的代码是低耦合的代码:

我想,很多TDD和测试先行的理想主义者和宣传者写出了的确经过充分测试的代码,但还是很难理解。

Jones并不想撼动TDD,因为与其测试目的相比,TDD实际上更关注于设计。但这还是会带来一个有趣的事情。在使用这些实践的敏捷社区中,好在哪里呢?随着社区的成长,这些实践带来的麻烦比其带来的好处还多吗?与传统开发技术相比,这些工具被不正确的使用是否更危险?

最后,让我们假设:我们正在恰当地使用Scrum和TDD。毕竟,象Ron Jeffries 在《We Tried Baseball and It Didn't Work》一文中所呈现的,我们不能因为自己没有正确地使用它而将不好的结果强加给它。TDD会产生好的设计吗?对于使用Red-Green-Refactor loop的做法,重构可以说是一种局部优化技术。我们优化局部的设计。本质上,这等同于steepest descent algorithm,也就意味着重构几乎总是会带来次优设计,就象使用TDD来做“数独游戏”一样。

现在是我们用批判的眼光来重新审视我们的这些实践的时候了吗?

【编辑推荐】

  1. 再谈敏捷开发的好处及敏捷外包的前景
  2. 再谈敏捷开发 从成本到收益的优化
  3. 敏捷开发指导方针
  4. 敏捷开发中的成效评估模型
  5. 对敏捷开发的五大误解

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...