UML软件工程组织

从CMMI角度分析公司管理缺陷

 

2008-05-16 来源: 网络

 

为一个有志向的软件设计人员,如果还不清楚CMMI是什么的话,那么你就永远成不了一个合格的软件开发设计人员。系统的了解CMMI的每个过程,对于一个软件开发工程师是有必要的,对于软件开发的管理者更是有必要。

我们公司的管理混乱是出了名的吧,其实公司上层领导自己心里也很明白,我们作为一般的员工也隐隐感到这种现状。有很多时候,不是我们不努力,而是我们不是该怎么努力。很多工作似乎没有人负责,但是又感觉到有很多人负责。在现代的高科技企业中,这种情况还是比较少吧。

从公司的成立到现在,由于种种原因我都没有换过工作,对我们公司各个方面还是比较了解。我记得很清楚,在我们进行第一天CMMI的培训情景,确实很热闹,几乎公司所有的领导都到齐了,好像公司的任何会议都没有这么整齐吧。那时我在想,CMMI培训需要很多次才能完成,他们都能够参加吗?后来那些领导都没有来了,仅仅只剩下我们。从内心将,我还是很喜欢我们公司,也希望我们公司有一个好的发展,更希望我们公司有一个正规的管理流程,不是每天猜领导们的意思,也不需要看领导的脸色做事,一切根据公司的规章就可以了。

CMMI开始的培训是比较枯燥,没有具体案例分析,都是一些条条宽宽的。我还是耐着性子坚持完所有的课程。这么多年的软件开发或是产品开发,最后都是不了了之,其实每个项目我都是全力以赴,但是结果为什么会这个样子,这是一个在我心中多年的疙瘩。我更希望公司能够从这个CMMI认证之后,公司的管理走上正规。这是我赖以生存的公司。

从CMMI培训开始到现在,也近一年的时间了,我们也顺利通过CMMI3认证,但是我们公司依然如此,没有任何的改变。CMMI给我带来了什么? 如果从资金上讲我们已经总计投入了50万吧(包括所有的费用,以及员工的学习工作量成本),我很难想象公司化了50万作为几个员工的CMMI培训。

CMMI仅仅只是一个软件开发标准化流程,CMMI确实不能给公司带来直接的经济利益,但是他在整合公司力量,规避风险以及保证软件质量上确实有很多可取之处。下面就从我进行那么多年产品开发教训和CMMI的流程进行一些分析。

在这个公司的力量方面,CMMI特别重要过程的评审,有什么走查、四眼评审和会议评审,这些都是强度软件开发过程中,员工之间相互协助和监督的作用。例如在进行项目立项的时候,或是项目策划的时候,需要对进行的评审。在产品开发活动中,将涉及到很多方面的内容,仅仅靠公司一个人或是两个人是不能得到最好的决策,这就需要很多人参与,将不同的观点进行集中和分析,那么最后的结果将代表的是这个公司的观点,而不是每个人的观点。这个过程在我们公司是没有很好的实行的,大家都是一个想法,不是我的事情,我不管也不问,就是知道也不说。怎么集中公司所有人的力量把关键的事件做好,是一件非常重要的事情。 例如我们公司在对外合作的时候,没有专门的研究人员,研究对方的公司的情况,仅仅靠谈判进行合作是非常危险的。 另外一个项目开展也不进行任何的调查,就开始也是非常危险的。在很多关键环节上没有体现公司的整体力量。

整合公司的力量还表现在技术方案的分析和决策。由于公司员工人员结构的不同,不可能将熟悉项目的人员都调到项目开发组中。其实可以通过参与项目的重大问题的评审来体现他们的力量。最后公司提出的方案就是代表了整个公司的水平,而不是方案制定者的个人水平。 我很赞同很多公司的做法,就是将完成的文档和源代码在项目组成员之间相互检查(互评),这样会大大提高文档和代码的质量。

CMMI非常重视风险管理,在任何一个项目的进行都避免不了这个问题,所以风险管理是一个非常重要的过程。在实际的项目开发过程中,情况一直在改变,我们预定的计划是固定的,那么怎么处理我们计划中出现的问题,在进行项目策划过程中应该做仔细的分析和预测。CMMI不可能帮助一个家公司成为暴发户,但是他可以帮助公司规避一些开发过程中的风险。这也是很多大公司,不管领导怎么换,公司依然能够很好运作的原因吧。在我们公司缺少这方面的管理,每个项目的感觉就是到那里天黑到那里休息。项目开发的每个环节都没有进行很好的控制,由于种种原因,项目常常出现失控情况。

CMMI对软件质量的管理更是很严格,每个开发过程都有人监督。从开发流程到技术实现,这也是我们公司非常欠缺的地方,我们公司存在权利过于集中在某些人,公司管理几乎都是一个人说了算的局面。每个人都有惰性,每个人的认知都有局限性,每个人或多或少的有点私心都是非常正常的,这只能靠公司的正规监督机制才能避免,仅仅靠员工的直觉肯定是不行的。

其实CMMI对于管理的要求远远比我描述的复杂和严谨,如果我详细写的话,可以写一本完整的书。软件开发流程以及公司的管理确实是一门很深的学问。