1。CMM3下的应用及改进

近2~3年来,软件能力成熟度模型在中国得到了广泛的重视,也进行了一些实践,但是总体效果并不令人满意,一些已经通过了CMM评估的企业的情况并没有得到应有的改变,其中的原因,让人深思。这其中固然有一部分守旧的软件开发和管理人员对于先进管理模式的排斥。但是,更多情况下,是CMM的实施者不了解这个变革的艰巨性和复杂性,忽视了对CMM实施至关重要的一些方面。如通过cmm的评估级别就认为自己企业已经达到cmm的标准,而忽视了软件开发过程是一个要不断改进完善的过程。本文的目的就是对已经基于cmm的模型进行分析,针对实际中存在的问题,并提出相应的解决办法,以提升企业的开发管理水平。
2。Cmm实例职责划分
实例:u公司是一家从事ERP通用软件开发的企业。它为了实现cmm3,将所有涉及到的关键过程域划分为四个组:工程组、支持组、过程管理组、项目管理组.
工程组
需求管理 RM
软件产品工程 SPE
组间协作 IC
同级评审 PR
支持组
软件配置管理 SCM
培训程序 TP
过程管理组
组织过程焦点 OPF
组织过程定义 OPD
软件质量保证 SQA
项目管理组
软件项目计划 SPP
软件项目跟踪和监控 SPTO
集成软件管理 ISM
3.CMM应用存在问题
cmm3可以在一定层次上对开发过程进行指导,但它毕竟只是一个承上启下的中间级。它本身还不是最完善的,企业在实际的用中也确实存在着许多问题:
3.1工程组问题:
目前u公司基本按照cmm3的标准实现。可以通过通用的产品定义,概要需求,详细需求,来规范软件工程的开发标准,并通过开发过程的各阶段来保证需求的一致性。但目前存在的问题主要是:
1.              人员素质良莠不齐。需求定义不具有前瞻性,受市场被动驱使的情况比较明显。需求定义与实际有一定差异,实现后就折扣更大。需求定义到代码设计之间流转僵硬,设计模式落后。
2.              组间协作计划,广泛应用在实际的开发过程中,往往受到不同组织间的工期差异影响,导致组间工作延期。
3.              开发组间,公共平台组的工作滞后较明显,导致产品组工作进度受到影响导致延期。
4.              测试人员素质与数量不足,导致软件质量不高
5.              同行审批有时不够严谨,参与评审人员不足,有走过场之嫌。受开发进度影响,部分重要同级部门,不能参与同级审批导致评审质量下降。
3.2支持组问题:
支持组主要负责软件配置管理 SCM和培训程序 TP两部分,初步应用了自主开发的配置管理程序,并对软件开发的各环节进行了有效的控制。
1.配置管理对各开发过程的文档都已经基线化,目前问题是文档频繁出现变更,或修改的情况下,文档在配置管理程序下不能及时更新,导致文档滞后。
2.配置管理程序目前是一个自主开发程序,功能简单,不能充分地满足配置管理的需要
3.培训水平不高。新进人员对cmm的理解不够,不清楚关键点的功能与作用,使得cmm3的执行有所折扣。
4.技能培训主要以老员工传帮带为主,没有系统的知识传递。单测试质量,会因为原有产品测试人员离职而下降。
5.配置管理程序对代码的统一编译控制不好,会出现各组最新提交代码未进入新安装盘即(release 版)的情况,有时最新代码丢失的情况也时有发生。
3.3过程管理组问题:
过程管理组主要负责组织过程焦点 OPF、组织过程定义 OPD、软件质量保证 SQA三方面的内容,其内涵是对开发过程进行规划、改进和推动执行。
问题集中在:
1.缺乏对过程问题的协调机制。开发组之间是平行架构,一旦出现组间协作计划的问题,或非预料的影响开发过程的事件,不能迅速的解决纠纷。只能通过事件参与者的责任心来推动计划的完成,否则可能会导致问题不能解决,而成为隐患。
2.现有开发过程数据库,虽然已经有三年以上的数据包括开发计划、设计需求文档、测试缺陷管理等,但是并未依据此数据有效的改进开发过程,提高开发管理水平。
3.高层领导了解开发管理过程中一旦出现问题的严重性也乐意积极改进,但并未掌握有效的过程改进手段,而是以高压政策为主。缺乏真正理解开发管理的人才
3.4项目管理组问题:
项目管理组的工作内容包括软件项目计划、软件项目跟踪和监控集成软件管理。主要负责软件计划的制定,项目的跟踪与监控。
问题:
1.          软件项目计划受市场被迫驱动明显,计划没有前瞻性。往往先定下软件的发版日期后,才在此区间内分解开发各阶段计划,常常与实际有差距,造成部分计划延期。
2.          对项目结束后的跟踪没有持续性,往往是前一个项目出现的问题,在下一个项木中依然存在。不能对项目数据进行持续总结分析,找出规律,持续改进。监控软件风险有一定能力,但往往处于定性的认识。对于风险隐患不能自动报警。
4.过程改进的方向
因此,在cmm3的实践中,不能满足于自身的成果,而应该不断挖掘自身的问题,以cmm更高一级的标准要求自己,改进并提高软件过程的能力。这不仅是对自身用更高的目标要求自己,也是开发过程中不断完善自己的必由之路,而对自身的问题进行改造,我们首先要引入cmm4和cmm5级的关键点,在对组织中进行力所能及的改进。
等级4 上的关键过程区域的关注焦点是建立起对软件过程和正在构造的软件工作产的定量了解。正如以下所述,该等级上的两个关键过程区域——定量过程管理软件质量管理——是互相紧密依赖的:定量过程管理的目的是定量地控制软件项目的过程性能。软件过程性能表示遵循一个软件过程所得到的实际结果。焦点是在一个可测的稳定的过程范围内鉴别出变化的特殊原因,并且适当时改正那些促使瞬时变化出现的环境.定量过程管理给组织过程定义、集成软件管理、组间协调、和同行评审的实践附加一个内容丰富的测量计划。软件质量管理的目的是建立对项目的软件产品质量的定量了解和实现特定的质量目标。软件质量管理对软件产品工程中所描述的软件工作产品实施内谷丰富的测量计划。
等级5 上的关键过程区域包括那些为了实施连续不断的和可测的软件过程改进。组织和项目都必须解决的问题。下面列出等级5 的每个关键过程区域的描述。缺陷预防的目的是鉴别缺陷的原因并防止它们再次出现.正如在集成软件管理中所描述的,软件项目分析缺陷、鉴别其原因并更改项目定义软件过程。正如在过程复政管理中所描述的,应将具有普遍价值的过程更改通知给其它软件项目。技术改革管理的目的是识别出能获利的新技术(即工具、方法和过程),并以有序的方式将它引进到组织中去,正如在过程更改管理中所描述的那样。技术改革管理的关注焦点是在不断变化的环境里高效率地进行创新。过程更改管理的目的是出于改进软件质量、提高生产率和缩短产品开发周期的目的持续不断地改进组织中所采用的软件过程。过程更改管理既采用缺陷预防的增量式改进,又采用技术改革管理的创新式改进,并使得整个组织可以享用这些改进。
对于u公司的软件改造而言,期望其能一步就达到cmm4和cmm5的全部关键域是不现实的,它自身的能力与开发进度的紧迫性决定了它不能花费大量的时间在完全的cmm4与5的改造上。否则我们在这里就不是谈论基于cmm3的质量控制与持续改进,而是如何实施cmm4或cmm5级的标准。因此,我们改造的重点在于覆盖cmm4的主要内容,兼顾cmm5的与u公司密切相关的部分,即cmm4的软件质量管理和cmm5的缺陷预防与过程更改管理。此外,CMM虽然提供了一种有步骤且目标一致地改进软件产品的管理过程和工程过程的方案,但是它并不保证软件产品将成功地构造出来,或者保证恰当地解决全部软件
工程中的问题。对于实际cmm中出现的管理问题和与软件技术相关的问题,cmm并未涉及。因此,在cmm的应用中,除了改进cmm的过程之外,还应该从企业管理,和技术革新入手,使得企业的软件开发水平真正的得到提高。
  对于改进cmm3的开发过程,我们仍然通过工程组、支持组、过程管理组、项目管理组这四个角色来阐述所对应的内容。
