CMMI 与敏捷 DevOps

2024-06-02 18:18
文章标签 devops 敏捷 cmmi

本文主要是介绍CMMI 与敏捷 DevOps,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前几天一位杭州总监级朋友说,最近Devops很火,给我发了一篇《CMMI 和 DevOps新旧时代的图腾辨识》微信文章。

 

我从事CMMI的评估、培训已经10多年,过去5年也开始学习敏捷—— PMI的 Agile Certified Practitioner (ACP), 也教过两三年的ACP课。

 

我看完这篇微信文章的第一感觉是: 从事CMMI的人真要自我反省,在市场的宣传、培训方面做得不好,导致很多人对CMMI有误解。

 

虽然我对DevOps不是很熟悉,但了解它是因为敏捷开发使得越来越多团队在用,触发需要有一系列的自动化工具(DevOps Tool Chain),使集成与发布可以更快速、更自动。(也有一些CMMI客户开始使用这些自动化工具)。

 

常见误解

 

学生问:"如果我们用敏捷做项目,是否就不适合用CMMI来评估?因为CMMI好像需要填写很多文档,而敏捷却鼓励尽量少文档。”

 

我回应说:“恰恰相反。4年前,CMMI研究院发布了一个调查,在使用CMMI模型来评估的公司中,有超过70%是有使用敏捷,说明敏捷项目在使用CMMI的公司中很常见,不会不合适。为什么很多人误解CMMI是等同于填写大量文档?原因之一是,很多公司缺乏信息化系统,为了准备CMMI所需要的证据,没办法,只可以依赖填一些模板来实现要求,如果公司使用敏捷+DevOps ,用大量的自动化集成工具,对应很多 CMMI实践 (practices) 可以直接从工具上的报告截图,来满足CMMI的要求。”

 

比如很多公司用JENKINS来做自动化集成,就不需要填很多集成测试报告来满足CMMI的产品集成(PI Product Integration) 部分,这些工具也可以帮助定义集成的进入条件—— 自动跑对应单元测试,比手工跑好得多。

 

很多人把CMMI等同于传统的瀑布性开发。

 

我们在美国十几年前参加CMMI培训时,老师都会以3种的场景教我们CMMI的实践,包括军方要求 (最严谨),整个工作任务分解 (WBS Work Breakdown Structure)便要做得很细,另外一边是敏捷的场景,(当时敏捷已经有十多年二十年历史)以工作任务分解为例,可能很简单在白板上写下、拍照,也可以达到工作任务分解的目的,所以我们常说CMMI只是把最常用、最通用的抽出,什么情况用什么方法,依据的事特定的场景需要,所以千万不要以为CMMI是个过程、流程,有个CMMI过程。

 

很多做软件开发的都对敏捷有兴趣,所以在我们的 CMMI V2.0 解读系列中,每一篇都会包括敏捷的章节,如果在敏捷场景如何解读CMMI实践的要求。

 

教CMMI时,学生问:“是否可以拿CMMI模型书回去当公司的过程吗?”

我说不可以,因为它只是个面面俱全的框架,不是某个特定过程,只是公司可以依据实际情况,利用模型制定过程,评审公司的过程是否漏掉了一些必备的元素。

 

还有很多人误解CMMI局限在研发、软件工程,虽然CMMI源自针对软件工程的改进,因为开始的时候,很多软件过程做得不好,导致超支,甚至被取消,所以开始发展出这个模型来帮软件公司进行改善,当时叫CMM,后来发现发现很多成熟度模型的原则可以通用,便扩大到系统工程、硬件上便是现在的CMMI。

 

相反的是,很多敏捷的方式都是集中在项目级,缺乏从项目级扩大到公司级的做法,它不像CMMI从一开始就有公司级的概念,可按照不同的项目需要定义过程的裁剪。

 

另外一个对敏捷的误解:

因为敏捷很多人在用,很多管理者以为敏捷就是一个万用的良药,什么都能帮上。在有效项目管理一书中(是ACP 的参考书) , 作者便详细列出什么样的项目适合什么样的方法 - 从传统(Traditional) 到 敏捷(Agile) 到极限(Extreme)。(详见附件)

 

当我做敏捷培训时,会多次强调不是所有项目都适用敏捷:

