十一月 24th, 2004

[Essay]CMM 评估

    今天我作为一名开发人员接受CMM3级的评估,和评估师聊了差不多一个下午。因为一直关心敏捷方法论所以一直带着评估师跑题跑到方法论的谁是谁非上了。评估师一再强调:
1、软件是一个工程概念,这有别于前些年的软件艺术(英雄主义)概念。
2、软件需要从企业的宏观角度来来审视,而不是开发的微观角度。

 我一开始还和评估师瞎侃,后来他们开始说这些了。我赶快见好就收:闭上嘴巴,对着他们频繁点头、微笑。

我认为:

1、软件是一个结合工程和艺术的概念,可能因为你的视角不同而重点不同。就像我经常举的那个例子:开发软件是照着菜谱做菜还是发明菜谱,答案肯定是发明菜谱。你我无法知道新的配料如何炒出可口的菜肴。如果你认为你黄瓜、冬瓜的炒法你很熟练的话,你就可以写出任何瓜类的新菜谱的发明步骤,那就是大错特错了。再说了,我还真没有见过哪个设计师写过的设计经过实践不反复修改的。

if (我对浪费视而无睹&&我没有项目压力&&我的工资很丰厚)
我会完全按照CMM的要求,生成所有详细设计并进行评审之后再开始编码。
else
概要设计评审之后,我就进入交互设计和编码阶段并同时自动化生成详细设计

2、一个企业应该从自身的角度来审视软件开发,但是不能忽略人的因素。就像有些软件企业的老板在程序员们下班之后的感慨:我感觉现在我一无所有。确实这是个问题,但是如果文档写得都背离了初衷,没有人在看,只有人在检查的话。我认为完全没有存在的必要。沟通是有很多种方式:

如果你感觉不能喊一嗓子完成命令的传达,你就需要打电话。
如果你感觉这次传达的命令需要进行记录,你就需要写邮件。
如果你感觉你以后可能需要频繁的查询的话,你就需要查询功能强大的邮件客户端。

一切都不是银弹,没有解决一切的方法论。我喜欢极限编程书中的一句话:如果你在想我如何能解决这个问题的时候,说不定为了达到目标而出现问题的方法本身就是一个错误。

作者: kingfish 10:03 pm | No Comments »
Google