接下来的一些把焦点集中到信息系统的开发上。
为了实现对开发及产品(即信息系统)质量的提高和改进,很多组织都会选择使用一种开发框架[framework],比如 Capability Maturity Model .(*注:高性能的成熟模型?我也不知道该如何翻译成中文...:()
来看看定义:The Capability Maturity Model (CMM) is a framework to assess the maturity level of an organization's infomation system development and management processes and products , It consists of five levels of development maturity.
CMM是一个用来评估信息系统开发和管理成熟和完备水平的框架,它由5个层次(level)组成。
Level 1 --- 初始的[ Initial ] : 这是低的层次,项目组没有任何预先规范的开发过程,开发团队中的每个成员都采用自己的开发工具与开发方法。成功还是失败完全由项目团队的经验和能力决定。这种开发的过程是不可预知的和不可重用的。这样开发的项目会遇到很多的麻烦,经常会超过预算和不能按时完工。也没有任何的文档可以作为参考,必须由最开始的开发者来进行系统的维护和解决相关的问题。这个层次显示是十分低级别甚至是差劲的,不过所有的组织都是从这一个层次开始的。
Level 2 --- 可重用的[ Repeatable ] : 在开发中已经建立了专门的项目的管理的只能部门,他们负责项目的费用,进程以及功能等方面。因此开发是可重用的,但是因为管理只是针对项目本身的,因此没有形成统一的方法,对不同的项目就产生了很大的不同。而且成功还是失败依然完全由项目团队的经验和能力来决定。虽然这个层次存在很多的不如人意的地方,但是它已经开始关注和努力让项目变的可重用和成功。因此,高效率的对项目的管理实践成为了实现下一层次的标准化的基础。
Level 3 --- 定义的[ Defined ] : 在这个层次,标准的系统开发过程(通常是一种方法论)已经被建立和发展起来,并用它来整合组织中的信息系统及其服务。所有的项目采用通过这个统一的开发过程进行适当修改后的版本来进行开发和维护。由于所有的项目都采用了统一和标准的开发过程,因此每个项目都可以由高质量的文档以及可分发和重用的部分构成。整个开发过程是稳定的,可预知的以及可重用的。
Level 4 --- 管理的[ Managed ] :在这个层次,建立了对产品和质量的可衡量的目标。对信息系统开发过程中的各种细节标准做了衡量并存储在数据库中。然后基于这些收集到的数据来提高项目的管理。因此,在管理中,对遇到的各种问题(时间,预算等)具有更强的预知和应变能力,即使是遇到了一些不可预知的问题和事件,开发过程也能够迅速的量化这些问题,并作出适当的调整来适应与解决问题。整个开发过程是可预知的。
Level 5 --- 优化的[ Optimized ] : 在上一个层次,即Level 4,中建立了量化的数据的分析,监视并以之作为提高系统以及开发的基础。在这个层次上,对这种标准的系统开发进行了延续和强化,使之成为一种不间断的,持续的过程,因此使系统具有更高的性能以及更强的适应性。在对系统的维护中,不断对系统进行优化及性能等各方面的提高。
上面简单地介绍了CMM的各个层次,按照从低到高的顺序,每个层次都是它下一个层次的基础。
通常情况下,我们至少需要达到第三个层次[ Level 3 ],即定义的[ Defined ] 。也就是说在开发过程中,我们需要使用一种标准即一种方法论。
信息系统开发的方法论的定义: A systems development methodology is a very formal and precise system development process that defines ( as in CMM Level 3) a set of activities , methods , best practices , deliverables , and automated tools for system developers and project managers to use to develop and maintain most or all infomation systems and software.
在介绍具体的开发方法论之前我们先来看看一些开发中的普遍的原理:
原理1 : 让系统的所有这以及系统的用户参与进来 [ Get Owners and Users Involved ]
原理2 : 重点是要使用特定的方法来解决实际的问题 [ Use a Problem-Solving Approach ]
原理3 : 划分成各个阶段及各阶段由哪些活动组成 [ Establish Phases and Activities ]
原理4 : 建立各种活动和事宜(例如文档,质量,开发工具,开发技术等)的标准 [ Establish Standards ]
原理5 : 要把开发系统当作一种资本投资来处理(系统分析师需要分析及找出多种可能的解决方案并计算和衡量每种方案的可行性和可能结果) [ Justify System as Capital Investments ]
原理6 : 不要害怕取消之前的成果和重新来过 [ Don't Be Afraid to Cancel or Revise Scope ]
原理7 : 对问题进行划分并一一克服 [ Divide and Conquer ]
原理8 : 把系统设计成可以不断改变和升级的 [ Design Systems for Growth and Change ]
上面就是一些我们需要铭记在心的东西,在我们分析和处理问题时潜意识里会时刻想到和遵守的基础的原理。有了这些原理,我们可以继续开始对开发的方法论进行探讨。:)
那么,在下一部分中,将就信息系统开发中的方法论做继续的阐述。:)