打小儿爱听相声,特别偏好侯宝林大师的段子,尤其是很多和京戏相关的。大师扎实的科班功底,把老北京的雅俗两大艺术完美的结合在一起,其代表作《关公战秦琼》更是以极高的艺术技巧,强烈的幽默感,给听众留下极为美好的印象。话说韩复榘给他爸爸做寿,堂会点了‘千里走单骑’,可是这位“寿星老”不愿意听红净戏,非说关羽关云长是山西阎锡山的队伍;想知道是关公的本事大?是山东好汉秦琼秦叔宝的本事大?也不论关公是汉朝的,秦琼是唐朝的,就点了一出‘关公战秦琼’。
引起我儿时记忆的,是11月21日参与的一次非常有趣的过程改进研讨活动,CSSPI2009第八届中国系统与软件过程改进年会中的一个精彩环节——CMMI &敏捷PK赛——金融危机之后,在危与机并存的背景下,软件工程理论体系的两大流派CMMI和敏捷急需得以反思;CMMI在引入中国之后,在软件过程领域产生了深远而长久的影响,改变了整整一代致力于IT行业发展的有识之士的思维,同时也得到了政府的大力推进;敏捷在CMMI引入中国之后,逐渐地走入人们,尤其是开发人员的视野。为了厘清CMMI以及敏捷之后的林林总总,CSSPI2009特地邀请了在两方面颇有建树的专家进行一次面对面的碰撞。
当天的活动气氛热烈,主持人妙语连珠,激辩双方唇枪舌剑,甚至是台上辩手、亲友团与台下观众“群殴”。既有郑人杰老师这样的老专家的认真点评,也有初出茅庐的程序员的热情参与,包括Moto公司内部CMMI执行部门与敏捷实践者之间的内部PK。不过,透过热闹的表象,抛开精彩的主持表现,“敏捷PK CMMI:软件工程的关公战秦琼”,这个命题却越来越清晰的浮现在脑海。
作为候补的SCAMPI主任评估师,自2002年接触CMM模型以来,逐步积累对CMM/CMMI体系的深入认识,尤其是今年来参与的多次SEI主持的培训和考试,让我对CMMI模型有了更深刻的理解。作为美国DoD资助的科研机构,SEI推出CMMI模型的本意就是提高美国军方采购供应商的软件研发能力和成熟度,其立意就是要“集成”全球软件工程领域的最佳实践,这一点在CMMI模型的序言中,开篇第一句就进行了描述: CMMI (Capability Maturity Model Integration) is a process improvement maturity model for the development of products and services. It consists of best practices that address development and maintenance activities that cover the product lifecycle from conception through delivery and maintenance. 所以,对待二十世纪九十年代逐步萌芽的敏捷方法,SEI一向是采取“拥抱变化”的开放心态给与关注。
在SEI的官方网站上,自2006年以来,每年都有相关敏捷方法的研究成果:
其中,SEI08年发布的报告——“CMMI或Agile:为何不能彼此相拥!”,提出了在软件开发项目中如何将CMMI和Agile的理念及实践相结合的课题。
让我们重温一下《敏捷宣言》
- 个体与交互 重于 过程和工具
- 可用的软件 重于 完备的文档
-
客户协作 重于 合同谈判
-
响应变化 重于 遵循计划
《敏捷宣言》背后的12条准则:
1. 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
2. 欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
3. 要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
4. 项目过程中,业务人员与开发人员必须在一起工作。
5. 要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
6. 无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
7. 可用的软件是衡量进度的主要指标。
8. 敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
9. 对技术的精益求精以及对设计的不断完善将提升敏捷性。
10. 要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
11. 最佳的架构、需求和设计出自于自组织的团队。
12. 团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
一个简单的比喻,《敏捷宣言》中无处不散发着程序员“反抗”既有软件工程体系对他们的“管理”或“压迫”。即使在软件工程已有的方法论、工具和人的三角理论中,既有的方法论似乎更多的是将程序员“臆想”为懒惰、自由散漫和没有责任心的角色,却没有想到真的该探索焕发程序员积极进取的无比创作力会给组织带来多么光明的前景。最简单的道理,作为软件企业的老总,想想手下有几个合格的PM或QA?他们的觉醒和企业里全体程序员、测试员的觉醒,哪个将决定公司的命运?只有质量意识和服务意识真的深入员工的每天的工作中,才有可能保证企业的持续改进。因此,敏捷方法的引入,绝对不是培养几个ScrumMaster或者引入个开源工具这么简单是事情。敏捷的生命力就在于它广阔的“群众”基础和无限的“群众”智慧。
起来,饥寒交迫的程序员;
起来,全世界受苦的IT人!
满腔的热血已经沸腾,要为敏捷而斗争,
旧世界打个落花流水,程序员起来起来,
不要说我们一无所有,我们要做天下的主人!
这是最后的斗争,团结起来到明天——A-G-I-L-E,就一定要实现!
止于至善的博客 http://tyou1215.csai.cn/
分享到:
相关推荐
大师扎实的科班功底,把老北京的雅俗两大艺术完美的结合在一起,其代表作《关公战秦琼》更是以极高的艺术技巧,强烈的幽默感,给听众留下极为美好的印象。话说韩复榘给他爸爸做寿,堂会点了‘千里走单骑’,可是这位...
CMMI.敏捷整合开发:更快改进性能的案例与实用技术].Paul.E.McMahon.扫描版
"CMMI 3.0 软件工程规范文档" CMMI 3.0 软件工程规范文档是Capability Maturity Model Integration(CMMI)的一个最新版本,旨在帮助组织建立和改进软件工程过程。CMMI 3.0 包含了五个级别,分别是初始级、已管理级...
基于CMMI的软件工程及实训指导.xmind
在“超详细软件开发完整过程规范CMMI改进软件工程文档”中,我们可以找到关于以下几个核心知识点的详尽指南: 1. **过程域(Process Areas,PA)**:CMMI将软件开发过程划分为若干关键过程域,每个过程域都有一套...
【基于CMMI的软件工程】是软件开发领域中一种重要的过程改进框架,旨在提高软件组织的成熟度和过程能力。CMMI(Capability Maturity Model Integration,能力成熟度模型集成)通过一系列过程域(Process Areas)来...
"基于CMMI的软件工程讲义" 本讲义主要介绍了基于CMMI的软件工程项目评审管理,涵盖了项目评审的重要性、项目评审的类型、评审管理活动、评审计划的确定、评审过程的实施等方面的知识点。 一、项目评审的重要性 ...
《超详细软件开发完整过程规范CMMI改进软件工程文档项目管理》 在软件开发行业中,规范和标准的制定对于确保项目的顺利进行至关重要。CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是一种...
CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是一个用于提升机构在软件开发、系统工程和采购等过程管理领域表现的框架。CMMI的开发由卡内基梅隆大学软件工程研究所(SEI)主导,旨在通过集成...
本资料"ZL0004整套详细软件开发完整过程规范CMMI改进软件工程文档项目管理必需.zip"深入探讨了这一主题,旨在为软件开发团队提供全面的指导。 首先,软件开发规范是一种标准化的操作流程,它定义了从需求分析、设计...
CMMI提供了流程改进的指导,指导制定软件企业研发的的一系列流程,监督流程的执行,并据反馈的结果进行过程改进。 4.CMM共有五个等级,分别标志着软件企业能力成熟度的五个层次。 初始级 Initial 可重复级...
在本章“第4章:软件工程”中,我们将深入探讨软件开发的系统化方法,这是信息技术领域不可或缺的一部分。软件工程是一门综合性的学科,它结合了计算机科学、工程实践、项目管理以及人机交互等多个领域的知识,旨在...
为了统一和简化这些模型,SEI最终开发了**CMMI**(Capability Maturity Model Integration),这是一个综合性的框架,能够涵盖软件工程、系统工程、集成产品开发等多个领域的最佳实践。 #### 五、PSP的行业结果 ...
《软件境界的升华:软件工程思想》是一本深入探讨软件开发本质和理论的书籍,它旨在引导读者理解和应用软件工程的精髓,以提升软件开发的效率、质量和可维护性。软件工程并不仅仅是编写代码,而是一种系统化、规范化...
《软件工程》是计算机科学与技术专业的一门核心课程,主要探讨如何系统地、有组织地进行软件开发,以及如何确保软件的质量、可维护性和效率。本课件为"高教类课件:软件工程 第2套",适用于高等教育阶段的学生学习,...
软件工程实践(11)CMM&CMMI
【软件工程概述】 软件工程是一门综合性的学科,它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护等阶段。这门课程是高等教育中的关键科目,旨在培养学生具备系统化、规范化的软件开发能力,...
CMMI:软件能力成熟度; CMMI 是: 一个包含了产品与服务开发、维护最佳实践的模型 一个描述有效过程应包含的关键组成元素的框架 一个从杂乱、不成熟的活动向成熟、规范的过程演进的指南 一个评估当前实践的标尺