软件工程软件项目立项终
第三部分项目管理 第第8 8章章 软件项目立项软件项目立项 【案例8】 通过对前面知识点的了解和学习,就“学籍管理系统”进行进行项目分析。 【知识导入】 8.1 8.1 软件项目立项方法软件项目立项方法 立项和结项分别是软件项目的头和尾,应该做到有始有终。良好的开端是成功的一半, 为了避免项目失败,首要任务是做好立项管理。立项的主要目的, 是通过规范化的流程,判 断并采用符合企业根本目标的立项建议, 提供合适的资金和资源, 使立项建议成为正式的项 目。反之,拒绝不能给企业带来利益的软件项目立项建议,避免造成资源的浪费。 立项的具体表现形式,就是在市场调查研究的基础上,分析立项的必要性(是否有市场 前景)和可能性(是否有能力实现),并具体列出系统的功能、性能、接口和运行环境等方面 的需求,当前客户群和潜在客户群的情况, 以及投入产出分析, 然后再按照编写参考指南书 写立项建议书,并对它进行评审,评审通过后才算正式立项。 软件项目的立项是软件项目正式启动之前的一系列活动,其流程分三个阶段:立项建议 阶段、立项评审阶段和项目启动阶段。 1、立项建议阶段 (1)成立立项建议小组 由该小组实施立项的所有活动。 (2)立项建议小组进行产品构思 需要从宏观角度出发,搞清楚“开发什么”、“怎样开发”、“如何盈利”等大问题, 具体包括:软件项目的主要功能,开发技术方案,哪些部分应当采购、外包或者自主研发, 开发计划,市场营销计划等。产品构思的内容应写入《立项建议书》。 (3)进行立项调查和可行性分析 立项调查的目的是为产品构思和可行性分析提供充分的、有价值的信息,应遵循客观真 实的原则,不可主观臆断,所获取的数据、图表等要真实并且有据可查,不可凭空捏造。立 项调查的内容主要包括: 市场调查、 政策调查、 同类产品调查、 竞争对手调查、 用户调查等, 可通过搜查相关信息资料、 与用户交谈、向用户群发放调查问卷、 与同行及专家交流等多种 方式来完成。最后将有价值的信息系统地分析、归类,形成《调查报告》。 可行性分析的主要目的是通过各个方面的分析,判断《立项建议书》中的建议是否能真 的实现、成功的可能性有多大、值不值得立项,其宗旨是为决策提供有价值的证据和结论。 可行性分析一般包括市场可行性分析、政策可行性分析、技术可行性分析、成本效益分析、 SWOT分析几个要素。立项建议人和评审双方都需要做可行性分析。 (4)撰写相应文档并申请立项 形成并完善《调查报告》、《可行性分析报告》、《立项建议书》等相关文档,递交给 有决策权的机构领导,正式申请立项。 立项就是决策,IT企业的决策必须按照决策程序进行。没有决策程序就要先制定决策程 序,不能一个人拍脑袋定决策。 立项建议书的目的,就是在某种程度上代替开发合同或用户需求报告,作为软件策划 的基础。 立项建议书的编制者一般不是软件开发人员,而是软件公司的市场销售人员,因为他们 对市场行情及客户需求熟悉, 所以在此给出它的编写参考指南, 对市场销售人员和软件策划 人员都会有帮助。 2、立项评审阶段 (1)评审准备 机构领导根据项目特征组织立项评审委员会,一般由机构领导、各级经理、市场人员、 技术专家、财务人员组成,并确定主席。委员会按少数服从多数的原则投票决定是否同意立 项。主席确定评审会议的时间、地点、设备和参加人员名单,准备相关材料。 (2)举行评审会议 立项建议小组陈述《立项建议书》的主要内容,评审委员会提出疑问,立项建议小组进 行答疑。双方应对有争议的内容达成一致的处理意见。 (3)评估 每位评审委员根据《立项评审检查表》进行项目评估。 (4)评审会议决议 评审委员会给出评审结论和意见,按少数服从多数的原则投票决定是否同意立项。一般 来说, 如果半数以上的评委反对立项, 则评审结论为 “不同意立项” ; 反之则评审结论为 “同 意立项”。 (5)机构领导终审 如果机构领导的终审结论与评审委员会的结论一致, 则机构领导和评审委员会共同分担 立项评审工作的责任。 如果机构领导的终审结论与评审委员会的结论相反, 同时机构领导可 以行使“一票否决权”,则机构领导应当对立项评审工作负全部责任。 3、项目启动阶段 (1)启动准备 在项目的立项和核准后,应按计划开展相应的筹备、启动工作。建立项目管理制度,包 括项目考核管理制度、项目费用管理制度、项目例会管理制度、项目通报制度、项目计划管 理制度等、项目文件管理制度等。同时准备、整理项目启动会资料。 (2)召开项目启动会议 项目启动会议的任务包括:阐述项目背景、价值、目标;项目交付物清单;项目组织结 构及主要成员职责介绍; 各方人员彼此认识,清楚各个层次的结构;项目初步计划与风险分 析;项目管理制度;项目将要使用的工作方式。 (3)任命项目经理 完成该软件项目经理及各级负责人的任命。 项目启动后,立项工作基本完成。其后应制定详细计划,定义各阶段的目标及其所需的 资源。项目组根据计划来执行任务, 同时定期监督和测量项目的进展, 来判断项目实际的执 行情况与计划的差异,如果需要还应该采取纠正措施,直到确定项目可以正式收尾结束。 8.2 8.2 软件项目规模成本估算软件项目规模成本估算 在作软件项目计划时,估算是所有其它项目计划活动的基石,是非常重要的一项工作。 无论是进行可行性分析, 还是进行项目预算,还是根据用户的需求进行软件项目报价, 都需 要对项目进行规模或成本的初步估算。 由于软件项目往往存在某些不确定性、 可见性差、定 量化难, 因此很难在项目完全结束前准确估算出开发该项目所需要的工作量和费用。 通常管 理者可以根据以往开发类似软件的经验、 有用的历史信息、 足够的定量数据来进行规模成本 估算,也可将软件项目划分成若干个子系统或按照软件生存周期的各个阶段分别估算其成 本,然后汇总出整个软件的成本。 估算本来就是带有风险的活动。项目的复杂性、规模、结构化程度,项目参加人员的经 验,历史信息的有效性等,都能影响估算的风险。项目的复杂性越高,估算的风险就越高。 同时随着软件规模的扩大, 软件相同元素之间的相互依赖、 相互影响程度也迅速增加, 造成 估算时的问题分解也变得更困难。 对完成一个软件项目所需的资源进行估算,包含的内容有最基本的资源——人力资源, 以及用以支持软件开发的工具——硬件资源和软件资源。 对每一项资源都应指明当前资源的 描述、资源的有效性说明、资源在何时开始需要、 使用资源的持续时间四个特征。软件成本 和工作量的估算一般很难精确作出,因为人、技术、环境、政治等因素都会影响软件的最终 成本和开发的工作量。但是,软件项目的估算还是能通过一系列系统化的步骤, 在可接受的 风险范围内提供估算结果。 1、基于任务分解的估算 当一个问题过于复杂时,可把它进行分解并分别解决每一个子问题。最后将这些子问题 的答案综合起来,从而得到原问题的解答。对软件项目而言, 在大多数情况下,规模和成本 的估算非常复杂,要一次性解决比较困难。 因此,可通过任务分解的方式首先进行可控的子 问题的估算。 估算技术一般有代码行(LOC)和功能点(FP)估算法,这是两种不同的估算技术,但有许 多共同特性。 项目计划人员首先给出一个有界的软件范围的叙述,