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 相对上是不太敏捷的。
最后,这分析绝不是提倡为敏捷而敏捷,交付软件和替客户增值才是最重要,还有,用什么方法,始终团队最能够以了解当前状况去作出决定。
大家对这个新的方法有什么想法呢?不妨也一同分享。
评论