软件开发项目管理概述第1页共26页一、目的1.明确项目团队的管理和沟通流程,改善团队耦合性能。2.部门内全面实施团队式管理机制,发挥广大员工各自的潜能,激励员工共同参与团队建设与发展。3.使项目管理实现质量、资源、时间等要素的可控化。4.规范项目开发管理,提高项目开发质量,提高工作效率,降低软件开发风险。5.建立一套适合公司实际情况且又实用的有机管理体系。6.为公司发展做好基层管理基础,为员工的发展提供有利的软环境保障。二、原则1.体现项目团队理念。2.实用性。3.有机性。4.共同发展。三、组织结构1.约束条件1)该项目管理和控制机制仅仅是用于全过程型和功能增加型软件开发。2)该项目管理和控制机制必须与公司当前的发展状况、资源状况相匹配。2.假定环境1)公司具有一定的多项目同时开发的实力。2)公司拥有几个能够带领项目开发的人员。3)公司有能力组织测试和完备的文档管理。4)公司有能力组织软件质量测评和监管。5)公司软件部门管理为项目软件主管、项目团队式,且项目软件主管对各项目团队具有监控权和工作质量跟踪权。6)部门内有明确的岗位责任分工基础。7)公司内有一批具有一定项目管理基础,能够带领人员完成项目开发的人才。软件开发项目管理概述第2页共26页3.组织结构1)整体组织架构说明:该结构为行政式结构,对于系统分析人员和软件工程师、开发人员都在项目团队或无项目员工的队列中。专职维护暂为预留组织。2)项目组内实行团队式组织结构a)每个项目组都是一个项目团队,具体称谓:angel项目团队。b)一个项目团队要由以下几个基础机构组成:项目经理;软件总体设计工程师;开发人员;注:如果项目较小时可以进行机构合并,如项目主管、系统分析可以合并为一人来做。如果项目运做前期需要时,还可以一人担负整个项目,但仍可以依据流程和控制机制来开展工作。总体设计工程师和系统分析员在项目运做前期可能同时负责多个项目,即一个项目的系统分析员或总体设计工程师完成其所担负的任务后(交付所有文档和完成对开发人员培训后)可能转做另一个项目。c)机构内部领导模式为:民主式领导模式(项目经理与软件系统分析员、总体设计工程师以及程序编码人员之间的关系是一种民主式方式,是同一个团队的不同成员,仅存在职能、职责的分工不同,没有高低贵贱之分,严禁摆资格和论权利等级。)。项目组项目组项目组项目经理项目经理助理项目总工程师测试组项目组维护组软件开发项目管理概述第3页共26页3)项目软件主管a)由公司指定或员工选举方式产生,负责部门内关于项目的所有工作。b)项目软件主管直接领导软件测试组对当前软件实施测试监督。c)项目软件主管在部门内同样实行团队式管理,不许以感情用事对其他成员有偏袒之意、打击之心,如有发现其他相关成员可以直接向公司总经理管理层上诉。一定数量的测4)项目sponsor由公司于总担任此角色,主要负责对项目大方向的把控,及负责项目的外部协调沟通工作以及,在物资设备及人文方面给予项目大力的支持。5)最终决策层由公司的质量管理与项目主要负责人负责审议工作,公司领导决策小组负责最终决策。4.职权、职能1)项目经理a)负责本项目团队的组织与协调等管理工作,对项目的开发负有直接的领导责任。b)负责项目计划的制定与跟踪。c)带领项目团队千方百计完成项目开发的目标。d)负责项目团队内部的沟通和冲突的尽早发现与调解。e)负责与项目团队外部其它部门或组织的沟通工作。f)负责组织相应技术人员完成技术攻关。g)在紧急时刻或遇到疑难问题时要身先士卒,稳定团队成员的情绪,然后想方设法解决问题。h)负责项目发展中的控制工作,能及时发现差异并提出合理解决方案,而且还要依据公司规定的流程向项目软件主管或公司按时汇报工作。同时,还要向团队内部成员汇报工作。i)负责项目内部创新的组织工作。j)负责项目团队的优化和人员发展。k)负责项目团队内与用户进行协调、争取用户满意与支持的工作。2)软件系统分析员a)负责开发项目的调研工作。b)负责系统开发中的需求分析和需求管理。软件开发项目管理概述第4页共26页c)与总体设计工程师一同完成总体设计。d)负责向其它技术攻关人员、编码人员、系统测试人员等解答有关系统分析性问题。e)负责审核系统测试人员的测试方案。f)负责发现分析错误后对分析的调整。g)负责向管理机构汇报系统分析和设计结果。h)负责系统分析中的创新工作。i)对系统分析的结果负有直接责任。j)负责监督项目安排工作的合理性。3)总体设计工程师a)负责开发项目中的技术攻关性工作。b)与系统分析员一同完成总体设计。c)负责进行模板、控件设计和详细设计。d)负责对其它编码人员的技术答疑。e)负责监督系统分析和总体设计的正确性。f)对系统开发中的技术性工作负有直接责任。g)负责部分难度较大的编程工作(如接口性程序的开发和后台的大部分编码)。h)负责技术创新工作。i)按工作计划完成本职开发任务。j)修改系统开发中测试人员检测到的编码错误。k)负责监督项目安排工作的合理性。4)程序编码人员a)负责依据详细设计,按计划完成系统的编码任务。b)负责编写自己负责开发内容的详细设计。c)对自己所负责开发内容的详细设计和相关代码负有直接责任。d)负责监督系统分析和总体设计的正确性。e)负责项目内部工作的创新和优化建议。f)修改系统开发中测试人员检测到的编码错误。g)负责监督项目安排工作的合理性。5)软件测试员a)在项目软件主管的统一领导下完成针对每一个项目的及时测试。b)每一位测试人员对自己所担负的测试任务具有直接责任。c)对所测试出的问题软件测试员有权要求开发人员调整程序(到满足软件相应的标准为止)d)项目软件测试人员必须依据测试计划和相应的编码规范、详细设计规范、软件测试报告等进行严格测试,决不许粉饰太平。e)依据测试报告和系统的总体设计说明书,设计相应的测试案例,并依据案例完成测试。软件开发项目管理概述第5页共26页6)项目软件主管a)项目软件主管对项目团队的运行质量具有领导责任、对部门建设具有直接责任。b)负责阶段性检验各项目小组的工作情况。c)对于各项目小组的进度和差异情况和差异处理向公司管理小组汇报。d)负责协助各项目小组解决遇到的问题。e)负责各项目小组的人事组织安排,对项目组及其成员具有调配权。f)项目软件主管直接领导软件测试组对当前软件实施测试监督。g)项目软件主管发现不合格的项目管理或项目产出品时,有权责令相关人员给予调整直至达到相关标准。h)负责协调各项目小组的其他非开发性工作。7)质量管理与发展委员会8)决策小组a)负责立项审批、项目奖金确定和其它重大事项的审批。b)负责阶段性的检验项目软件主管和各项目小组的工作情况。c)负责考核各开发机构的工作绩效。d)由公司赋予的其它管理职能。软件质量管理与发展协会1.制定公司软件发展方向。2.审议并决定重大软件项目。3.评审各软件需求分析结果。4.评审各软件总体设计结果。5.评审各软件详细设计结果。6.评审各软件编码设计结果。7.评审各软件测试实施结果。8.各软件项目过程总体评价。9.研究软件相关企业的管理状况与方向。10.组织相关部门人员实施业务培训。软件开发项目管理概述第6页共26页四、立项流程1.系统方案和需求书写由系统分析员、项目经理和主管等负责书写公司对外的方案设计和需求调研、系统分析。2.立项前提当系统的需求分析一经确定,证明软件的项目边界已经明确,因此可以进行项目计划和立项工作。3.立项流程图4.立项流程说明需求分析结果评审包括两部分:用户评审、质量管理与发展委员会评审。对于愿意合作性项目在立项前要有用户和质量管理与发展委员会的两方评审签字。对于不愿提供合作的项目在立项前要质量管理与发展委员会的评审签字。市场运做方案设计系统调研需求分析需求分析结果审核通过?NoYes编制项目任务书Yes立项完成准备开发开始财务进行成本核算基本确定?Yes结束No需求调整公司领导小组审批通过?不能做结束调整软件开发项目管理概述第7页共26页项目软件主管或项目经理负责制定项目任务书,任务书编写完成后送交财务和公司领导小组各一份。财务依据项目任务书进行成本分析,并形成一份项目成本预测表送交公司领导小组。公司领导小组再综合各方意见确定是否能够立项,如能够通过还要依据公司的项目奖金产生制度填写上项目奖金总金额。如:软件合同金额x##.##%再与天数、难度等结合。5.立项书内容与格式软件项目立项书编写人:编写时间:No.项目名称提出单位、个人最迟开始年月日需求分析人员项目团队:团队成员职能预定工作量(天)备注其他资源:名称配合方式备注系统预计完成时间:项目过程预计天数误差(±X天)确认签字团队组建与项目计划项目准备工作总体设计详细设计与编码系统组装与测试其他过程合计时间项目奖励总金额项目三要素优先级质量时间资源123项目创新/攻关得分项其他得分项软件开发项目管理概述第8页共26页6.立项书说明1)项目奖励总金额,由公司领导小组或财务等部门根据相关政策计算、确定并填写的。2)具体奖金额度要通过项目奖励办法实际分配,项目奖励办法根据项目三要素的分数确定。3)项目实际奖励=总金额×[质量得分比例+时间得分比例+资源得分比例(+项目创新/攻关得分比例)+其他得分比例]。4)在整个三要素中要选择最重要要素(在最重要栏打√):质量、时间还是资源,然后依据各要素的重要程度来分配三要素的占分比例。5)在项目运行中如需达到某种特殊目的(如:科技攻关),且这样可以达到较良好的目的,这时可以由项目组向项目软件主管申请,项目软件主管根据事情影响大小确定是否申请修改项目时间和资源情况、是否要修改项目奖励。6)在项目运做中如发生特殊的不可抗拒性因素,则可以向领导小组申请特殊算法。7)建议在项目任务书制定完成后,按档编写一个项目各档奖励分配状况,依次鼓励员工发挥各自的潜能。五、下达任务流程1.任务下达流程图质量时间资源项目任务公布由有能力承接该项目的团队参与抽签决定。由项目软件主管与项目经理协调决定。组建项目团队、制定项目计划和做项目准备项目启动软件开发项目管理概述第9页共26页2.任务下达流程说明1)项目任务书经公司领导小组签字确认后证明立项完成。2)立项完成后的任务书向软件部全体项目经理公开发布。3)按最迟开始时间,当前没有项目或有能力负责两项任务的项目经理有权申请开发。4)如申请人员大于两人时,公司可以采用抽签决定的方法,确定开发负责人。5)如没有人员申请时,则由项目软件主管与有能力的项目经理协商确定。6)如因奖励和项目期限而使协商仍不能确定时,由项目软件主管向公司领导小组申请修改项目任务书,经协调后再做决定。7)如确需修改项目任务书,则要依据上述立项流程来完成。六、项目控制机制为实现项目过程可控化,软件质量有保障的管理依据是:规范化和流程控制。这里为了更准确的切入主题,现指定讨论范围为项目组成立后到项目结束前的一个阶段。1.项目计划的制定机制1)项目计划包含两部分,即:项目中各工作单元的起止时刻安排表(甘特图)和对各工作单元说明的注释。2)项目计划管理工具统一采用project2000。3)项目计划制定是由项目主管在广泛听取项目组中各成员的意见和见解后制定出来的。4)项目计划制定并在团队内部审核完毕后,上交到项目软件主管,并由项目软件主管进行审阅、批准后执行,计划中如出现异常情况可由项目软件主管协助对应的项目组给予纠正。5)对于特殊项目工作如需尽早执行时可先口头向项目软件主管领导请示先执行,而后在尽短的时间内补交项目计划。6)被批准的项目开发计划要向项目团队的所有成员喧导,以提高每位员工的主人公意识。7)项目计划确定后最好把明细的项目计划张贴到项目管理公告栏中。8)项目计划制定步骤:(该计划忽略项目的成本规划)a)统筹分析项目的整个组成部分,勾画出项目的组成框架;b)以流程的方式审核框架,项目的框架一般可以是项目的关键环节或里程碑任务;c)征求项目小组相关员工的意见。d)分解或细化项目框架,按照流程的顺序列出项目的所有任务,并描述出各任务的相依关系(先后顺序和依存关系)。e)列出依