4.2工程组改进办法
1.                            对于需求及产品原型设计应加大调查研究费用,设立原型用户,抽取典型需求,来贴近市场的需求。此外,还可以采用和高校联合研究的方式,充分利用广大高校的研究资源,开阔视野,使产品的设计更加有前瞻性。对于需求和设计脱节的问题,应广泛推广uml建模,采用oo的设计方法,使得开发更加灵活的适应需求的变化。同时qa人员,对需求的变化要及时的进行跟进,保证文档的一致性。
2.                            组间协调计划应相对独立于开发组内部开发任务,优先保证下游产品组的使用。对于多个组间的协作项目,应避免某个组开发计划延期导致其他相关组不能按期执行组间计划,必须要等待上游组完成的情况。处理办法如下,1.制定计划要有弹性,有上下游关系的组任务之间应有缓冲时间,避免因时间延期而停滞。对于开发中可能导致延期的计划,要重点监控,随时调整,或加大该计划的资源投入力度。保证计划按时完成。2.对于已经延期的项目应成立协调小组,积极推动延期计划的提早完成。
3.                            由于u公司是平台组与各产品开发组平行的结构,但是平台组又负责为各产品组提供各种功能控件的工作,开发计划又没有针对平台组特点相应的提前。开发计划制定时应将平台组任务提前,保证在平台组产品稳定的前提下,各产品组之间的开发任务再全面展开。同时,对于影响各开发组的功能,由各产品组提供原型产品进行验证,保证平台与各产品组的兼容性。
4.                            针对测试人员水平不高和数量不足的特点。对测试人员进一步的进行测试方法的培训,同时引入新的测试方法。如组内交叉验证,使用自动化测试工具,引入白盒测试工具,从代码级进行bug控制。对于人员不足的情况,则应以内部挖潜为主,提高测试效率。
5.                            针对同级评审重视度不够的情况,应加大对相关部门的参与评审的话语权,使它们本身遇到的问题可以对被评审人提出必须要处理的方案,同时被评审内容如相关部门评审意见不一致,该评审坚决不能通过。通过提升评审人员积极性,加大对被评审人的监督力度来实现,同级评审的有效性。
4.3支持组改进办法:
1.                          对于需求文档更新不及时的问题。可以通过软件和硬件两方面来解决。硬件:使用rational公司的clearcase来进行配置管理,提高文档管理的技术水平。同时在软件上:应从管理上控制需求变更的实时控制。对延期提交文档的人员加大惩罚力度,同时实行走查制度的有效监督。
2.                          针对培训水平不高的现状。尽快建立人力资源评测与培训体系。同时针对不同岗位的工作特点,建立相应的培训大纲。此外,应加大对基层骨干的cmm培训,保证在执行的关键点上,有清晰的执行力度。避免制度规则制定下来,因不能被执行人员正确理解,而导致执行出现偏差。
3.                          针对开发配置管理混乱,代码丢失的现象。加强对配置管理人员培训,提高人员素质。同时规范配置管理流程,指定固定的时间提交代码,编译编码。减少代码传递环节,代码编译管理在一处,提高编译质量
4.4过程管理组改进办法:
1.                          针对各开发组是平级管理的现状,专门成立关键问题推进小组,处理组间协调的问题,和非组内处理的时间。负责人应有充分的权威,直接向开发事业部最高领导负责,可以决定如何处理问题,或召集各组进行紧急会议,避免扯皮或平级间问题无法推动的现象。
2.                          对已存在的开发过程数据进行整理,总结每版产品的得失,持续推进开发过程的改进。应尽快对开发效率,软件质量,成本估计,计划风险预警结合已有开发过程数据进行定量与定性结合的分析。做到事前分析,事中控制的管理方式,为有针对性的解决开发过程中的问题,提供较为客观清晰的信息。为进一步建立开发人员的效绩评价体系提供可信的依据。
4.5开发管理组解决办法:
1.                          在解决开发管理组的问题时往往会遇到与过程管理组类似的问题,即如何更有效推进开发的执行,保证计划的按时完工,及内部的持续改进。对于开发计划的有效性,应建立一个科学的计划管理体系,保证计划的按时完成。同时应加强自身产品的前瞻性研究,避免因市场压迫而改变开发计划,逐步进入一个有序的开发过程。
2.                          对于项目间的持续跟进与总结,仍然要尽快对开发效率,软件质量,成本估计,计划风险预警结合已有开发过程数据进行定量与定性结合的分析体系。

