CMMI与PMBOK本来没有直接的关系,也是不同领域内的模型,但是现在随着项目管理在各行各业中的深入的应用,尤其是最近几年软件行业的项目管理的快速的发展。因此了解对于CMMI和PMBOK之间的区别和关系对于理解这些过程模型,更好地应用到软件项目开发和管理中也是很有必要的。
在项目管理中,需求的重要性是众所周知的,在IT业界的研究是:高达60%缺陷来源于需求不清晰,超过80%的项目维护成本用于需求问题处理,需求管理影响了整个项目成败,而关键项目成败则影响了公司的生存。
指是方向和指路牌,指是学习的方法和路径,指是循序渐进达到目标的学习过程。月是结果,是我们最终要达到的目标,但是没有方向的指引和正确的学习路径,我们就会偏离了目标,也很难坚持下去达到目标。很多时候我们在学习过程中正是总希望直接得到结果或别人告诉你结果,而不关注过程和得到结果的方法,不懂得回溯去完善自我的学习路径,以期达到更高和更远的目标。没有了指往往就是看到了月亮而没有真正的得到月亮,真正达到目标必须要遵循一定的学习步骤和路径,循序渐进。
我们会解决您在实施CMMI3之后积累大量文档的难题,也会解决您在实施CMMI之后大量文档无用的难题,更会提供一套完整的解决方案协助您的企业真正简化流程,优化过程,达到真正的实用、适用。
对于SPI (Software Process improvement软件过程改进)策略的选择,实在是仁者见仁,智者见智。也许并没有什么绝对的对错,关键看是否符合自身的实际情况。
软件过程改进并不是一件很困难的事。并没有写一个操作系统,或设计一个微处理器那样的纯技术上的难度。但它面对的是一种含有大量管理成分的工程技术。这也就是为什么不容易把它做好的原因。
一个企业软件工程过程的建立不会一开始就十全十美, 而且企业的内外部环境也是在不断地变化.所以软件的管理过程需要不断地改进。缺少了过程改进,再好的体系也会渐渐的变得过时和不适用,更没有可能使我们开发软件的能力逐步地成熟起来。
并行工程过程管理以产品开发过程为研究对象。所谓产品开发过程,指的是从产品定义到产品批量生产之前这一段时间。从研究内容来看,产品开发过程的建模和分析是过程管理研究的核心,项目管理、工作流管理等信息技术是过程管理实施的基础。下面我们主要就这两个方面介绍并行工程过程管理的方法和技术。
CMM为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架; 它指明了一个软件组织在软件开发方面需要管理哪些主要工作、这些工作之间的关系、以及以怎样的先后次序,一步一步地做好这些工作而使软件组织走向成熟。
软件项目的过程诊断与改善已经有了很多的有效的参考模型和最佳实践方法集,其中,最有影响的是SEI的软件过程成熟度模型(SW-CMM/TSP/PSP体系)和敏捷联盟提出的敏捷方法集等。
以项目形式管理软件过程改进,特别有利于提高团队凝聚力、规避风险、明确目标、提高效率,而且由于SPI项目组与其他项目组形成了一种矩阵式组织结构,可以有效促进组间交流。所以对于SPI这样一件比较复杂的工程来说,以项目形式进行管理将是成功的重要保证。
随着软件行业的发展,软件企业对软件开发的一致性、高效、低成本、高质量提出了更高要求。本文从软件企业开展过程改进的关键干系人—高层管理者角度出发,分析和提出如何推动过程改进的一些观念和见解。本文是笔者《软件企业过程改进开展》系列文章之一,后续将会从工具支撑、团队实施等角度尝试分析。
通过比较CMM和BPR在目标、实施对象和实施流程等方面的相同点,得出一个结论:按照CMM进行的软件过程改进就是软件企业的BPR。
对于项目经理来说,其职责是软件项目的管理,而对于架构师、编码人员来说,其职责是软件设计和开发。虽然在一些小型的团队中,这两种职责有时候是同一个人担任的,但两种角色的区分是必要的。从事过软件开发的人都能或多或少的感受到软件管理和软件开发之间客观存在的沟壑。
在软件过程中,我们如何保证信息能够得到正确的传递呢?我们用什么方法来避免信息传递的失真呢?我们如何在这样一个过程中处理人与人之间的交互呢?在正确传递信息的情况下,我们又如何保证投入的最小化呢?
一致性原则是软件开发中重要原则,也是最令人困惑的原则。做到完全的一致性将会导致高昂的成本,而不一致又会导致项目出现各种各样的问题。可以想到,这又是一个需要权衡的问题。
软件过程的改进是一个长期的过程,属于长期的利益。如果长期利益和短期利益相冲突的时候我们应该如何处理。我们有什么办法来令短期利益和长期利益结合起来呢?
笔者所在的公司同样遇到类似的问题,经过长期实践,我们终于发现,造成上述问题的症结主要是在流程的执行环节上,没有一个从上到下的自动化的流程执行体系,导致过程改进始终停留在书面文档上,没有真正落到实处。笔者就这个话题,结合所在公司几年来的实际经验,介绍如何利用软件工程工具来切实提高软件过程改进的实际效果。