1. 需要一个很有能力的团队——成员要面面俱全,能够兼顾很多方面,才能给客户更多的价值,反之,如果成员是刚毕业、没经验,没有规范可循,反而一团糟,这就是有些团队推敏捷几个月就告吹的原因。

2. 客户需要频繁参与整个开发。为什么团队可以有价值,在每个冲刺后,一直收到产品经理、业务部的反馈,如果没有这样,就达不到预计效果。

3. (与所有过程改进的必要条件一样)需要领导的支持 ——领导要有让团队发挥自己最大力量的胸怀,给他们独立空间,尽量支持团队做好,发挥最大效果,而不是家长式管理。

 

 

解读文中的一些误解

 

1、

原文: ......CMMI与DevOps是在不同的历史条件和技术背景下产生的,代表两种不同的开发文化,当然CMMI经历几十年的发展,被IT企业广泛接收并广泛应用。CMMI其实ISO标准一脉相承,其本质是软件管理工程的一个部分......

 

解读: CMMI 与 ISO (9000)的主要共同点是•过程改进,CMMI( CMM) 是最早源自软件工程的过程改进,但 ISO是为通用各行业设计 (后面再细分到个别行业,例如汽车、IT等)

 

2、

原文: CMMI...其核心是软件过程改进,指导思想是:依赖一个严谨的过程标准管理体系,并能有效执行与过程控制,才能保证可持续地交付合格产品,且整个过程可重复、可度量、可审计。因此,CMMI的关注的重点是:软件过程改进,提升软件质量......

 

解读: 误解CMMI是一套过程标准管理 - 不对。 它是一个框架,所以才可以都不同的项目需要,配上不同的过程 例如: 需求不明确的项目应用敏捷 管理; 需求明确的合同项目采用传统瀑布式

 

3、

原文: 2000年左右,软件行业的主要工作是交付客户定制的软件应用,而软件研发团队被推荐使用像 CMM/CMMI、RUP 这样的大型方法论来组织生产,这些大型方法论效果并不理想,一方面甲乙双方在需求变更上的扯皮不是影响交付日期就是交付后的产品不能真正解决客户的问题,另一方面研发团队又需要花费大量精力在准备流程需要的文档上面。人们越来越意识到传统意义上的开发与运维之间存在脱节现象,从而导致冲突和低效,于是 DevOps 应运而生。

 

解读: 作者可能把 DevOps 与 敏捷 (Agile) 混淆了。 因 DevOps 一词 是 2009才出来 (源自比利时一次以DevOpsDays 为名的会议) 以上说的应是 2000 Agile Manifesto (在美国犹他州盐湖城)的背景。

 

4、

原文: CMMI更多的是软件工程管理框架,核心过程域包括:组织管理、项目管理、工程管理和支持管理过程,研发过程管理只是工程管理中的一部分。

 

解读: 对CMMI理解有误,研发过程管理不只是工程管理中的一部分。 例如,支持里的配置管理也是每个研发过程管理 必备的一部分。

 

5、

原文: 但企业实践中还是以传统为主,特别是对针对于规模化复杂业务、中后台系统、对质量要求高(缺陷零容忍)的核心系统、账务类系统的开发,质量的重要性远高于效率,主要以CMMI体系的强管控为主。 DevOps成长在敏捷文化之下,其应用场景以敏态为主。

 

解读: 很多人还是把 CMMI等同与传统瀑布式开发,这点 CMMI几年前(还是SEI时代)已经说明 – CMMI是一个模型 框架 ,包括敏捷 / 或传统瀑布式,按项目需要。

 

6

原文: DevOps模式下,更需要的是全能型团队,需求的是能力互补的T型人才,有助于生产协作。

解读: 这也是一般敏捷团队的要求,却正是这原因,不是每一个团队都合适

用敏捷。

 

 

Reference 参考:

Reference: SEI 文章 "CMMI vs Agile – why embrace both"

Wysocki, Effective Project Management - Traditional, Agile, Extreme

也欢迎联系我们来获得相关资料。

 

联系我们

电话:18921395967

QQ:1228021190

微信:processis2009

地址:香港/北京/江苏

官网:www.processis.org

 

 

这篇关于CMMI 与敏捷 DevOps的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024724

相关文章

Prometheus与Grafana在DevOps中的应用与最佳实践