CMM3下的应用及改进相关推荐

  1. 无可行解下Malmquist-Luenberger指数的改进

    无可行解下Malmquist-Luenberger指数的改进 前言 一.Malmquist-Luenberger指数是什么? 二.ML指数无可行解的原因分析 三.VRS条件下ML指数的改进模型 二.计 ...

  2. 特定场景下Yolo改进算法:Poly-Yolo

    论文名称:Poly-YOLO: higher speed, more precise detection and instance segmentation for YOLOv3 论文地址:https ...

  3. 《软件过程改进》练习题

    一.术语 软件生存周期 项目 里程碑 软件度量 功能点分析 工作分解结构(WBS) 软件质量 RMMM 计划(Risk Mitigation, Monitoring and Management Pl ...

  4. Hadoop的改进实验(中文分词词频统计及英文词频统计)(1/4)

    声明: 1)本文由我bitpeach原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Windows系统下的百度云(联网),和Ubuntu系统的hadoop1-2-1(自己提前配好).如不 ...

  5. .NET 5 中的正则引擎性能改进(翻译)

    前言 System.Text.RegularExpressions 命名空间已经在 .NET 中使用了多年,一直追溯到 .NET Framework 1.1.它在 .NET 实施本身的数百个位置中使用 ...

  6. 全面解读系统更新,收藏下这份 Android 12 (S) 版本适配自查表

    Android 12 是 2021 年 10 月发布的最新正式版本,然而很多同学表示还没有适配.针对开发者在进行版本适配过程中遇到的问题,我们建立了 GitHub · AndroidPlatformW ...

  7. Yolo-v3算法改进-Poly-Yolo-v3

    论文名称:Poly-YOLO: higher speed, more precise detection and instance segmentation for YOLOv3 论文地址:https ...

  8. 兄弟连 职业素质改进计划个人总结

    LAMP 兄弟连 职业素质改进计划个人总结 姓名:洪涛 年龄:23 班级:61期 组名:心情晒太阳 学历:本科在读 专业:网络工程 经过张晓光老师的职业素质课后,按要求做了职业素质改进计划,之后又经过 ...

  9. 关于RTKLIB中用多普勒检测周跳方法的改进和思考

    文章目录 RTKLIB中的周跳检测方法 多普勒积分检测周跳中存在的问题 对多普勒积分检测周跳方法的改进和思考 1. rtklibexplore的改进 2. 其他博主改进 参考文献 熟悉RTKLIB中周 ...

  10. CentOS下postgres怎么恢复数据库.bak文件_数据架构选型必读:4月数据库产品技术解析...

    本期要点 DB-Engines数据库排行榜 一.RDBMS MySQL发布8.0.20版本,5.6版本于2021年2月停止更新 DB2发布11.5.2版本,且看容器化是否可为DB2注入新活力 Post ...

