QCon 全球软件开发大会倒计时2个月!讲师已确认60%+ >>> 了解详情
写点什么

CMMI 环境下,该如何实施 Agile?

  • 2008-08-17
  • 本文字数:1222 字

    阅读完需:约 4 分钟

“CMMI 与敏捷之间是否有什么样的关系?是矛盾的?还是可融合的?”“在 CMMI 环境下如何实施敏捷?”自从“敏捷”诞生以后,此类话题就此起彼伏,从未停止。前几日,在 AgileChina 的讨论组中,“ CMMI 下的 Scrum,如何操作?”以及“如何实施 Agile 这个东东,Agile 怎样保证质量?”又被提了出来,跟帖者众多,各抒已见。pipi 的建议是:

…,看看公司有什么问题,为解决问题而引入 Agile,而不是为了 Agile 而 Agile。没有问题又何必引入 Agile 呢。就好像很多世界顶级软件公司都不需要采用 CMMI 一样,因为自身的软件开发流程已经很成熟了,…

来自 Thoughtworks 的咨询师熊节的经验是:在 CMMI 环境下可以实施敏捷,但要精心选择切入点:

第一,CMMI 要求的是软件组织具备成熟过程的 * 证据 *,而诸如 XP 之类的敏捷方法只要使用得当是能够提供足够的证据来支持 CMMI 5 级的要求的,所以在 CMMI 框架下实施敏捷方法是可行的,这是在一些采用 CMM 多年的国内领先的软件组织中得到验证的。
第二,在这种环境下实施敏捷要注重实效,从影响较小收益较大的实践开始逐步引入,比较忌讳开口提大名词(例如 SCRUM 或者 XP)。我会建议你以 CMMI 5 级的"自我改进"做旗帜,找到组织中存在浪费的环节,引入最佳实践来消除浪费,没有必要把敏捷挂在嘴边。
第三,一般来说,持续集成是开始这类改进活动的一个好的起点,因为持续集成强迫组织形成快速的反馈机制,从而让很多问题有机会在更短的时间暴露出来。另一方面持续集成也是领导比较容易接受的一个实践。

两年前的一篇名为《敏捷实践两个月》帖子也提及在一个特定情况下引入了 Agile 元素。可见,大家引入 Agile 的目的各不相同,但都是为了解决某些问题。看来,想要实施 Agile, 即要根据 Agile 自身的特性,也要考虑不同的环境,来采取不同的策略。

另外,起步停车还进一步提出了文档问题(尽管这个问题在很久以前就在 AgileChina 上讨论过):

… 我们现在对于文档的处理完全就是一种资源浪费,比如 TDD, 但可是, 可但是, 如果我们改进文档处理方式或者实施 TDD 这些东西的话,会有人跳出来阻止的。 因为他们认为, 他们看不到相关文档, 就以为缺少了什么东西。

很多初识 Agile 的人也有 Agile 不需要文档;/1219024198970/) 的错误想法,但事实上,无论以什么样的方式存在,无论记录的内容是什么,文档都是必不可少的。而且,王 晓明加调,项目中一定要做到:

每一个文档都要有真正的读者,
每一个实践都要有真正的成效。

Pipi 补充道:

  1. 要么不写,要写就写有质量的文档(低质量的文档还不如不写)
  2. 提供给客户的文档优先于内部使用的文档(给客户的文档是更有价值的)

看来,“CMMI 环境下,该如何实施 Agile?”这个问题并没有一个规范的答案。其实可以说:“只要本着‘积极思考,消除浪费’,没有必要把敏捷挂在嘴边,不要对立,而去实践,在实践中不断调整”就是在 CMMI 环境下实施 Agile 的要点。

InfoQ 的读者,您在 CMMI 环境下实施过 Agile 吗?不妨把您的心得体会与大家分享一下。

2008-08-17 20:481077
用户头像

发布了 100 篇内容, 共 20.7 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

数说热点|米哈游新作《崩坏:星穹铁道》今日公测,能否再现原神奇迹?

MobTech袤博科技

linux dbus客户端和服务器示例代码

linux大本营

c++ Linux dbus

重载++运算符分别实现i++和++i

linux大本营

运算符 数据结构与算法

一文带你了解实战常用JavaScript API

程序员海军

JavaScript 三周年连更

Go sync.Once:简约而不简单的并发利器

陈明勇

Go golang 高并发 三周年连更 sync.Once

打工人逃不开「单人单岗」

Java 架构 程序人生 职场

Django笔记十七之group by 分组用法总结

Hunter熊

Python django count 分组查询 sum

写一个完整的SHOW TABLE STATUS 语句返回的所有表的状态信息对应的结构体

linux大本营

数据库 存储 结构体 C++

共话数字化新技术、新趋势 华为云开发者日东莞站成功举办

Geek_2d6073

dpdk中,如何建立portid/queue的配置和逻辑核心的关系

linux大本营

队列 DPDK DPDK开发

openbmc 中如何使用D-bus

linux大本营

dbus openBMC

对数据库中存储的程序进行现代化改造,以使用 Amazon Aurora PostgreSQL 联合查询、pg_cron 和 Amazon Lambda

亚马逊云科技 (Amazon Web Services)

来字节跳动实习,有机会发Nature子刊

字节跳动技术范儿

第五期(2022-2023)传统行业云原生技术落地调研报告——金融篇

York

容器 DevOps 微服务 云原生 金融

nvim 配置c++环境

linux大本营

vim C++

dpdk l2fwd如何初始化每个逻辑核的port/queue的

linux大本营

队列 DPDK DPDK开发

扎最深的寨,打最持久的仗——一知智能AI商业化攻略访谈录

B Impact

容量成本性能全都要有, Redis 容量版 PegaDB 设计与实践

百度开发者中心

云数据库 百度智能云

如何使用 SCP 和 Rsync 在 Linux 中传输文件

wljslmz

Linux 三周年连更

解析下rte_pktmbuf_pool_create参数含义

linux大本营

DPDK DPDK开发

linux dbus代码举例

linux大本营

Linux C++

YashanDB V22.2重磅发布!七大亮点带你了解新特性

YashanDB

数据库

电子签赛道驶向深水区,法大大以数智化引领创新

ToB行业头条

6G 通信技术和 5G 通信技术的区别

Jerry Wang

通讯协议 通讯 三周年连更

云BI产品瓴羊Quick BI,为企业数字化转型保驾护航

巷子

什么是文件传输,介绍文件传输的发展进程

镭速

一个有趣的图片加载效果

南城FE

CSS 前端 动画 图片

UDP报头是通过结构体位段实现的吗

linux大本营

网络协议 udp UDP协议

eBPF的发展演进---从石器时代到成为神(三)

统信软件

操作系统 Linux内核

重磅!阿里云云原生合作伙伴计划全新升级:加码核心权益,与伙伴共赢新未来

阿里巴巴云原生

阿里云 云原生 生态合作

什么是Java 异常?如何处理异常?

Java架构历程

Java 三周年连更

CMMI环境下,该如何实施Agile?_研发效能_乔梁_InfoQ精选文章