【过程改进】关于软件过程改进的论述【转】

上一篇 / 下一篇  2011-09-19 11:26:47 / 个人分类:过程改进

“阻碍企业发展的瓶颈问题通常不是技术问题,而是杂乱无章的管理。”林锐老师的理论体系中,看到这句话和有关于在企业中进行过程改进的论述,颇有启发。在此也根据林锐老师的论述对软件过程改进的问题加以突出强调。

  1、提高软件过程能力的实践

  现公司管理软件过程的能力比较弱,常常导致项目处于混乱状态。过程混乱,即便是使用最新的技术和工具,其优势难以体现。

  软件过程改进是软件工程学的一个主要研究方向,其中CMM/CMMI是该领域举世瞩目的重大成果。

  CMM/CMMI是世界范围内用于衡量软件过程能力的标准。但是人们往往搞不清楚“软件过程改进”和“CMMI等级评估”之间的关系,经常混为一谈。软件过程改进其真正的目的是提高公司的软件过程能力,而不是为了达到CMMI某个等级标准。就打个比方:

  把“软件过程改进”比喻为“学英语,提高英语能力”,那么“CMM/CMMI等级评估”就好比是“英语等级考试”。一般情况下,英语等级考试的成绩反映了英语能力。但是大多数情况下,英语考试成绩很好的并不见得英语能力就很好,可能是“哑巴英语”的程度极高。这种“特性”传染到软件领域:不少企业虽然通过了高级别的CMM/CMMI等级评估,但是其实际的软件过程能力却未必很高。

  那么到底CMM/CMMI到底是什么呢?

  CMM/CMMI是世界范围内用于衡量软件过程能力的标准,但是CMM/CMMI不是软件过程改进的执行标准,不可能存在适合所有企业的执行标准。

  就像“英语**考试”是所有中国大学都认同的评估大学生英语能力的标准,但是“英语**考试大纲”绝对不是“学好英语的标准”。

  所以,我们不能把CMM/CMMI直接作为公司的软件过程规范,主要原因是:

  CMM/CMMI内容之广,之深。其论述了数十个过程域和数百条关键实践,但是这些“过程域和实践”不能与“企业的具体业务和组织结构”很好的衔接起来。

  有些企业死搬硬套CMM/CMMI标准,甚至按照CMM/CMMI逐个执行其中的过程域和实践,这种方式看来可笑:就如同给一个病人治病一样,还没有考虑病人到底需要吃什么药,就把药店里的药逐个吃一遍,就以为能治好病了。

  那究竟该如何应用CMM\CMMI呢?

  根据公司的实际情况,既要裁剪CMM/CMMI中的一些过程域和实践,又要补充CMM/CMMI中没有涉及的过程域和实践。公司领导和软件过程改进人员必须要明白:公司需要的是一个既符合商业目标,又容易执行的软件过程规范。

  裁剪:要分析企业的业务特征,根据自身的人力和财力,选取CMMI中一些重要的东西,舍弃一些不重要的东西。至于什么是“重要的东西”,就要看它对公司的作用多大来衡量了。

  补充:比如,CMM/CMMI对于软件开发和管理过程的论述很深,但却没有涉及“商务过程”,例如没有谈及立项管理、售前服务、售后服务等。这是CMM/CMMI的不足之处。因为企业开发产品的最终目的是把产品给卖出去,赚取利润。如果软件过程规范中不考虑这些因素的话,就会导致开发团队“闭门造车”,从而开发出“在技术上是很好的产品,但却是商业上的失败产品”。

  2、对软件过程改进的建议

  A)各级领导必须“亲自参与”,不能“口头支持”

  过程改进不是“办家家”,是需要投入很大的人力和物力去做的。软件研发管理过程中所涉及的人员都应该熟悉过程规范,并掌握其技能。公司中存在这样的现象:当给企业员工培训过程规范的时候,各级经理、领导总是有各种理由不参加培训。而真正在项目中执行新的过程规范时候,各级经理自己却不懂过程规范,仍然按照他以前的方式进行管理,让下属不知该信哪个的,该听哪个的。

  各级领导的主要职责是“带领团队完成预定目标”,他们要“亲自参与”过程改进,才能深刻体会过程的要点,掌握研发管理的方法技能。“亲自参与”体现在:参与分析问题,商议改进对策;参与制定和自己工作相关的过程规范;参与评审;参加培训学习等等。