最新文章

  1. 阿里面试题:分库分表无限扩容后的瓶颈以及解决方案
  2. Ubuntu16.04 LTS上安装Go1.10
  3. Leetcode No.145 **
  4. Java基础day24
  5. P8实战(二):分布式锁前置技能 etcd 集群搭建
  6. 傅里叶变换音频可视化_HTML5如何实现音频可视化频谱跳动
  7. linux下的ssh端口号修改,如何在 Linux 中更改 SSH 端口
  8. python基础-字典的增删改查
  9. Serf:Gossip Protocol
  10. maven的使用--初级篇
  11. python next permutation_C++ STL next_permutation的实现原理
  12. atitit.spring3 mvc url配置最佳实践
  13. 我的未来式计算机简谱,我的未来式简谱-爱情公寓歌曲-孙世彦曲谱
  14. es6之扩展运算符 三个点(...)
  15. 狼派CIY68客制化组装
  16. 三菱q系列plc 和电脑socket_三菱Q系列和WinCC以太网通讯的组态步骤
  17. outlook配置文件添加服务器,Microsoft Outlook卡在加载配置文件?这里如何解决它
  18. Re01:NerLTR-DTA: drug–target binding affinity prediction based on neighbor relationship and learning
  19. 关于Zoom连不了,明明别人可以连接,却提示会议号不存在
  20. linux磁盘挂载方式mount

热门文章

  1. Matlab - Matlab 2016a 安装破解教程
  2. linux镜像下载与安装
  3. 51单片机实现蜂鸣器播放天空之城
  4. 计算机组成第五章课后答案,计算机组成原理第五章答案.doc
  5. 学习总结-《父与子的编程之旅》chapter 17
  6. 三维点云数据处理软件供技术原理说明_三维点云数据处理软件
  7. 元宇宙里“倒腾狗”,预示“下一代互联网”要来了?
  8. 洛谷OJ - P1192 - 台阶问题(递推)
  9. 国内29家视觉企业及最新动态一览
  10. C#反编译工具ilspy下载地址