上周公司组织了软件部的所有人员参与了CMMI的培训,CMMI早有耳闻,只不过一直没有接触。想来其在软件开发管理当中享有盛誉,自然有其独到之处。讲师讲课的风格我挺喜欢,看他的讲义颇有国外演讲者的风范,应该是我喜欢的那种讲课类型,严谨中透着些许诙谐。
讲课一开场我就被CMMI的庞大阵势给震撼了,软件开发从需求,设计,开发,测试,运行,维护等所有环节面面具到,而且每个环节都是那么的缜密,感觉丝毫看不出啥破绽,心想这不就是为了一个完美的软件团队而设计的么?
给我印象最深刻的是讲师在说一个团队对软件项目如何做计划。我只能用两个太字形容。那个做计划的方式太完美了,对项目经理的要求太高了。不过感觉这中间忽视了一个重要的一点,中国的软件大部分是由20人一下的软件小作坊构成,里面没有或者很少有经验丰富的项目经理(那中国经验丰富的项目经理去哪了呢?我怎么知道呢?估计是转行了吧,要么回家带孩子了)。没有了经验丰富的项目经理,那么水能拿捏好这个项目计划呢?你说可以摸索么,对吧。那是当然,等我们这帮小兔崽子摸索成了兔子爸爸的时候也想着回家带孩子了,谁还干这个啊。
后来说到一个需求变更对项目计划的影响。CMMI中的就是计划~沟通~裁剪~再计划(这个过程持续时间比较长)。
说来也是,中国的软件项目不管大小感觉可以分为两块。一个是外接的项目,一个是自己公司研发。自己公司研发就好说,需求的获取直接来自公司业务部门,自己公司啊,好说话,需求多了,就找个理由稍微延期一下。外接项目呢?客户是外人,提需求的是上帝,咱惹不起,也不想惹。最好的办法是啥,签合同之前早早的把需求划定。白纸黑字写的清清楚楚,你要加需求?价钱呗。可是在签字的时候客户往往只是通过自己的想法提需求,很多需求不合理也不可行。客户发现需求有问题的时候也不希望通过合同外来加钱,当然不是客户小气,只是客户觉得自己已经付出了那么多,变动的只是一点点,没必要加。没必要加钱以后呢?怎么办,当然是使用咱们中国最拿手的绝活了哦,你问什么绝活?废话,当然是踢足球了啊。这个需求外的变更到底是谁的责任呢?客户自然是认为你开发方想的不周到啊。可是客户也没想到,咱们的售前工作人员也不是吃白饭的,白纸黑字签那里,想赖账?然后再来点软的,这个东西吗,在不影响功能的情况下,我们考虑让开发人员给您做一下,不过这个工期么。。。。您也知道的对吧。就这么一忽悠,工期延长了。不过工期延长了,说实话咱们的成本也高了。咱这程序员的福利吗就哗啦啦的往下跌了。杯具哇。
后来看到了敏捷开发,感觉简化了这中间不少的规范化文档,有点适合小团队程序员的合作。再慢慢研究下。其实不是说CMMI不好,只是觉得CMMI不大适合现在中国这种作坊式的软件开发,当然外包那种企业不说。他们基本是沿用了欧美日本的开发方式。那是相当的正规啊~~~