内容


按时、按预算、按指定的要求进行软件开发:一种关于软件开发生命周期的集成方法

Comments

参加 Galorath Webinar!您将会在本文的最后看到其链接和详细资料。

将您带到各处多个阶梯

将您带到各处多个阶梯
什么事情最有可能让您获得升职或者被解雇?什么事情最有可能让您的手掌冒汗?是您不能够领会需求?或者是制定一套解决方案?或者是生成代码?都不是。真正使您心跳加速的正是基于您对开销、人员、日期的规划的项目被最终核准的那一刻。

想象一下您拥有一套解决方案,它能够使您精确地确定您的软件项目的90%的实际开销和交付时间。遵循一个相适应的软件开发生命周期过程,并且采用被设计为高效的和自动化的处理工具,将确保您的绝大多数软件项目能够按时、按预算、按指定的要求完成。

Galorath Incorporated 是 IBM® Rational® 的一个合作伙伴。我们已经投资超过二十年的时间来开发一种帮助政府机构和商业公司规划和管理复杂项目的解决方案。我们的 SEERsolutions 结合了直觉界面、大量的项目可适用的知识基础、复杂的项目建模技术、以及丰富的报告特性,从而加速了规划过程并且保持了项目轨迹。政府代理、《财富》100 和《福布斯》世界500强公司当前都依靠 Galorath 的 SEER 管理包括金融系统、航线运转、全球定位系统以及国际空间站等在内的关键任务项目。

本文介绍了规划和管理软件开发生命周期的方法和技术。

评估过程的十步曲

今天,大多数软件公司结合下列的一种或者多种手段来评估软件项目:第一、数量级/SWAG 的大致正确/大体描述顺序的评估;第二、自顶向下的/约束驱动的评估;第三、自底向上的/设计驱动的评估。尽管规划方法之间存在许多不同之处,但是所有这些方法的一个共同点就是它们几乎总是依赖于不充足的可用性、过量使用的人员和手册、或者最低程度的自动化处理过程,例如电子制表软件和其他国产工具。这些一次性的实践极其容易导致人工错误的发生。个体的计划者拥有不同的功能和项目历史;他们可能会过于乐观或者悲观;他们可能受到内部政策或者其他和项目不相关的因素的影响;或者他们仅仅是没有注意到某些并非显而易见的项目元素。

采用一个确定的、经过证明的评估处理过程,并且结合开发处理过程,能够有助于确保项目计划是可靠的和可以达到的,满足甚至超过客户的预期,并且通过提供精确的和及时的计划信息支持其他的管理活动。下列十个评估处理过程的步骤是由 Daniel Galorath 和 Michael Evans 开发的(请参见《软件规模、评估和风险管理》,Auerbach 出版社,2006年),基于数十年对于软件评估最佳实践的研究。

步骤一:建立评估范围和目的
定义并且记录预期。当所有参与者理解评估的范围和目的的时候,您就可以推翻假设,为度量未来变化的影响建立一个基线,并且消除潜在的误会。

步骤二:建立技术基线、基础规则和假设
识别包含在评估中的功能性。如果详细的功能尚未可知的话,那么记录基本规则和假设,以及被包括在和排除于评估之中的东西。商业现货软件(COTS)的问题、复用、以及其他假设也都应当被记录下来。

步骤三:收集数据
识别数据需求和信息持有者。为参与者预先提供问题和清晰的定义。在此期间,确认数据是实际有效的。建造并且提交到项目历史记录的知识库中。请确保包活到不确定的内容。

步骤四:确定规模和范围
如果环境迫使您折中您的评估方法,那么您将在项目规模上花费大量的时间(使用裁剪规模的数据库和工具能够推动这一处理过程)。可以论证,这是决定项目最终成败的最关键的步骤。确定规模和范围是驱动项目各个方面的动力,约束那些在产品的开发和升级中所采用的行动,以及限制可以提供的选项。