Prometheus 与 Grafana 在 DevOps 中的应用与最佳实践 随着 DevOps 文化和实践的普及,监控和可视化工具已成为 DevOps 工具链中不可或缺的部分。Prometheus 和 Grafana 是其中最受欢迎的开源监控解决方案之一,它们的结合能够为系统和应用程序提供全面的监控、告警和可视化展示。本篇文章将详细探讨 Prometheus 和 Grafana 在 DevO

PMP–一、二、三模–分类–14.敏捷–技巧–看板面板与燃尽图燃起图

文章目录 技巧一模14.敏捷--方法--看板(类似卡片)1、 [单选] 根据项目的特点,项目经理建议选择一种敏捷方法,该方法限制团队成员在任何给定时间执行的任务数。此方法还允许团队提高工作过程中问题和瓶颈的可见性。项目经理建议采用以下哪种方法? 易错14.敏捷--精益、敏捷、看板(类似卡片)--敏捷、精益和看板方法共同的重点在于交付价值、尊重人、减少浪费、透明化、适应变更以及持续改善等方面。

颠覆你的开发模式:敏捷思维带来的无限可能

敏捷软件开发作为现代软件工程的重要方法论,强调快速响应变化和持续交付价值。通过灵活的开发模式和高效的团队协作,敏捷方法在应对动态变化和不确定性方面表现出色。本文将结合学习和分析,探讨系统变化对敏捷开发的影响、业务与技术的对齐以及敏捷方法如何在产品开发过程中处理持续变化和迭代。 系统变化对敏捷软件开发的影响 在敏捷软件开发中,系统变化的管理至关重要。系统变化可以是需求的改变、技术的升级、

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上

文章目录 1. 添加树莓派到 Agent Pool1.1 添加pool1.2 添加agent 2. 将树莓派添加到 Deployment Pool2.1 添加pool2.2 添加target 3. 添加编译流水线3.1 添加编译命令3.2 配置触发器 4. 添加发布流水线4.1 添加命令行4.2 配置artifact和触发器 5. 完成 1. 添加树莓派到 Agent Pool

PMP–一、二、三模–分类–14.敏捷–技巧–帮助团队交付价值的执行实践迭代和增量如何帮助交付工作产品

文章目录 技巧一模14.敏捷--实践--帮助团队交付价值的执行实践--持续集成--在不同层面测试、验收测试驱动开发 (ATDD) 、测试驱动开发和行为驱动开发、刺探 。90、 [单选] 敏捷项目的第一次迭代即将开始。发起人召集团队、Scrum主管、产品负责人和其他项目干系人参加启动会议。发起人强调需要在项目尽可能早的时候以最小的成本识别和应对项目风险。与会者实现发起人要求的最佳方式是什么?

k8s集群本地搭建,使用gitlab、harbor、jenkens、cicd来实现devops自动化构建

k8s集群本地搭建 准备:一台windows即可我windows内存是32gb的,6核,每核2线程全程使用终端 ssh命令操作.我是直接用的mac点操作windows,然后windows连接虚拟机即可.虚拟机记得改网卡,这样才能保证以后ip不变.介绍:k8s集群本地搭建(1master、2node)k8x运用devops来自动化构建服务(gitlab、harbor、jenkens、cicd)简介

PMP–一、二、三模–分类–14.敏捷–技巧–故事点

文章目录 技巧一模14.敏捷--术语表-自组织团队--自组织团队是一种跨职能团队,其中为实现团队目标团队成员根据需要轮换着发挥领导作用。 自组织团队的核心就是做什么事情,团队成员说了算。61、 [单选] 作为估算活动持续时间过程的一部分,项目经理促成了与产品负责人和Scrum团队的冲刺计划会议。项目经理将用户故事分解为较小的任务项,以小时为单位估算所需时间,并根据团队的能力确定冲刺待办事项列

k8s上搭建devops环境

一、gitlab 1.安装gitlab # 下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm # 安装 rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm # 编辑 vi /etc/gitlab/

【数据产品案例】有赞大数据实践- 敏捷型数据仓库的构建及其应用

案例来源:@洪斌 案例地址: https://tech.youzan.com/you-zan-big-data-practice/ 1. 数据仓库处理:近源数据层→数据宽表→基础指标表 1)近源数据层:封装中间层,实现: a. 合并不同业务数据,如pc和app的日志数据 b. 脏数据屏蔽 c. 冗余字段合并 2)数据宽表:提取足够