简单的回答:不需要。
复杂一点的回答:非但不需要,CMM可能会成为平台开发的绊脚石。
说这话可能会得罪一些CMM的支持者,本人曾供职过一个某软件强国的CMM5/PCMM-4的企业,现服务于一家移动开发世界数二数三的公司,自认为对CMM和移动开发都有心得,不是睁眼说瞎话。
首先声明,我并没有贬损CMM规范的意思,CMM对某些应用软件的开发还是很有作用的,我只是说它不适用于手机软件平台的开发。
Why?
微软某高层说过:“如果某天一个CMM5企业要进入浏览器市场,我会半夜笑醒。“手机软件平台和浏览器一样,有研究的性质,需要的是灵活和创新,而CMM帮忙只会帮倒忙。
CMM规范的实施基于这样一个假设---“需求是明确的而且易于获得的”,但是手机软件平台不是这样的,平台是用来给开发应用的,很多需求都是摸索着获得的,不是象超级市场货架上的商品一样拿就行了。CMM这一点也导致它在很多别的应用开发中很尴尬。
软件平台开发更多的需要是作为王牌程序员的聪明才智,我就认识某个牛人一人完成一个嵌入式application framework(UI除外),而CMM实施带来的overhead是有目共睹,程序员往往就在繁冗的表单填写中丧失了激情。
CMM名为“能力成熟度模型”,但自身也有很多不成熟的地方,没法保证产生优秀的软件产品。CMM保证一个bug能够被track,但是bug如何被fix,就完全靠程序员的专业能力;CMM保证所有的文档都被review,但是没法保证review过得文档就是高质量的。我相信,很多成功实施CMM的企业,也不是完全依赖CMM,需要其他更重要的东西,比如好的人才招聘培养和挽留机制:)
这样做个实验,软件业这一二十年获得巨大的发展,列出十个觉得最伟大的软件,看看有几个是在CMM的监督之下成果的。我写的是
Windows
DOOM/Quake
C++
Java Platform
Linux
Warcraft 3
Office
.Net Framework
Eclipse
Starcraft
呵呵,排名不分先后。
伟大的软件总是会有很多的创新和突破,这是CMM无法做到的。