B)制定的过程规范不求“全面”,只求“合适、实用”

  凡事从事过程改进的人员,他们都总是希望制定出一套“大而全”的过程规范,能够覆盖企业中的所有事务。

  也许就因为我们一心想追求“大而全”的过程规范走了很大的弯路而浑然不知,之后大家可能就会发现,缺乏经验只是一个原因,而贪大求全才是最大的错误。站在使用者角度想,过厚的过程规范,看都看晕了,更不用说要去很好地执行了!

  C)不能过度的迷信所谓的标准

  对于CMM/CMMI、PMBOK、ISO9000等标准只能用来参考,而不能过度的“迷信”于它。而现在公司为了业务的拓展,出现了这样的现象:当我们对CMM/CMMI过度崇拜以后,我们的思想意识也就不知不觉地被CMM/CMMI控制了。而且存在此类现象的不只我们公司,大多数国内软件企业都可能存在。再加上“谬论被多数人认同后也就成了真理”的言论,从而使公司的目标导向发生了轨道偏移。个人觉得那是十分危险的。

  公司为了评CMM\CMMI的更高等级,甚至把CMM\CMMI看成是“佛经”,不惜照搬CMM\CMMI来操作,根本不考虑在本公司执行该过程是否合理。

  D)推行新过程的方式必须是引导,而非强制

  我国自古就有“上有政策,下有对策”的说法。所以,我们在推广过程规范时不仅要预防员工们对此应付了事,还要引导员工们正确地做事情。

  制定过程规范是为了帮助大家把工作做得更好,而不是存心与大家过不去。以下是几点对“引导推行”新过程规范的建议:

  (一)解释规范

  过程改进人员不要只是天天埋头拼命写过程规范文档,写完了上缴就了事。应该充分的把公司的内部网站利用起来,在其中设立一个专门解释过程规范的专栏,加大对新过程规范的宣传。过程规范不是数学公式——只要能背下来就行了,关键还是在于理解与合理的运用。如果不对过程规范加以解释,员工们怎么能够懂“为什么要学习和执行新过程规范?”,如果不懂“为什么”怎么能够很好地执行呢?

  现在,公司就存在这样的现象:项目部时不时的对公司的员工进行项目培训,但几乎每次培训都没有在公司的实际工作中落到实处。在通知培训时,管理者们总是以“公务繁忙,项目众多”为由不参与或是中途逃跑;部门员工们也有类似于“赶项目进度”的理由而不参加或是中途离开。而坚持参加完培训的人员,也是似懂非懂,项目培训也几乎没有怎么落实到实际工作中去。我敢说,在公司上下,没有几个人能很好的把公司的项目研发管理体系说清楚的,就更不用说去很好的执行了。

  公司有一部分条款也可能用了“必须”的语气。有些内容可能会损害一些人的利益,但为了统一大局,又不得不做。如果过程改进人员不对此加以清楚的解释,可能会导致一些本来可以避免的埋怨或争议。

  对新的过程规范作进一步的解释会带来一些间接性的好处:不合理之处会很快被发现并提出(因为解释不通嘛)。

  (二)培训和考核

  要对公司全员进行新过程规范的培训与考核,使公司中的每个人都熟悉与自己工作相关的过程规范。只有全员参与,才能够使团队发挥最大的力量。

  而公司里的各级经理,领导总是派下属去参加培训,而自己则以工作繁忙为理由而逃避枯燥乏味的培训。如果这样下去,将可能导致的结果是:所有直接在“前线”干活的人都参加培训和考试了,就唯独几个管理者成了“漏网之鱼”。最终,“虾兵蟹将们”至少都知道在哪里可以下载到新过程规范,而且知道规范里讲些什么东西了。但是那几个“当官的”却知之甚少或是乱七八糟,依旧我行我素,照旧行事,那反到成了新过程规范执行中的“破坏者”——带头起了破坏作用了。所以上面说到,领导亲自参与培训和考核要比口头支持作用来的大。