步骤五:准备基线评估
评估一个项目不应当将其作为一次性的活动加以考虑。随着项目的进展,未知内容逐渐变为已知内容,并且新的和意料之外的问题和机会都会随之出现。生活中亦是如此。更新评估和记录评估变化贯穿于整个开发过程,它确保:第一、权衡的评估是基于不断增加的可靠的数据的;第二、公司能够即使得到“最精确”的评估点;第三、评估的精确度将随着时间的推移而提升。

步骤六:量化风险和风险分析
风险能够被表现为时间、质量、金钱、控制或者理解力损失的形式。这种同风险相关联的损失被称作风险影响。风险不能够被评估,但是能够被计划到。如果风险自身被公认为一种适时的方式的话,那么它将不会对项目的成功构成威胁。

步骤七:验证和回顾
验证和回顾您的评估将提供一种对评估完整性的系统的确认。这一步骤使得公司能够更加前摄的调整项目变量,并且证明项目数据是合理的、方法是有效的、预先定义的规则是精确的、以及关注重点是正确的。

步骤八:生成一个项目计划
生成一个项目计划是将项目评估作为一个基础,在详细的功能和面向任务的工作细目分类结构中分配和沟通指定的开销、资源和时间。

步骤九:记录评估和吸取教训
每一次您完成或者升级一个评估和项目的完成,都应当记录那些相关的信息和得到的经验教训。通过这样做,您就记录了一个“最佳努力”的处理过程,捕获到实际的结果,校准您的评估模型。

步骤十:跟踪性能(度量和反馈)
过程信息应当被不断的收集起来,并且同原始方案和基线进行比较。如果执行情况出现一贯的或者明显的不同,那么校正选项就应当被考虑进来并加以实施,从而将项目拉回到正确的轨道上来。执行情况反馈也应当被回顾,项目数据被保留,从而重新定义评估的处理过程。

参数的/预言性的软件建模

遵循一个结构化的评估处理过程将大大提高确保评估精确性的同时,可以通过将这一方法同专门为项目评估和管理而设计的技术相结合来获得更大的收获。参数化的/预言性的建模软件使得用户能够评估一个已知的项目,并且建模或者仿真一个基于大量有意义的真实世界数据的未知的项目。

与大多数项目管理工具关注自动化特性或者工作流程不同的是,参数的/预言性的建模工具帮助公司建模和优化项目的可行性,并且确保项目满足已制定的交付指导方针。参数的建模取名于在项目仿真处理过程期间被修改的项目参数或者变量。参数的模型是从一组数学公式中被建造出来的。这些公式可能是参考书中可以查到的标准公式,也可以是由顾问或者卖主或者他们联合起来所开发的私有公式。为了参数的模型具备有效性,他们就必须基于或者被证明为是使用精确的项目数据的。数据分析方法和大量的潜在项目数据决定一个建模解决方案的效力是一种诡辩的说法。

参数化的方法对于将不确定的情况置于一个预定义的和被证明是精确的模型之下十分有用。他们能够有效的收录大量先前的经验,并且较之人类思考过程较少的产生误差。尽管指定的特性在卖主和卖主之间存在差异性,但是功能强大的评估工具将为集成各部门的生产力解决方案和企业级应用提供一种开放式的体系结构,并且合并下列应用程序要素:

界面:一个直觉的界面用于定义和描述项目。用户能够从一个现已存在的项目“模板”中生成一个新的项目,或者通过添加并且定义单个工作元素生成一个新的项目。一系列的弹出窗口和注释将指导用户完成定义项目范围、复杂性和技术的过程。

仿真/建模引擎:复杂的、指定扇区机制的模型来源于大量的项目历史记录、行为模型和度量方法。

知识库:知识库就相当于一位虚拟的“内部专家”,它提供了基于可比较的项目历史记录的默认的项目定义、赋值、范围和标准。使得用户能够在仅掌握一点点信息的情况下就进行评估,并且随着详细资料的不断积累对那些评估进行重新定义。

输出:各种各样的图表和报告用于快速地总结和呈现项目的输出和进展。

