领域驱动设计的关注重心是领域,尤其在面对复杂的领域逻辑时,它总能够帮助我们很好地分析领域。领域驱动设计的基础是领域建模。
目前,许多软件企业在开发管理上存在的问题是没有统一的规范标准,质量把控也不够理想。因此,许多企业的软件开发项目都要求承包商有一定的CMM级别或ISO9000认证作为参加投标的资格。在上周,我参加了一个华南地区的软件行业会议,会议主题是关于如何做好软件开发的质量管理。在会议上大家掀起了一股讨论的热潮,就是在软件开发中是选择CMM体系还是ISO9000质量体系?
软件开发人员和项目经理努力地评估敏捷过程对他们的开发环境的适应性。本文指出许多已公布的敏捷过程对不同的项目类型来说存在的局限性,敏捷过程应用在这些项目中可能会存在问题。
对软件企业来说,cmm是一个自我评估和自我提高的途径,是提高软件开发的管理能力,加强国际竞争力的有效手段;对软件用户,cmm也提供了一个衡量软件开发商开发水平的评估方法,有助于软件开发项目的风险识别。到底什么是cmm;为什么要引入cmm;它在我国的应用情况怎样等;本文将从这几个方面探讨cmm。
对软件企业来说,cmm是一个自我评估和自我提高的途径,是提高软件开发的管理能力,加强国际竞争力的有效手段;对软件用户,cmm也提供了一个衡量软件开发商开发水平的评估方法,有助于软件开发项目的风险识别。到底什么是cmm;为什么要引入cmm;它在我国的应用情况怎样等;本期将从这几个方面探讨cmm。
CMM的五个等级标志着企业的逐渐提高的软件开发能力的成熟度;更有价值的是,它列出了为达到每一个成熟度等级所必须要做的事。CMM的提出者希望企业通过使用这个模型,一个等级一个等级地去提高它们的软件开发及生产能力。
在银行的软件开发部门应用CMM,能够不断的提高部门的开发效率,让项目进度控制更严格,品质更有保证,管理更有序,但前提是要使用得当。它没有一种固定的模式,也没有确定的应用框架,更没有明确指导我们要如何去实现,所以,我们科技部门需要结合自身的实际情况去裁剪,去探索出一套适用于银行的软件项目过程。
项目目标往往有可能要在项目真正完成,或产品发布一段时间后才能够得到统计和计算。要在项目进展中就知道和预计是否能够达到项目最终目标必须借助过程性能模型。
需求管理是CMM二级中列出的第一个关键域,这是因为它实际上是二级引入到开发过程中的所有管理原则的先决条件。只有在开发的目标被清楚明白地表述和理解的情况下,软件开发才能以一种有计划的有序的方式进行。实际上,没有文档化的需求,在开发工作完成前后都很有可能发生产品与要求的偏离。计划、追踪、配置管理以及软件质量保证这些在二级的其他关键过程域中涉及的原则,都是从一个稳定的基础开始的,那就是文档化的需求基线。
中国功夫讲究“内练一口气、外练筋骨皮”,这个道理非常值得软件企业在生产经营中加以借鉴。建立学习型组织和CMM认证在通过提升管理而谋求企业发展的过程中,正是起到了“内修”、“外练”的作用。让我们粗浅地介绍一下软件企业应当修炼的这两件利器。
一个软件企业过程改进的需求和CMM/CMMI的要求之间并不能划等号,所谓“种刮得瓜,种豆得豆”,前期机械的按照CMM/CMMI的PA来分析企业的过程改进需求,最终得到的结果往往和企业实际的情况相差甚远。
产品集成是软件开发日常性的工作,是和广大软件开发和测试人员息息相关的基础性工作,笔者提倡将产品的集成日常化、自动化起来。大家可以通过手中的笔就可以很好的将产品集成概念进行理解,只要把握住产品集成的“顺序”、“环境”、“步骤”、“接口”、“集成测试”五个部分,那产品集成的管理就简单可行了。为了便于理解,大家只要看看手中的笔就可以了。
张维迎先生《理性思考中国改革》一文的内容可以概括为四个短语:换位想、向前看、讲可行、重逻辑,这些何尚又不是在软件过程改进工作中必须遵循的思考方式呢?
测试理论分为两派,一派是证实,一派是证伪,但做为企业项目来讲,证伪的成本太高,一般以证实为主,也就是证明客户的需求是可用的,产品能满足客户需求即可。
CMMI环境下,该如何实施Agile?“只要本着‘积极思考,消除浪费’,没有必要把敏捷挂在嘴边,不要对立,而去实践,在实践中不断调整”就是在CMMI环境下实施Agile的要点。
CMM的每个成熟级别由关键过程区域(KPA)组成,每个KPA确定一组相关活动。为了有效地进行这些活动,需要在整个软件开发过程中引入相关工具,帮助软件企业或开发团队实施CMM。一般来说,实施CMM需要以下主要工具:软件开发过程框架、需求管理工具、面向对象的分析设计工具、配置管理工具、变更管理工具和软件测试工具。
软件系统开发的基本问题是如何管理开发过程。SW-CMM的第一个进行目标(即第2级的目标)就是通过建立关键的管理过程域,使得开发过程可控且可重复。SW-CMM2级共有6个关键过程域(KPA)。
一个企业软件能力类似于一个人在一个特定领域的能力,是逐步获得和增长的。如果一个人在其领域的发展过程中能得到一个很好的指南,那么他或她就会不断达到一个个设定的目标,并变得成熟起来,否则可能会盲目发展,离自己的目标越来越远,甚至南辕北辙。一个企业的软件能力发展也同样需要一个良好的指南,SW-CMM正是这样一个指南,它以几十年产品质量概念和软件工业的经验及教训为基础,为企业软件能力不断走向成熟提供了有效的步骤和框架。