软件开发项目管理与CMM第一篇第一章软件项目初始主讲教师:李晋1本章要点一、项目立项二、合同项目三、项目授权四、项目生存期五、案例分析2IT项目论证涉及以下内容•为什么要实施该项目?•本项目的产品的市场需求如何?•项目的规模有多大?•项目中将要采用的IT技术如何?是否有生命力?•实施该项目需要多少人力、物力和财力?条件是否具备?3软件项目启动顾客顾客需求满意产品输入输出产品实现甲方4项目立项明确项目的目标、时间表、项目使用的资源和经费,而且得到执行该项目的项目经理和项目发起人的认可.5MakeorBuy决策Make-or-Buy决策,确定待开发产品的哪些部分应当“采购”、“外包开发”或者“自主研发”。6MakeorBuy决策实例•如果选择自己开发软件的策略,公司需要花费¥25,000,根据历史信息,维护这个软件每个月需要的费用是¥2,500。•如果选择购买软件公司产品的策略,需要¥17,000,同时软件公司为每个安装的软件进行维护的费用是每月¥2,700。7MakeorBuy决策实例自制方案购买方案成本差异自制需要25000美元购买需要17000美元制造差异是8000美元每月的费用2500美元每月的费用2700美元服务差异200美元解决方案自制方案可以承受的月份数:8000/200=40如果软件的生存期在40个月以内,可以选择购买方案.如果软件的生存期不在40个月以内,可以选择自制方案.8MakeorBuy决策9软件项目启动顾客顾客需求满意产品输入输出产品实现甲方乙方10项目立项•内部项目•合同项目11本章要点一、项目立项二、合同项目三、项目授权四、项目生存期五、案例分析12技术合同概念技术合同是法人之间、法人和公民之间、公民之间以技术开发、技术转让、技术咨询和技术服务为内容,明确相互权利义务关系所达成的协议。13合同的生存期合同准备合同终止合同管理合同签署14甲方合同初始1.合同准备2.合同签署3.合同管理4.合同结束151、合同准备招标书定义(采购需求定义)供方选择合同文本准备161.1、招标书定义需求定义商务条件确定验收标准确定资料汇集采购需求认可编写招标文件需方申请招标文件171.2、乙方选择过程招标收集乙方的建议书评定乙方最终乙方确定招标文件乙方名单投标书18软件项目招投标软件企业编制、准备项目投标书需要花费很多时间且消耗成本,因此需要软件企业进行投标决策。决策时要考虑以下内容:•竞争对手分析。•风险分析,项目有否来自技术或资金方面的风险?•目标分析,本项目与你企业的经营目标一致吗?•声誉与经验分析。•客户资金分析。•投标书所需资料分析。•项目所需资源分析。•客户本身的资信问题,包括了解客户的实力、回款能力、需求相对准确性。企业投标的目标:拿下项目,签定合同。如果屡战屡败,会损坏企业的声誉。19软件项目投标书项目投标书一般依据客户的RFP(需求说明书)编写,主要内容和格式:⑴技术部分•理解问题•提出解决方案•论述客户的收益⑵管理部分•工作任务描述•交付(产品)清单•项目进度计划•项目组织•相关经验•设备和工具(一些招标客户会要求投标方使用专门的设备和软件及测试工具等)⑶成本部分•人力资源成本、设备报价清单及设施租金、支撑系统清单•数据资源购买、管理及差旅费、不可预测费用•培训与维护服务费•税金201.3、合同文本准备合同草案制定合同草案评审合同草案修订合同草案确认采购资料合同草案212、合同签署谈判日程确定合同草案提交合同条款协商合同签署文本确定合同签署文本审阅合同签署合同草案合同签署文本任务书下达任务书任务书任务书Projectcharter22乙方合同初始1.合同准备2.合同签署3.合同管理4.合同结束231、合同准备项目分析竞标合同文本准备241.1、项目分析需求管理者确定需求分析需求分析评审项目规模估算项目初步实施规划初步实施规划评审需求分析报告项目分析任务书招标书项目初步计划项目风险分析251.2、竞标技术能力要求确定人力资源要求确定实现环境要求确定企业能力判定评估结果评审能力评估结果需求分析报告项目计划需求成熟度评估用户支持保证评估用户资金保证评估项目决策编写项目建议书项目建议书可行性分析参加竞标资金、管理要求确定261.3、合同文本准备合同草案制定合同草案评审合同草案修订合同草案确认采购资料合同草案272、合同签署谈判日程确定合同草案提交合同条款协商合同签署文本确定合同签署文本审阅合同签署合同草案合同签署文本任务书下达任务书任务书任务书Projectcharter28内部项目企业内部项目实施的核心是确定任务范围和相关各方进行有效地配合。这将通过相关各方之间的协议来调整。因此,在内部项目实施中,仅仅在合同签署过程中定义了一个协议签署过程。此处协议可视作为“合同”,但无特别的商业约束。其它方面可参考甲乙方的过程。企业内部项目说明企业是甲方角色,项目需求来源于企业内部。若需将项目交给其他方(乙方)时,应编写招标书;否则无需招标,需要定义讨论形成软件需求文档。29构建一个信息系统将涉及5个方面的工作•硬件系统环境设计,包括网络环境的设计、施工、设备选型、采购计划和兼容性等方面的内容。•为客户设计软件系统的方案,选择系统软件,更重要的是选择或开发应用软件系统。•帮助客户规划和整理它的数据资源并应用于其软件系统中。•与客户一道,建立其信息系统的运行规则,并组织知识体系。•为了建设一个让使用者满意的信息系统,项目的实施者与项目的使用者之间要进行不断的沟通,从项目开始到项目结束。30本章要点一、项目立项二、合同项目三、项目授权四、项目生存期五、案例分析31项目章程(ProjectCharter)确认项目存在的文件,包括对项目的确认、对项目经理的授权和项目目标的概述等。项目章程实例32项目章程包括下列要素•项目的正式名称。•项目发起人及联系方式。•项目经理及联系方式。•项目目标。•关于项目的业务情况(项目的开展原因)。•项目的最高目标和可交付成果。•团队开展工作的一般性描述。•开展工作的基本时间安排(详细时间安排在项目计划中列举)•项目资源、预算、成员以及供应商。33IT升级项目的项目章程项目题目:IT升级项目项目开始时间:2008.3.10项目结束时间:2008.5.15项目经理:赵强,Zhaoqiang@163.com项目目标:根据新的企业标准对企业所有人员的软件硬件进行升级,新的标准见附表。升级可能影响服务器和一些计算机以及一些网络的软硬件。软硬件的费用300万元,人工成本为20万。建议方式方法:升级数据库目录做详细的成本估算,然后上报获取软件硬件报价尽可能用内部的人员参与项目-------------------------------------------------------------------------------------------------------------------------------------------------------人员角色职责-------------------------------------------------------------------------------------------------------------------------------------------------------赵强项目经理规划、监控项目王立质量经理负责项目的质量江明技术经理负责技术章溢系统支持负责产品的所有系统、网络韩斌采购经理负责采购软硬件----------------------------------------------------------------------------------------------------------------------------------------------------------签字:XXXXXX注释:XXXXXXXXXXXXXXXXXXXXXXX34项目经理的角色1.项目组织的领导者2.项目组织的管理者3.项目组织的决策者4.项目组织的分析者5.项目组织的计划者6.项目组织的控制者7.项目组织的组织者8.项目组织的评价者9.项目组织的协调者35项目经理的责任1.开发计划2.组织实施3.项目控制36本章要点一、项目立项二、合同项目三、项目授权四、项目生存期五、案例分析37建筑工程类项目典型生存期模型38制药项目典型生存期模型39生存期模型选择ProductrealizationInputOutputProductCustomerRequirementsCustomerSatisfaction40软件生存期模型软件开发的一种框架。说明了软件的活动和进行软件开发的过程。这个模型可以是以活动为中心,可以以产品为中心的。41软件生存期模型特征描述了开发的主要阶段定义了每一个阶段要完成的主要过程和活动规范了每一个阶段的输入和输出提供了一个框架,可以将必要的活动映射到该框架中。42软件生存期的重要性•采用优良的项目生存期模型和经过证明的软件过程都是建立软件开发环境的必备条件。•项目生存期确定了项目的开始和结束。•项目生存期提供了软件开发项目实施的指南,影响项目的进度和成本。选择生存期模型,其实是选择一个开发策略。43常用生存期模型瀑布WaterfallV模型V-shaped原型Prototyping增量Incremental螺旋式Spiral快速应用开发RAD渐近式阶段44软件产品的生存期:⑴产品调研(可行性研究)⑵产品批准(协议或合同)⑶需求调查研究⑷设计⑸开发⑹测试⑺交付⑻批量生产⑼维护⑽升级⑾淘汰软件项目的生存期:⑴项目调研⑵项目批准(协议或合同)⑶需求调查研究⑷设计⑸开发⑹测试⑺交付软件产品生存期和软件项目生存期是不一样的:45软件生存周期过程管理的主要阶段•选择合适的软件生存周期模型•标识和定义生存周期的任务,即创建软件生存周期•建立管理和技术上的软件生存周期过程•整个周期内对生存周期过程的管理46生存期模型介绍•定义•特点•使用指南•适合的项目类型47瀑布(WaterFall)model需求分析设计实施测试维护48WaterFallmodel特点•简单易用,直观。•开发的进程一个顺着一个,•没有反馈过程•需要严密控制。•允许基线和配置早期接受控制•一个新的项目不适合这个模型。•用户直到项目结束才能看到质量如何•不允许或者限制变更49WaterFallmodel使用指南•开发前的过程–系统概念开发和系统配置开发•开发过程–需求过程–设计过程–实施过程•开发后的过程–安装过程–支持过程–维护过程–抛弃过程50WaterFallmodel适合的项目•项目的需求在项目开始前很明确•解决方案在项目开始前也很明确•类似的项目如:–公司的财务系统–库存管理系统–短期项目51V模型接收测试集成测试系统测试项目规化需求分析总体设计52V模型特点•简单易用•强调测试过程与开发过程的对应性和并行性•没有反应出来实际的开发过程一个项目50%以上的时间花在测试上,V模型体现了全过程的质量意识。53V模型模型适合的项目•项目的需求在项目开始前很明确•解决方案在项目开始前也很明确•对系统的性能安全很严格的项目•类似的项目如:–航天飞机等–公司的财务系统•实例54V模型使用指南•严格按照顺序进行开发•注意开发过程和测试过程的并行性55原型Prototype•定义:图示()56Prototypingmodel特点•在需求定义之前,需要快速构建一个系统。•根据构建系统的优缺点,用户给开发人员提出反馈意见。•根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求。•减少各种假设以及风险。57Prototypingmodel使用指南•用户和开发人员根据初始需求共同开发一个项目规划•用户和开发人员利用快速分析技术共同定义需求和规格•设计者构建一个模型•设计者演示这个模型,用户来评估性能•标识问题,然后用户和设