(三)QA人员应该监督新过程规范的实施

  人都难免存在惰性,如果没有人来监督员工们按照新过程规范来做事,那么自觉性较差的人就可能会回到以前老的做事习惯上。

  CMMI中把质量保证称为“过程与产品质量保证”。而其QA人员的职责就是要定期地检查项目成员的“工作过程以及工作成果”是否符合既定的过程规范,来**和改进“过程质量和产品质量”。

  就比如:几乎所有的人都明白基本的交通法规,但是明知故犯的人也有不少,所以还需要很多交通警察来进行监管。而在IT研发中,质量保证人员就是充当交通警察的角色。

  E)定义好过程规范中所需的文档

  在公司里推行CMM\CMMI标准后,一般就会要求开发团队写不少文档。因为在CMM\CMMI等级评定中,有这样的规定:

  如果公司实现了过程文档化,就可以达到CMM2级水平。

  如果公司实现了对过程的文档有文档记录和管理的,就可以达到CMM3级水平。……

  在公司里,高层管理者可能存在这样的感受,在推广新的软件过程规范时,员工们总抱怨 “要写的文档太多了,都没有时间”!甚至还有人把进度延误归罪于写文档上。

  大家抱怨“文档太多了”,估计是因为:

  (一)过程规范可能太臃肿,规定了太多不必要的文档,如果是这样,那就应该对过程规范做进一步的精简,删除一些不必要的文档。

  (二)过程规范所要求的文档本身是适量的,可能是由于以前写的文档太少,一下子还很难适应写文档的习惯。

  在新的过程规范中,应尽量想办法将写文档的难度降低,以提高写文档的效率。一要下功夫制定出好而精的文档模板,并给出充足的提示和示例。让使用者 “依葫芦画瓢”,总比他自己在那儿瞎想“该怎样写”要方便得多吧。二要鼓励开发人员经常写文档,才会熟能生巧,以提高其写作能力。

  3、软件过程改进的实施方案

  第一、调查收集问题,并进行分析。过程改进人员调查企业中与开发、管理、销售、维护/服务等相关的工作人员,分析其反馈重要的问题及其共性问题,收集提出者和上级领导的意见,并共同分析、协商解决其问题的对策。

  第二、优化组织结构以及岗位职责。过程改进人员根据调查结果,优化公司组织结构和岗位职责,甚至涉及到重要岗位的人员调整和职权调整。

  第三、优化,并制定新的过程规范。过程改进人员帮助公司优化和制定软件研发管理的新过程规范,一般涉及到商务、项目管理、项目开发和相关支持等过程域。(这一步主要参照于IBM公司制定的集成化研发过程——IDP)

  第四、整理和部署配套的管理软件。公司应尽量整理和部署与过程规范配套的管理软件,比如:配置管理工具(SVN)、缺陷跟踪工具(Jira)、任务管理工具(My Project)等等。(这一步主要参照于上海漫索公司制定的集成化研发管理——RDM)

  第五、对全员进行培训和指导。过程改进人员为企业员工提供充分且必要的培训和指导,让员工理解新的过程规范,并掌握其技能。

  第六、引导对新过程规范的执行。全体人员根据新的过程规范开展工作,过程改进负责人和QA监督执行情况,并记录问题。然后再周期性地改进过程。


TAG:

 

评分:0

我来说两句

mandy.wang

mandy.wang

本人在质量保证、流程改进及项目管理方面有丰富的经验,欢迎交流。

日历

« 2024-05-17  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 181285
  • 日志数: 109
  • 建立时间: 2011-09-19
  • 更新时间: 2016-01-20

RSS订阅

Open Toolbar