InfoQ

InfoQ

新闻

我的书签

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

该内容已经被标记书签!

标记书签错误,请重试!

从Smart看选择敏捷方法

作者 麦天志 发布于 2009年5月21日

领域
架构 & 设计,
过程 & 实践
主题
方法论 ,
敏捷
标签
敏捷理论 ,
敏捷宣言

Sander Hoogendoorn最新发表了Accelerated Delivery Platform的敏捷软件开发平台,与此同时,也提出了一个叫作"Smart"的新敏捷方法,本文将介绍这方法并作出简短分析。

Sander在文中首先介绍该经验累积的背景,Smart原先是由RAD和DSDM实践开始,及后并亦加入一些Scrum及XP的实践。然后介绍了Smart开发方式的特点:

  • 紧密协作Smart项目要求客户和项目团队包括开发团队和测试人员紧密合作。
  • Smart用例驱动在Smart项目使用他们发明的Smart用例,而且Smart用例也是用作他们估算和计划的粒度。
  • 短迭代以两星期或四星期迭作,Smart开发周期还包括不同项目的迭代类型:Propose(计划)Scope(范围定义)Realize(实现)Finalize(定妥)Manage(管理)
  • 测试驱动每个Smart项目都要求單元测试Smart测试。"Smart單元测试"是用在Smart用例(通常是基于活动图,activity diagrams)去定义及执行功能测试的技巧。
  • 交付驱动尽量频密地交付,在Smart项目中软件可于每天交付(每个Smart用例)、迭代完结、发布(通常是三个月发布一次)。
  • 角色虽 然不像Scrum和XP等那么少,但是比RUP或者DSDM较少的,角色包括有Project Owner(项目负责人)、User(用户)、Project Manager(项目经理)、Requirement Analyst(需求分析员)、Lead Developer(首席开发人员)、Developer(开发人员)、Tester(测试人员)、Configuration Manager(配置经理)。
  • 敏捷仪表板(Agile dashboarding)用的可能是报事贴、也可以是电子仪表板,加上Burndown图,监察进度及早发现问题。

网站还有不同关于这方法的详情,如果对此方法有兴趣,可以到该网站看看

相信Smart这开发方式还算可以称得上"敏捷"的实践,如果大家对此有所迷罔,一个简单的方法是看看 敏捷宣言 以及其 原則 。心水清的读者亦很容易察觉到Smart很有DSDM(现称Atern)和RUP的味道,并且发觉XP十分提倡而亦很常在Scrum团队中见到的测试驱动开发、重构、持续集成却没有提到。

Mike Cohn就曾经做过一个 "Selecting an Agile process" 的演讲,里面用一些指标作比较,笔者就尝试根据这些指标为Smart作出以下分析:

个体与交互(Individuals and Interactions)  
授与权力自我管理团队 团队有多个角色内有几层架构
消除阶段 在周期中包括计划、范围定义、实现、定妥、管理的阶段,而且还是按次序进行
使用最少计划 在进行实现之前要完成计划和范围定义
伸缩性(Scalable) 根据Sander在网站上指出这方法已用在一些大型项目使用
持续过程改善 没有强调
可以工作的软件(Working Software)  
增量和迭代 大致上都算是,只是周期中有五个阶段
以可以工作的软件作为进度的基本量度 不是,而是强调使用Smart用例
要求交付最少的文档、图表(Artifacts) 同上
客户协作(Customer Collaboration)  
持续客户参与
适应性、以实际经验作为依据的客户关系
相应变化(Responding to Change)  
演变式的需求
频密监察 没有强调


如果跟Mike Cohn在该演讲内容提到的其他方法比较,Smart相对上是不太敏捷的。

最后,这分析绝不是提倡为敏捷而敏捷,交付软件和替客户增值才是最重要,还有,用什么方法,始终团队最能够以了解当前状况去作出决定。

大家对这个新的方法有什么想法呢?不妨也一同分享。

麦天志 现就职于Odd-e从事团队教练工作,从小对编程产生兴趣,毕业於香港大学,主修计算机科学。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪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

特性注入:成功三部曲

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