SpecDD官方指南

 

SpecDD(Specification Driven Development)是一种需求驱动的混合型敏捷开发方法,通过其理论体系在单一框架中将敏捷与传统开发项目实现统一管理,它同时继承了敏捷与传统开发的优势并赋予企业创造更高效能的能力。

 

SpecDD指南的目的

SpecDD,是一种先进的敏捷架构,在过去的20多年助力了无以计数的开发团队取得开发成功,其中包含20%的世界五百强企业,例如英伟达、Sony、波音、HP、Honeywell、百思买Bestbuy、UPS、DHL等等;以及中国的大型企业:中车、中海油、海尔、华润、中电、电信天翼、格力、中钢、安邦保险、中软国际、广汽、上海证券、完美世界、金山、民生银行。

 

为了帮助更多的用户理解并学习SpecDD,并最终取得开发项目管理的成功,本文将作为一个索引贴及基础知识库,链接SpecDD相关有用的文章信息。

 

创始人背景

SpeccDD由云可达及TechExcel创始人周铁人博士创立。周铁人博士毕业于美国堪萨斯州立大学,获人工智能专业博士学位;始终致力于实验室自动化、AI概念建模、机器人技术和人工智能的研究。1995年在美国硅谷创办TechExcel软件公司,作为"以知识为核心"的应用生命周期管理(ALM)领域内的专家,首创了混合型敏捷项目管理方法论SpecDD (Specification Driven Development),针对当今的分布式开发团队和服务支持团队的特点和需求,构建了TechExcel企业级DevOps软件系列产品。项目已有 25 年研发投入和市场经验,累计已服务过全球超过上千家企业客户,覆盖世界 500 强企业中的20%。

 

 

SpecDD概念

SpecDD概念性框架用规范点(Specification,以下简称Spec)来表述/定义产品或版本功能,并通过中央知识库与整个团队有效共享,使Spec成为贯穿ALM各阶段的要素,从需求分析到项目规划,从编码到QA测试,驱动整个开发流程。

 

Spec是SpecDD概念性框架中的最小单元。通常情况下,由来自各种渠道的客户需求和产品需求,结合以往积累的知识文档,可以提炼出多个Spec。它们可以是正规表达的新功能、功能增强或缺陷修复,并与对应的需求和知识相关联。Spec是高度结构化的,其树形结构准确地对应产品/版本功能树,以保证开发人员不丢失任何需求。

 

SpecDD的关键思想有如下体现:

 

l  由精通业务逻辑的需求团队主导项目的规划设计,形成完整表达的“概念产品”,通过一个个基本单元Spec的组合来体现;

 

l  业务逻辑通过“概念产品”准确地传达给实施团队,驱动并指导开发、测试活动,并能在“实际产品”的研发中及时落实需求变更;

 

l  所有的设计规划、开发编码和QA测试都必须围绕Spec进行。

 

 

SpecDD框架

 

 

SpecDD之于敏捷开发

 

虽然敏捷开发在中国还处于刚刚起步阶段,但近几年来发展迅速。调查显示,近几年来,使用极限编程(敏捷方法中最典型的一种)的程序员数量显著上升,敏捷开发已经逐渐从“软件开发”层面渗透到整个应用生命周期。

 

概括地说,敏捷开发具有以下基本特征:

 

l  客户提出需求列表并确定需求优先级;

 

l  开发团队按照客户的详细需求提交产品所需增加的模块;

 

l  客户可以在任何时间增加、删除或修改需求;

 

l  每次迭代/增量都可用于项目最后的评审。

 

正是由于开发过程上的敏捷,使得产品或服务能更好地反应客户的需求,及时沟通降低了项目失败率,避免开发一些不必要的功能,缩短产品发布周期,更快占领市场,从“开发敏捷”最终实现“业务敏捷”。

 

然而,敏捷开发也存在一系列问题。例如,往往只有小型的、人员集中的开发团队更愿意采用敏捷方法;项目进展常常过度依赖于频繁的面对面沟通;沟通过程缺乏必要的知识记录;开发人员不能完全准确地理解业务需求等。

 

SpecDD很大程度上弥补了这些不足:

 

l  SpecDD渗透到敏捷开发的每一次迭代过程中。“概念产品”在每次迭代过程中都能得到进一步改进,每次迭代的结果对概念产品的实现又有参考价值。

 

l  用Spec这种正规表达形式完整地描述产品,使客户更容易理解修改后的设计。

 

l  以知识为核心的SpecDD概念性框架,不仅能将敏捷方法运用到日常开发中,通过日积月累总结出成熟的开发实践,还能依托于中心知识库积累的大量设计和实施数据,为不断总结和完善开发实践提供了坚实的基础。

 

l  SpecDD真正解决了分布式团队敏捷开发的问题(如图4所示),实现了关注点的有效分离。核心团队专注于设计“概念产品”,并通过Spec对产品进行正规描述;分布式团队专注于开发、测试最终实现“实际产品”,随时比对“实际产品”和“概念产品”,做出及时修正,严格控制项目质量。

 

l  应用SpecDD,即使大型的分布式团队也能建立小型团队般的敏捷开发环境,提高开发效率,真正发挥分布式团队合作的规模效应。

 

 

SpecDD知识索引

 

SpecDD方法论理论:

 

SpecDD 原则

SpecDD:混合的敏捷开发方法模型概述

SpecDD混合型敏捷开发

SpecDD以知识为核心的ALM

SpecDD 术语

SpecDD系列:敏捷项目管理 - 简介

SpecDD系列:敏捷项目管理原则

 

SpecDD核心价值及优势:

 

待更新~周铁人:Scrum与SpecDD的工作流区别

为什么设计并创造SpecDD——周铁人

敏捷测试与传统测试的区别

Scrum/SpecDD对于老板的价值何在?

待更新~SpecDD与纯敏捷不同点

SpecDD:基于需求搭建的沟通平台

 

 

SpecDD执行技巧


SpecDD系列:敏捷应用生命周期管理(ALM)

SpecDD系列:6个确保您执行“充分”QA测试的技巧

Sprint 过程中,如何扩展团队并与质量做整合

敏捷开发中,基于Points 的burndown

敏捷开发中,需求优先还是开发优先

SpecDD系列:“完成” 的定义

如何弥补敏捷方法中的薄弱环节?

敏捷开发中,Product Backlog 是否足以实现需求管理?

周铁人:加强软件开发团队沟通的若干建议