图 1 和图 2 显示了一个通过这种评估工具(Galorath 的 SEER)生成的参数导入图形用户界面(GUI)和结果页面导出的例子。

参数输入截屏

参数输入截屏

图 1: SEER 输入
请点击此处将图片放大

显示图像化输出

显示图像化输出

图 2: SEER 输出
请点击此处将图片放大

今天主流的参数建模解决方案使用户能够在不同的细节水平上描述一个项目;获得关于项目开销、努力和持续时间的评估;通过改变一个或者多个项目变量分析和测试交换;并且提供大量的报告功能,其中包括达到项目目标的概率以及那些概率如何通过在潜在的约束和假设中做出微小的改变而被提高。顶层的工具可能提供嵌入式的软件规模“向导”来援助软件的规模,它是影响到开发成本、工作量和进度的最重要的因素。

其他的参数将包括:

  • 项目平台;
  • 开发方法;
  • 管理标准;
  • 人员水平、能力和经验
  • 开发环境的复杂性;
  • 需求的稳定性;
  • 自信程度;
  • 目标/主机系统;
  • 时间进度方面的考虑;
  • 可重用性;
  • 集成度;
  • 劳动力成本;
  • 维护水平;
  • 等等。

项目建模:社会安全管理委员会的十年周期

社会安全管理委员会(Social Security Administration)是一个肩负重大责任的庞大的机构。在2007年,SSA 负责向五千万美国人分发总数额超过五亿八千五百万美元的退休金。其总部设在马里兰州巴尔迪摩市的社会安全管理委员会(SSA)拥有大约六万两千名员工、十个地区性办事处、六个处理中心、以及1300个办公地点。随着上百万婴儿潮时期出生的人到达退休年龄,这就对 SSA 带来了更大的压力、提出了更高的要求。需要采用多个复杂的计算机系统以及为其专门设计的软件,以跟踪超过一百万人的收入和支出情况。这些系统是由 SSA 的系统办公室编写和测试的。

在1997年8月份,系统办公室决定采用一套参数建模解决方案(由 Galorath 提供的 SEER)。与此同时,SSA 正在使用大约100个程序和30至40个正在开发的程序。几乎所有这些程序都是用 COBOL 语言编写的,它是一种在当时使用率达到80%的编程语言。1 SSA 努力遵守一个新的过程处理标准,能力成熟度模型(Capability Maturity Model,CMM),并且将它的软件评估能力集中起来。

已经退休的 Dennis O'Mailey 曾经是 SSA 的软件度量 团队的领导者,该团队负责评估潜在的软件开发项目和跟踪现已存在的项目的进程。“超过六百名编程人员正在开发和维护许多系统,我们需要一种精确的软件评估工具,”他说道:“普遍的感觉就是我们现有的评估做的并不是很好。”

此时,每个项目管理者负责创建他们各自的评估。“一个好的评估依赖于项目管理者的知识和经验,”O'Mailey 说道:“从事一个项目多年的项目管理者较之新手来说会更加的精确。但是在许多项目上我们却错过了大量的内容。”

最初,SSA 仅仅在一些项目中开展参数的建模;它们使用工具来决定维护成本以及是否继续开发。但是 SSA 也努力将公司带入到遵守 CMM 层级2和层级3的规范之中。“CMM 是十分重要的,这是因为它因为这您的软件开发操作是成熟和完备的,并且您拥有一套标准的开发系统的方法,”O'Malley 如是说。CMM 要求项目努力和开销评估根据一个被记录的程序进行。SEER 使得 SSA 能够满足这些要求。

