您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 咨询监理在软件项目中的作用
请输入此PPT的标题信安信息系统管理技术有限公司二〇一〇年七月二十八日咨询监理在软件项目中的作用•坦白地说,微软所面临的挑战之一是它的很多员工还没有遭遇过多少失败。很多人从未遇到过失败的项目。结果是,人们把成功视为理所当然的事,这是很危险的。。。人们遭遇失败时,将被迫发挥出创造性,不分昼夜地深入探索并冥思苦想。每个公司都需要有过这种经历的人。”——比尔。盖茨信安信息系统管理技术有限公司信安公司简介软件工程各个阶段咨询监理的方法和措施咨询监理在软件项目中的作用软件项目面临的问题和困境软件项目的发展与现状软件项目的发展与现状•目标:提高工作效率管理能力决策能力•手段:生产数据整合信息资源利用信息资源•重心:软件的应用软件的价值•软件企业–主动型:主动发现需求,研制相应的产品–被动型:根据存在的客户需求,定制开发(项目)–中间型:在半成品软件产品的基础上,为多个客户二次开发软件项目面临的问题和困境•20世纪中期,计算机技术从军用转入民用领域。如何在有限的处理器能力和存储器空间约束下编写出功能强大、运行效率高、占用空间少的程序是核心问题,因此软件生产依赖于开发人员的聪明才智。60年代计算机的应用范围得到较大发展,对软件系统的需求和软件复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面的要求,这就是所谓的“软件危机”。•1968年,NATO会议上首次提出了“软件工程”SoftwareEngineering的概念,其基本思想是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满足用户要求的软件产品。软件工程的起源软件项目面临的问题和困境•软件工程=工程管理+开发技术•1983年B.W.Boehm提出了软件工程的七条基本原理:–分阶段按计划严格管理;–坚持进行阶段评审;–严格实施的产品控制;–采用现代程序技术;–结果应能清楚地审查;–开发小组的成员应该少而精;–承认不断改进软件工程的必要性。•瀑布式开发流程,迭代式开发流程什么是软件工程?软件项目面临的问题和困境•以是否达到PCTS目标为衡量的标准•Performance绩效•Cost成本•Time时间•Scope范围•四种类型的失败•未达到目标•出现不希望得到的负面效应•设计失败•目标不核实•衡量成功的三要素•按承诺提交可交付的成果•按承诺获得结果•满足干系人的期望软件项目成功和失败的定义•幸福的家庭都相似,不幸的家庭各有各的不幸--托尔斯泰•软件项目刚好相反——成功的项目可能各有各的原因,但失败的项目,却总是有些相似的问题软件项目面临的问题和困境•两难境地crunchmode–处于“两难境地”的项目面临着无法达到最初目标的威胁,而项目团队在努力想要跨越该困境。•死亡行军deathmarch–当项目成员发现自己不得不参与到一个项目中,又不得不通过超常的努力和超长时间的工作才能完成那些不合理目标•失控outofcontrol–因为对项目结果期望太高,时间要求太紧,所以从项目开始就呈现出“两难境地”;随着项目的进行,项目参与者很快发现自己在进行“死亡行军”,正在设法实现越来越不可能实现的目标;当项目明显成功无望、多个方面都已失败时,该项目就成为“失控”项目了软件项目失败的历程软件项目面临的问题和困境•项目目标不清晰–需求过多,系统过于庞大;–需求不稳定,用户无法决定他们真正想要解决的问题;–需求模棱两可–需求不完整•盲目的评估和计划–过低地估计项目的难度–过高地估计团队的能力–不切实际的计划•缺乏或根本不具备项目管理经验和方法–唯技术论–以资深技术人员代替项目管理人员•团队中缺少高素质资深人员•无法满足性能和可靠性要求导致软件项目失败的因素软件项目面临的问题和困境•项目立项是否来自于科学的决策?–目标清晰–必要性•是否做了可行性分析?–项目效益分析–人员和资金保障–政策和制度保障–实施和运维保障–风险分析•是否做了项目规划?–初始目标和终极目标的定义–项目范围的界定–项目建设周期–实施的组织架构及角色职责的定义–项目的后续发展计划软件项目成功的保证-甲方(1)软件项目面临的问题和困境•是否选择了合适的承建商?–承建商实施团队的技术实力和管理水平–承建商对项目的理解程度–项目费用及支付方式是否合理–承建商对项目费用的安排是否合理–承建商对项目进度的安排是否合理–承建商是否明确了项目经理的职责、权利•是否与承建商建立了通畅的沟通渠道?–与公司管理层的沟通–与项目经理的沟通–项目团队与业务部门的沟通软件项目成功的保证-甲方(2)软件项目面临的问题和困境•是否对项目有足够的掌控?–在合同中明确了项目验收的标准–项目经理提交明确的实施方案(包括实施计划)–汇报机制的建立–监督检查机制的建立–项目进度的检查–项目文档的审查–阶段性成果审查•是否达到质量控制的要求?–配合项目团队完成对需求分析的确认–组织业务专家和终端用户完成阶段性成果的确认(原型DEMO、子模块各阶段性版本)–项目经理提交明确的测试方案(功能测试和非功能性测试)–组织业务专家与项目团队一起编制功能性测试用例–组织业务人员与项目团队一起完成集成测试–收集终端用户在试运行过程中提出的问题软件项目成功的保证-甲方(3)软件项目面临的问题和困境•是否能顺利实现项目的移交?–检查源代码的可维护性–检查培训的内容和效果–系统管理员掌握了软件系统的管理方法–项目经理提交了应急预案•项目验收的依据是否充分?–项目经理提交了完整的验收材料–验收材料中包括合理的验收依据–验收材料中包括能真实反映质量缺陷状况的证据–项目经理提交的项目总结报告软件项目成功的保证-甲方(4)软件项目面临的问题和困境•明确有没有能力承接该项目–充分理解了项目的建设目标和范围–有足够的技术实力–能将成本控制在项目经费以内–能达到时间进度要求–有足够的人力保障–能接受付款的周期–项目可能的风险均在控制之内•合理配置项目团队–具备技术能力和管理能力的项目经理–能处理甲方关系的市场人员–项目成员角色职责定义:业务分析员(商业建模)、需求分析员、架构设计员、系统分析员、开发组、测试组、配置管理员、文档管理员。。。软件项目成功的保证-乙方(1)软件项目面临的问题和困境•有效的项目团队管理–建立了完善的沟通机制–项目经理及团队成员均充分理解了项目的范围和需求–项目团队成员对自身的岗位职责认识清晰–建立了新人培训机制–建立了冲突化解方案•项目管理–制定项目计划:项目范围管理计划、质量管理计划、进度管理计划、人员管理计划、费用管理计划、风险管理计划等–制定项目实施方案–制定切实可行的整体进度计划,充分考虑项目的不可控因素–跟踪进度、变更、风险、缺陷–制定项目开发管理规范软件项目成功的保证-乙方(2)软件项目面临的问题和困境•准确把握需求–完整的需求不是甲方责任–需求调查:基于用户故事(Story)的FF(FactFinding)–需求研究:对FF进行分析,考虑整个工作流程是否合理,如何才能够达到项目的目标,从如何达到项目的目标来决定项目的需求,潜在的需求–需求分析:考虑什么样的功能能够让用户更有效地达到目标–需求确认:需求分析说明书,用户和开发人员均认可的质量标准–需求的测不准原理-没有需求变更的项目不存在,没有完美的需求分析说明书-持续性的用户参与•系统架构设计–采用合理的技术路线–对系统进行切割,明确模块的功能点–定义接口标准(系统内、系统外)–理清项目技术瓶颈和技术难点-“墨菲定理”。–避免成为新技术的牺牲品软件项目成功的保证-乙方(3)软件项目面临的问题和困境•提高系统的可视化程度–寻找关键流程-二八原则–快速原型法–分阶段实现–阶段性成果的用户确认•详细设计–详细设计是软件思想的体现–把握详细设计的度--详细设计是成果而不是结果–注重内容而不是形式–图往往比文字更说明问题–优良的界面设计能减少代码的复杂度–质量与复杂度的几何级数成反比–异常情况的处理往往比正常情况复杂得多软件项目成功的保证-乙方(4)软件项目面临的问题和困境•编码实现与单元测试–合理地安排开发进度--功能点测算、代码行预估–编码人员的素质与产品的质量成正比–代码注释与产品的可维护性成正比–测试驱动–持续集成–代码检查Review•功能性测试与非功能性测试–编写全覆盖的功能测试用例–用户参与-用户往往能比测试人员发现更多的问题–压力测试、并发性能测试、破坏性测试、系统兼容性测试、安全性测试软件项目成功的保证-乙方(5)软件项目面临的问题和困境•其他问题–文档管理–需求变更管理–配置管理–定期总结分析–灾难的应急预案软件项目成功的保证-乙方(6)咨询监理在软件项目中的作用•信息化咨询–信息化技术咨询–软件发展趋势咨询–企业信息化发展规划–信息化标准制定–信息化管理规范制度•软件咨询–软件产品选择–软件产品提供商选择–软件开发技术咨询–软件开发流程咨询–软件项目可行性研究–软件项目规划–软件项目需求分析–软件项目绩效评估技术方面的作用咨询监理在软件项目中的作用•协助甲方–质量管理–进度管理–投资控制–变更控制–风险控制–合同管理–文档管理•协助乙方规范化项目管理方面的工作•协调甲乙双方的关系管理方面的作用咨询监理的方法和措施•解析甲方的业务需求,领域需求•建立业务模型•以商业的角度分析甲方的业务需求•以技术的角度分析需求实现的技术难度、关键技术、技术瓶颈等•以管理的角度分析实施项目所需的人员组织架构和管理制度的调整•从投资的角度分析资金预算及用途•完成软件项目的产品规格定义•编写项目可行性报告--做与不做的问题•编写项目建设规划--人员组织、进度计划、关键控制点等•编写项目范围说明书--做什么的问题•市场调研,寻找合适的解决项目准备阶段--明确项目目标咨询监理的方法和措施•寻找合适的软件开发商,考察开发商的背景、实力和类似项目经验•与备选软件开发商交流项目情况,使软件开发商充分了解项目的建设目标和内容及项目重难点•评估项目的合理费用范围•协助甲方编制招标文件:重点内容-项目性质、技术要求、质量要求、工期要求、培训要求、验收要求、报价要求、投标人资质要求、投标文件编制要求、评标标准、合同主要条款。•协助甲方评标,在费用预算内选择最为合格的投标人•如无合适的合作对象,则建议甲方对项目建设目标进行调整招投标阶段--选择合适的合作对象咨询监理的方法和措施•协助甲方签订有利于项目顺利完成的合同•审核项目经理授权文件•建立三方沟通机制•制定项目管理规范•审核乙方提交的实施方案•审核乙方项目管理计划•评估项目经理技术和管理能力•评估项目团队组织架构和总体实力启动阶段--考察实施团队的技术和管理水平咨询监理的方法和措施•审核乙方提交的需求分析计划和调研信息采集表•协调乙方访谈、调研工作•跟踪乙方调研,对调研的流程、方法、结果给予质量评估•审核乙方提交的需求分析成果•跟踪需求确认效果•协调甲方对需求分析成果确认,使之成为验收的依据需求阶段--使需求尽可能准确咨询监理的方法和措施•审核乙方提交的系统架构设计书,重点为模块划分是否合理、功能点(FP)与需求的吻合度、接口设计的规范性、关键业务流程和阶段性里程碑划分的合理性等•审核乙方提交的详细设计书,重点为功能实现与需求的吻合度,界面风格的一致性,用户界面的友好性等•审核乙方提交的开发计划,分析工作安排的合理性•检查代码规范,包括命名规范、代码的可读性、代码注释等•跟踪项目进度,分析项目进度偏离原因•检查乙方是否对代码和文档进行了有效的管理•检查乙方已经提交的代码是否经过的单元测试,单元测试是否达到了代码行覆盖度要求•协助甲方对提交的阶段性成果的检阅REVIEW和确认工作•协助甲乙双方评审需求变更的可行性,按规范流程实现变更实现阶段--把控质量和进度咨询监理的方法和措施•审核乙方提交的部署方案•审核乙方提交的测试方案和计划•协助甲方业务骨干和乙方技术人员编写功能测试用例,检查测试用例是否达到了全覆盖要求,包括异常处理流程•检查乙方是否有合适的缺陷跟踪手段•跟踪乙方的测试工作•审核乙方提交的功能测试报告,重点是真实性,采
本文标题:咨询监理在软件项目中的作用
链接地址:https://www.777doc.com/doc-769414 .html