软件项目开发流程管控V20.docx
《软件项目开发流程管控V20.docx》由会员分享,可在线阅读,更多相关《软件项目开发流程管控V20.docx(25页珍藏版)》请在冰豆网上搜索。
软件项目开发流程管控V20
一、目的
1.明确项目团队的管理和沟通流程,改善团队耦合性能。
2.部门内全面实施团队式管理机制,发挥广大员工各自的潜能,激励员工共同参与团队建设与发展。
3.使项目管理实现质量、资源、时间等要素的可控化。
4.规范项目开发管理,提高项目开发质量,提高工作效率,降低软件开发风险。
5.建立一套适合公司实际情况且又实用的有机管理体系。
6.为公司发展做好基层管理基础,为员工的发展提供有利的软环境保障。
二、原则
1.体现项目团队理念。
2.实用性。
3.有机性。
4.共同发展。
三、组织结构
1.约束条件
1)该项目管理和控制机制仅仅是用于全过程型和功能增加型软件开发。
2)该项目管理和控制机制必须与公司当前的发展状况、资源状况相匹配。
2.假定环境
1)公司具有一定的多项目同时开发的实力。
2)公司拥有几个能够带领项目开发的人员。
3)公司有能力组织测试和完备的文档管理。
4)公司有能力组织软件质量测评和监管。
5)公司软件部门管理为项目软件主管、项目团队式,且项目软件主管对各项目团队具有监控权和工作质量跟踪权。
6)部门内有明确的岗位责任分工基础。
7)公司内有一批具有一定项目管理基础,能够带领人员完成项目开发的人才。
3.组织结构
1)
整体组织架构
说明:
该结构为行政式结构,对于系统分析人员和软件工程师、开发人员都在项目团队或无项目员工的队列中。
专职维护暂为预留组织。
2)项目组内实行团队式组织结构
a)每个项目组都是一个项目团队,具体称谓:
angel项目团队。
b)一个项目团队要由以下几个基础机构组成:
✧项目经理;
✧软件总体设计工程师;
✧开发人员;
注:
如果项目较小时可以进行机构合并,如项目主管、系统分析可以合并为一人来做。
如果项目运做前期需要时,还可以一人担负整个项目,但仍可以依据流程和控制机制来开展工作。
总体设计工程师和系统分析员在项目运做前期可能同时负责多个项目,即一个项目的系统分析员或总体设计工程师完成其所担负的任务后(交付所有文档和完成对开发人员培训后)可能转做另一个项目。
c)机构内部领导模式为:
民主式领导模式(项目经理与软件系统分析员、总体设计工程师以及程序编码人员之间的关系是一种民主式方式,是同一个团队的不同成员,仅存在职能、职责的分工不同,没有高低贵贱之分,严禁摆资格和论权利等级。
)。
3)项目软件主管
a)由公司指定或员工选举方式产生,负责部门内关于项目的所有工作。
b)项目软件主管直接领导软件测试组对当前软件实施测试监督。
c)项目软件主管在部门内同样实行团队式管理,不许以感情用事对其他成员有偏袒之意、打击之心,如有发现其他相关成员可以直接向公司总经理管理层上诉。
一定数量的测
4)项目sponsor
由公司于总担任此角色,主要负责对项目大方向的把控,及负责项目的外部协调沟通工作以及,在物资设备及人文方面给予项目大力的支持。
5)最终决策层
由公司的质量管理与项目主要负责人负责审议工作,公司领导决策小组负责最终决策。
4.职权、职能
1)项目经理
a)负责本项目团队的组织与协调等管理工作,对项目的开发负有直接的领导责任。
b)负责项目计划的制定与跟踪。
c)带领项目团队千方百计完成项目开发的目标。
d)负责项目团队内部的沟通和冲突的尽早发现与调解。
e)负责与项目团队外部其它部门或组织的沟通工作。
f)负责组织相应技术人员完成技术攻关。
g)在紧急时刻或遇到疑难问题时要身先士卒,稳定团队成员的情绪,然后想方设法解决问题。
h)负责项目发展中的控制工作,能及时发现差异并提出合理解决方案,而且还要依据公司规定的流程向项目软件主管或公司按时汇报工作。
同时,还要向团队内部成员汇报工作。
i)负责项目内部创新的组织工作。
j)负责项目团队的优化和人员发展。
k)负责项目团队内与用户进行协调、争取用户满意与支持的工作。
2)软件系统分析员
a)负责开发项目的调研工作。
b)负责系统开发中的需求分析和需求管理。
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)依据测试报告和系统的总体设计说明书,设计相应的测试案例,并依据案例完成测试。
6)项目软件主管
a)项目软件主管对项目团队的运行质量具有领导责任、对部门建设具有直接责任。
b)负责阶段性检验各项目小组的工作情况。
c)对于各项目小组的进度和差异情况和差异处理向公司管理小组汇报。
d)负责协助各项目小组解决遇到的问题。
e)负责各项目小组的人事组织安排,对项目组及其成员具有调配权。
f)项目软件主管直接领导软件测试组对当前软件实施测试监督。
g)项目软件主管发现不合格的项目管理或项目产出品时,有权责令相关人员给予调整直至达到相关标准。
h)负责协调各项目小组的其他非开发性工作。
7)质量管理与发展委员会
软件质量管理与发展协会
8)决策小组
a)负责立项审批、项目奖金确定和其它重大事项的审批。
b)负责阶段性的检验项目软件主管和各项目小组的工作情况。
c)负责考核各开发机构的工作绩效。
d)由公司赋予的其它管理职能。
四、立项流程
1.系统方案和需求书写
由系统分析员、项目经理和主管等负责书写公司对外的方案设计和需求调研、系统分析。
2.立项前提
当系统的需求分析一经确定,证明软件的项目边界已经明确,因此可以进行项目计划和立项工作。
3.立项流程图
4.立项流程说明
◆需求分析结果评审包括两部分:
用户评审、质量管理与发展委员会评审。
◆对于愿意合作性项目在立项前要有用户和质量管理与发展委员会的两方评审签字。
◆对于不愿提供合作的项目在立项前要质量管理与发展委员会的评审签字。
◆项目软件主管或项目经理负责制定项目任务书,任务书编写完成后送交财务和公司领导小组各一份。
◆财务依据项目任务书进行成本分析,并形成一份项目成本预测表送交公司领导小组。
◆公司领导小组再综合各方意见确定是否能够立项,如能够通过还要依据公司的项目奖金产生制度填写上项目奖金总金额。
如:
软件合同金额x##.##%再与天数、难度等结合。
5.立项书内容与格式
软件项目立项书
编写人:
编写时间:
No.
项目名称
提出单位、个人
最迟开始
年月日
需求分析人员
项目团队:
团队成员
职能
预定工作量(天)
备注
其他资源:
名称
配合方式
备注
系统预计完成时间:
项目过程
预计天数
误差(±X天)
确认签字
团队组建与项目计划
项目准备工作
总体设计
详细设计与编码
系统组装与测试
其他过程
合计时间
项目奖励总金额
项
目
三
要
素
优先级
质量
时间
资源
1
2
3
项目创新/攻关得分项
其他得分项
6.立项书说明
1)项目奖励总金额,由公司领导小组或财务等部门根据相关政策计算、确定并填写的。
2)具体奖金额度要通过项目奖励办法实际分配,项目奖励办法根据项目三要素的分数确定。
时
间
质量
资源
3)项目实际奖励=总金额×[质量得分比例+时间得分比例+资源得分比例(+项目创新/攻关得分比例)+其他得分比例]。
4)在整个三要素中要选择最重要要素(在最重要栏打√):
质量、时间还是资源,然后依据各要素的重要程度来分配三要素的占分比例。
5)在项目运行中如需达到某种特殊目的(如:
科技攻关),且这样可以达到较良好的目的,这时可以由项目组向项目软件主管申请,项目软件主管根据事情影响大小确定是否申请修改项目时间和资源情况、是否要修改项目奖励。
6)在项目运做中如发生特殊的不可抗拒性因素,则可以向领导小组申请特殊算法。
7)建议在项目任务书制定完成后,按档编写一个项目各档奖励分配状况,依次鼓励员工发挥各自的潜能。
五、下达任务流程
1.任务下达流程图
2.任务下达流程说明
1)项目任务书经公司领导小组签字确认后证明立项完成。
2)立项完成后的任务书向软件部全体项目经理公开发布。
3)按最迟开始时间,当前没有项目或有能力负责两项任务的项目经理有权申请开发。
4)如申请人员大于两人时,公司可以采用抽签决定的方法,确定开发负责人。
5)如没有人员申请时,则由项目软件主管与有能力的项目经理协商确定。
6)如因奖励和项目期限而使协商仍不能确定时,由项目软件主管向公司领导小组申请修改项目任务书,经协调后再做决定。
7)如确需修改项目任务书,则要依据上述立项流程来完成。
六、项目控制机制
为实现项目过程可控化,软件质量有保障的管理依据是:
规范化和流程控制。
这里为了更准确的切入主题,现指定讨论范围为项目组成立后到项目结束前的一个阶段。
1.项目计划的制定机制
1)项目计划包含两部分,即:
项目中各工作单元的起止时刻安排表(甘特图)和对各工作单元说明的注释。
2)项目计划管理工具统一采用project2000。
3)项目计划制定是由项目主管在广泛听取项目组中各成员的意见和见解后制定出来的。
4)项目计划制定并在团队内部审核完毕后,上交到项目软件主管,并由项目软件主管进行审阅、批准后执行,计划中如出现异常情况可由项目软件主管协助对应的项目组给予纠正。
5)对于特殊项目工作如需尽早执行时可先口头向项目软件主管领导请示先执行,而后在尽短的时间内补交项目计划。
6)被批准的项目开发计划要向项目团队的所有成员喧导,以提高每位员工的主人公意识。
7)项目计划确定后最好把明细的项目计划张贴到项目管理公告栏中。
8)项目计划制定步骤:
(该计划忽略项目的成本规划)
a)统筹分析项目的整个组成部分,勾画出项目的组成框架;
b)以流程的方式审核框架,项目的框架一般可以是项目的关键环节或里程碑任务;
c)征求项目小组相关员工的意见。
d)分解或细化项目框架,按照流程的顺序列出项目的所有任务,并描述出各任务的相依关系(先后顺序和依存关系)。
e)列出依据公司的时间要求和资源分配状况(有些资源分配是要受时间约束的,此处可以与项目成本核算相结合)。
f)与项目小组的相关人员一同完成项目资源和时间分配安排。
g)录入以上信息到project2000中,形成明晰的项目计划甘特图。
h)与项目小组的相关人员一同浏览计划并审视其完整性、合理性、可实施性,必要时可以讨论形成一致意见。
i)最终,形成整个项目的项目进度计划。
j)向项目管理小组送审项目管理计划,如项目小组发现计划问题时可与相应项目小组交流或要求项目小组做出计划调整。
2.项目展开后的跟踪机制
1)项目计划跟踪为每天一次,是由项目主管或其安排的专门人员每天在下班前对计划的进度进行跟踪。
2)公司为了能够很好的掌握项目进度,每周要由项目主管向项目软件主管上交一份进度报告,同时还要在每周的周末向团队中的每一位成员汇报工作进度。
(项目进度报告格式见附录4)
3)为了增进团队之间的团结、提高技术和解决问题的能力,每周要举行一次项目团队内部或与其它团队联合的技术交流会,讨论团队中遇到的所有问题,充分发挥团队成员的主人公精神。
4)项目软件主管为了能够及时了解第一线员工的状况,要求每月由参与开发的各个控制环节单独向项目管理小组递交一份月度工作总结报告,如果某项目时间不足一个月则不需再写月报而直接写项目总结报告即可。
(项目工作月报格式见附录5)
5)公司每月要召开一次多功能团队会议(会议成员可以是来自各项目小组,项目软件主管和公司的决策机构成员等),以体察员工的意见,以便及时解决项目团队内部无法发觉或无法解决的问题。
(多功能团队采用自由讨论的茶话会议方式,使员工不拘一格的说出自己的心理话。
)
6)在项目开发工作完成后,要由项目中参与开发的各个控制环节代表单独完成一份项目总结报告,以便进行项目分析。
(项目总结报告格式见附录6)
3.项目进展中的冲突或差异处理机制
1)进度差异的解决要采取如下解决步骤
a)分析差异范围和发展程度。
b)透彻分析差异原因。
c)自我感觉的解决途径分析。
d)召集与差异相关的人员讨论解决方案。
e)确定解决方案。
f)上报项目进展差异分析表。
(项目进展差异分析表格式见附录7)
g)必要时调整项目开发计划,计划调整后要向项目软件主管汇报调整结果。
h)项目团队内部开会宣布计划调整结果,同时还要收集反馈意见。
i)反馈意见分析与解决。
2)人员感情冲突
a)项目经理要及时发觉冲突隐患。
b)项目组内部要客观地分析冲突原因。
c)立足于共同进步与完成项目计划,尽量实行项目团队内部解决冲突。
d)上报给项目管理小组或公司相应部门的主管,由相关人员协助解决。
3)项目进展中途的人员更迭机制
a)人员的计划外更迭一般是不允许的。
b)如果公司其它调控部门或项目小组必须进行人员抽调,并预计会影响项目进度但差异不大时,项目软件主管要提前两天向该项目团队的项目经理申请。
如果预计影响较大时,项目软件主管必须提前一周(7天)向项目组和公司主管人员双向提出申请。
所有调动必须在批准后执行。
c)如开发过程中发现团队组织矛盾严重时,项目软件主管可酌情对项目小组给予人员调整。
d)在开发过程中如有不服从公司有关规范,并明显存在劣性行为时,项目经理可以向项目软件主管申请人员调配。
4.项目进展中的业务沟通机制
1)项目内部成员与用户的沟通
主要是项目经理、系统分析员、设计工程师与用户就用户的开发需求、程序应用方式进行沟通,沟通方式、沟通人员以及沟通记录整理等都依据系统调研规范和相应的需求管理规范。
2)项目主管与项目团队内部成员的沟通
a)正式沟通
✧公司内与之相关沟通制度。
✧日常业务沟通主要依据相关协作规程。
✧临时性工作分配要有任务分配和工作验收表。
b)非正式沟通
✧口头进行情感方面的沟通。
✧项目团队内部可以每隔一段时间举行一次自由组织的活动。
✧业余时间进行思想交流。
✧其它沟通。
3)项目团队成员与公司项目软件主管沟通
4)项目团队成员与公司其他部门或机构沟通
5)项目团队成员与公司总经理沟通
5.项目进展中的创新机制。
项目创新作为项目评定的一项重要的评审指标,具体申请过程如下:
1)产生创新思想;
2)形成完整的创新描述;
3)然后把该创新思想在项目团队内部讨论;
4)项目组内部讨论通过后,把该创新描述文档送公司项目软件主管审评、备案;
5)公司允许试行后,由相关人员负责创新项目试行。
6)如果效果良好,便可决定实施。
7)根据实际实施效果,公司对创新给予相应的评价(并记入在案)。
6.开发产品的测试与反馈机制。
开发产品的测试包括:
文档和原代码两部分。
要求测试人员必须遵守测试规范,严把测试质量关,对于不合格的产品要坚决给予退回。
1)软件开发人员及时将开发完成的成果交付测试人员测试。
2)测试员接到测试任务后,依据测试规范和相应的参考规范、开发文档进行严密的测试。
3)把测试出的错误记录到测试报告中(测试报告除了手写一份外还要在计算机中保存一份)。
4)测试人员把测试出的错结果交给相应的开发人员,并在自己的工作日志上填写表格去向。
5)编码人员查出的错误要认真分析和修改,如有疑问可及时向系统分析员咨询。
6)把修改后的程序交给测试人员再次测试,如此循环直到软件合格为止。
7)编码人员必须及时将编写结果交付测试人员测试,决不允许长期只做不测的现象发生。
8)对于在开发中再次修改的程序开发人员要填写系统调整表,并把修改结果及时交付测试人员再次测试。
7.开发产品的抽查机制。
为了督促开发和保证开发质量、降低开发风险,公司有关项目软件主管将组织人员不定期地对当前的项目阶段的项目产品进行定性和定量。
对在评估中发现问题则要及时追究相关人员的责任,同时还要把抽查结果备案保存。
抽查要遵循一定的抽查规范和以下抽查程序:
1)依据实际的项目进度抽查小组制定抽查方案和抽查计划。
2)抽查小组至少提前一小时把抽查计划和抽查方案交给项目组。
3)抽查期间项目软件主管要填写相应的评审表。
4)抽查小组要对抽查结果进行抽查结果分析。
(抽查结果分析表见附录8)
5)针对抽查结果与相关项目小组进行协商,并为项目小组提出问题解决建议。
6)项目小组要依据问题调整工作安排。
7)抽查次数一般依据项目的大小和项目的里程碑而定,一般不少于3次。
8)抽查各项评审结果和验收实际情况将作为项目奖的评分依据。
8.开发产品的验收机制
1)项目开发完毕后,由相应项目小组负责申请公司内部验收。
(项目验收申请表见附录)
2)公司软件项目软件主管负责召集相关验收人员参加验收。
3)参加验收人员在验收过程中填写软件问题报告单和软件修改报告单。
4)验收完成后有项目软件主管负责填写一份开发产品验收结果报告。
5)经项目软件主管与项目组协商,若软件合格(项目软件主管签字),则软件允许“出厂”。
6)允许“出厂”的软件再经过用户的实际使用评审验收合格后才可以宣告项目的结束。
7)项目验收结果报告单中的各项得分和用户的验收意见作为项目奖的主要评奖依据。
8)所有的评奖分数将汇集为六项:
质量、时间、资源、创新、攻关和团队发展。
七、附录
3.创新工作登记表
创新工作登记表
项目组:
项目名称:
编号
创新内容
类别
提出人
执行时间
附表
实用说明:
(1)。
类别划分为:
管理类、技术类、系统业务类。
(2)。
提出人应着实填写,可以是一人也可以是多人,如果是团队的共同成果就可以写“团队”。
(3)。
附表栏填写对应的创新说明资料的页数。
实用时把创新说明附在表后,并在附表上注明对应的创新条目。
4.项目进展差异分析表
项目进展差异分析表
项目组:
项目名称:
报表人:
报表时间:
编号
计划内容与差异程度
差异原因
解决方案
批示与追踪
5.单元测试交流日志
单元测试交流日志
测试组:
测试内容:
测试人:
填写起时:
编号
测试模块
窗口名称
交付人员
交付时间
收回时间
修改状况
6.开发项目进度报告
开发项目进度报告
项目小组:
报告人:
报告日期:
报告编号:
工程进度与状态
时段
起始日期
截至日期
进度
提示:
列出本月内进行的各项主要活动,并且说明本月内遇到的重要事件,这里所说的重要事件是指一开发阶段(即软件生存周期内各个阶段中的某一个,例如需求分析阶段)的开始或结束,要说明阶段名及开始(或结束)的日期。
若需要,可列出各项工作占有的工时。
状态
提示:
说明本月的实际工作进度与计划相比,是提前了、按期完成了、或是推迟了?
如果与计划不一致,说明原因、阶段名称及开始(或结束)的日期。
可列出实际工时与计划的比较。
其他
提示:
若必要,可报告经费支出与状态、资源耗用与状态等内容。
下个月工作计划
提示:
下个月工作重点或需调整的内容。
建议
提示:
本月遇到的重大问题和应引起重视的问题以及因此产生的建议。
7.项目工作月报
项目工作月报
项目小组:
报告人:
报告日期:
报告编号:
本次报告阶段
年月日至年月日
负责工作
当前进度
当
前
工
作
差
异
与
原
因
近期工作总结
8.项目总结报告
XXX项目总结报告
项目小组:
报告人:
报告日期:
报告编号:
小组内职责
持续时间
参与
阶段
名
系统
调研
□
需求
分析
□
项目
计划
□
概要
设计
□
详细
设计
□
软件
实现
□
单元
测试
□
运行
维护
□
各
阶
段