今天,Office of Systems 的软件开发店铺雇佣了大约3200名分析师、开发人员、数据库建模人员和其他系统人员,为 Social Security 生产软件,为其他联邦机构设计和建造应用程序。“这里还存有某些 COBOL 语言编写的项目,”根据 Jim Denny (O'Malley 在 SSA 的继任者)的说法,“但是现在它们更加像是一种基于网络的语言。我们得到了 Java 和 JavaScript、HTML、Visual Basic 和 Cold Fusion。”最近,他的公司被雇佣去开发执行 Medicare Part D Prescription Drug Coverage Initiative 所必需的软件。“与来源于一个私有卖主所不同的是,”Denny 说道:“它们同 Social Security 签订了合同,为其建造产品。通过内部代理协议,我们偿还了投入到 Medcare 项目中的软件努力的债务。我们最终雇佣了大约六百人来支持这项工作。”

当我们掌管 O'Malley 的时候,Jim Denney 看到这一解决方案的额外的机会。“我们问自己,是应当将评估组让给一百个不同的项目管理人,还是应当专注于一组能够熟练掌握项目之间联系的评估人员,”Denny 如是说。今天,评估是由软件度量团队所提供的一种集中式的服务。

在一个典型的年份期间,90或者100个最关键的 SSA 项目是使用 SEER 参数建模解决方案被评估的。这一处理过程首先使用 Microsoft Project 进行一个初步的、自底向上的分析。Denny 的团队采用一种更加类似于自上而下的方法,使用功能点来建造第二个评估。“我们的标准是为一个项目管理者提供两种评估,一种是自底向上的、另一种是自上而下的,就像归纳和演绎两种逻辑之间的区别一样,”Denny 说道:“项目管理者然后负责进行这两种评估之间的成本核算的比较。我们所努力做到的就是让这两种评估方式更加接近。这就是一位经验丰富的项目管理者能够确认他正在进行正确的跟踪的原因。”SEER 也同样在资源的管理中扮演角色。“我们试图通过使用一个被称作替代物的概念来识别过分的和欠火候的项目,”Denny 声称:“在欠火候的模式下被分配到一个项目中的资源,能够被重新定向到一个更加需要它们的项目中。这就是评估所带来的好处之一:参量建模为我们提供了对资源利用的可见性,允许我们更加快捷、有效、精确的完成工作。”

具备一个开放的软件体系结构的 SEER 使得每个个体的公司能够通过扩展本地的拥有定向项目数据的知识库精炼它们的评估工具。“大约在五年之前,我们为 Galorath 开发人员提供50个已经完成项目的信息,他们随后就将这些信息整合进 SEER 知识库中。我们现在拥有一个功能非常强壮的项目跟踪系统,这是因为每个人都被要求记录下每一周的工作进展和他们完成任务的情况。”

“参数建模真正的好处是帮助项目管理者在项目的早期度量努力和进度,”O'Mailey 说道:“关键是尽早知道整个项目将持续多长时间,以及消耗多少资源。如果您采用一个好的计划管理您的项目——其中一个完整的部分就是一个好的评估——那么您将能够节省大量的开销。”

Rational-SEER-Rational:集成的软件开发生命周期

一个标准的软件开发生命周期过程,能够自动操作项目设计、评估、资源分配和跟踪的。无缝的集成 IBM Rational Software Modeler、SEER for Software、以及 IBM Rational Portfolio Manager 支持这一端对端的处理过程:

步骤一:评估第一个概念——做还是不做?

通过 SEER for Software 您能够在一个概念层级上使用从数千个已经完成的项目中收集到的大量的和可扩展的项目知识基础来定义您的项目。SEER 还能够基于这些大量的项目历史记录仿真您的软件项目,并且计算评估开销、努力、持续时间和风险的一个初始的、大致的顺序。

步骤二:进行软件设计

一旦您确定了希望前进到一个项目,那么 IBM Rational 开发工具将能够帮助您捕获业务处理过程设计和系统需求、进行用户实例、以及将用户实例转换为可执行的代码。

步骤三:进行详细的评估

将您的 Rational Software Modeler 或者 Rational Software Architect 或者 Rational Software Developer 设计导出到 SEER 来重新定义您的初始评估并且执行大量的交换分析,修改项目变量——单独的和联合的——来确定如何最好的执行这一设计,如图3中所示。为执行者和业务领导者提供指定的可能性概率以达到项目目标,以及这些概率如何能够通过在微小的约束和假设中进行修改而被提高。

SEER product

SEER product
Rational Software Modeler 产品
Rational Software Modeler 产品

图 3: 用于 Software (上图)和 IBM Rational Development 工具(下图)扫描的 SEER 能够帮助您评估多个选项,从而重新定义和优化您的软件设计。
请点击此处将图片放大

步骤四:分配资源和管理投资组合

将您最终的 SEER 评估导出到 IBM Rational RPM 中,将项目和程序数据集合起来,并且确保资源和优先级能够被跨公司、跨时间的最优化的处理,并且没有资源被双重登记或者未被充分利用,如果项目被延时这些资源就会发生冲突(请参见图4)。

SEER portfolio management 的输入

SEER portfolio management 的输入
来自 Rational portfolio 工具的输出
来自 Rational portfolio 工具的输出

图 4: SEER for Software Project Monitoring and Control(上图)和 Rational Portfolio Manager (下图) 允许您将项目和程序数据集中起来,并且跟踪项目的性能和过程,从而确保资源和优先权能够被最优化的管理。
请点击此处将图片放大

步骤五:成功完成项目的最终期限

SEER 使得用户能够度量实际的项目性能和过程预期结果(进度、资源和缺陷)。当需要进行中途修正的时候,用户能够决定哪一种修正操作最有可能将项目拉回到其正确的轨道上来。项目结果能够被用来反馈,从而提高处理过程,并且这些结果能够被合成到项目历史记录的数据库和知识库中。

项目交付。按时、按预算、按指定的要求。

通过协同地工作,IBM 和 Galorath 提供了一个无缝的解决方案,它能够使得软件开发公司自动实现它们的规划过程:

  • 提供一个完全的、无缝的、跨软件开发生命周期的解决方案;
  • 帮助公司理解和优化开销、投放市场的时间、以及功能性交替换位;
  • 提供最高等级的评估能力(开销、进度、努力、风险以及可靠性);
  • 跨企业标准化评估最佳实践;
  • 通过为业务和技术提供者提供一种通用的语言,鼓励协作决策的制定;
  • 通过提供一个度量项目开销、进度和人员目标的项目基线,支持管理迭代;
  • 确保项目处理过程和结果随着时间而提高。

注释

1 Gartner Group,1997年。


相关主题

  • 您可以参阅本文在 develperWorks 全球网站上的 英文原文
  • 您可以参阅 Rational Edge 电子月刊中文版 的其他文章。
  • 参加 Webinar!

    集成的项目生命周期建模:IBM Rational 和 Galorath 的 SEER

    日期:01/23/2008;时间:12:00pm - 1:00pm (GMT-05:00) 东部标准时间(美国/纽约);作者:Global Rational Community (GRC)

    今天,大多数软件公司结合下列的一种或者多种手段来评估软件项目:第一、数量级/SWAG 的大致正确/大体描述顺序的评估;第二、自顶向下的/约束驱动的评估;第三、自底向上的/设计驱动的评估。尽管规划方法之间存在着许多不同之处,但是所有这些方法的一个共同点就是它们几乎总是依赖于不充足的可用性、过量使用的人员和手册、或者最低程度的自动化处理过程,例如电子制表软件和其他国产工具。这些一次性的实践极其容易导致人工错误的发生。

    这个 Webinar 将包括一个对 SEER 软件建模解决方案的简要演示,从而向您展示量级评估的一个大体描述的顺序是如何被创建出来的,并且使您初步了解一套好的软件建模解决方案的潜在能量。

    请在此处注册 Webinar:https://events.webdialogs.com/Portal/WipEvents/register.php?id=360e00c90e7d4f82aeff738aa0e7da1f&sourceID=


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=290183
ArticleTitle=按时、按预算、按指定的要求进行软件开发:一种关于软件开发生命周期的集成方法
publish-date=02152008