软件开发项目管理

软件开发项目管理
软件开发项目管理

软件开发项目管理

?启动阶段

这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的,首先要明确项目的总体战略目标,对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服务,以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的范围、所需资源、大约开支、各种风险,以及该项目不执行的其他替代选择等。这些代表了对整个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。

?计划阶段

这个阶段的工作是为整个项目做计划。项目开始后,首先要确定项目的具体范围,明确定出项目到底要做什么,总结、归纳并定出产品的功能。然后进一步制定项目的计划,列出每项具体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。

?执行阶段

这个阶段的工作是通过执行项目的计划来完成项目的任务。它包括落实一切所需资源,如:人员、设备、费用、技术、信息,由管理者领导全体项目参与者开展各项工作。同时跟踪各项具体工作和整个项目的进度,定期向全体项目人员及项目的发起人报告项目状态。

?控制阶段

这个阶段的工作是确证项目工作的结果符合项目的计划。它通过对项目结果的衡量和审核,与项目计划所期望的结果进行比较,找出实际结果与计划的差别,并制定处理措施。这个阶段的工作还包括对项目进程中出现的任何更改要求进行审核和批准。同时调解项目进程中出现的各种问题,如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。

?结束阶段

这个阶段的工作是确保项目的最终结果或提交物达到计划的要求,并对完成的结果作可接受的确认。还包括在项目完成之后的收尾工作,对整个项目的经历进行总结,修订项目文档,用户培训等。

项目管理实施方案

作为一个项目管理者,如何要成功的做好项目管理;首先必须先要明白的是在特定的领域中赋予这个角色所要实现的目标、承担的职责、以及项目管理者的具体工作内容是什么?

第一:目标

作为一个项目的管理者,必须要明确的知道自己的工作目标;我个人认为项目管理者的目标无非就是以下两点:

1、就是清晰明确地了解项目利害关系者的需求和期望,努力做到满足项目利害关系者的不同需求;项目利害关系者包括:项目团队成员和项目团队外成员(比如各部门的部门负责人和市场人员,客户等)。

2、就是保证开发项目按需按时保质的完成。

第二:职责

作为项目的管理者,首先要端正态度,要明确知道自己的工作职责,认识到这份工作职责的本质。项目管理者不是来管人的,而是来支持人的,是来协调资源的,是来营造一个适合团队成员比较认同的工作环境和氛围的,是来为一个共同的目标和大家一起战斗共同成长的。可以大概概括成以下几点:

1、建立有效的工作流程保证项目的顺利进行。

2、制定详细周密的项目计划。

3、跟踪,推动项目按计划进行。

4、积极解决项目过程中出现的问题和冲突。

5、调动开发团队的积极性,创造力,推动团队成员在项目过程中不断成长。

6、项目风险识别、风险评估、风险解决和风险管理策略以及做好突发风险的应急预案。

7、实现目标

第三:项目管理者的具体工作内容

最后一个是项目管理者的具体工作内容,作为项目管理者必须清晰的知道自己的工作范围和所要做的工作内容以及工作重心,分为以下六点:

1、项目前期阶段

对项目进行技术可行性分析、技术评估、成本评估以及风险评估。与需求提出方的代表进行需求讨论,明确项目的目标、价值;确定项目范围、功能及优先级。组建项目团队,特别要搞清楚项目的key person(对产品有决定权的人)。项目启动会议,相关的利害关系人员都必须参加。

该阶段完成后的成果:确认后的最终软件需求规格说明书文档。

2、分析设计阶段

根据确认后的软件需求规格说明书,制定项目进度计划,工作任务分解(WBS);资源申请,项目涉及到的开发资源、测试资源、设计资源(包括人员和软硬件资源);数据库设计;系统设计;文档(包括Use Case、Demo系统原型、Test Case等);评审会议。

该阶段完成后的成果:A、User Case(系统用例);B、DEMO(系统原型);

C、系统设计文档(概要设计和详细设计);

D、数据库设计文档。

最后对完成的成果,包括User Case和设计文档等进行评审。

3、执行阶段(开发和测试)

准备开发环境、测试环境;跟踪,推动项目按计划进行;以周报的形式通报项目的进展情况。对项目的阶段成果进行评估,以确保该阶段完成的质量,包括代码审核、SQL审核等。对需求变更进行控制管理;对项目风险进行管理;测试阶段BUG FIXED及改进、收集反馈意见。

4、发布阶段

包括制定项目发布计划,用户培训,发布上线。

5、上线后监控

数据监控(日志、服务器状态),根据监控出现的问题,及时进行BUG FIXED及改进或做补丁升级。

6、结束阶段

产品交付,项目总结会。

第四:基于以上三个问题所做的应对细则

要做好项目管理,并能确实解决好以上三个问题,实现目标、履行职责、完成工作中的具体内容,从我个人这几年的工作经验和面临的一些问题,还有所积累的一些项目管理中的一些知识以及自己的观察和思考的角度看,应该要努力做好以下这几个方面的具体工作:

项目开发时间的估算

制定项目进度时间表的时候,需要估算每个任务所需的时间,其中开发任务中模块的分配和时间估算是其中最主要的部分;在分配模块和估算开发时间时需要遵循的原则和目标:

1、保证项目整体的进度。

2、有助于确保开发编码的质量。

3、有助于提高开发编码的速度。在公司现有的技术框架下,开发人员主要的工作是投入在

具体的商业逻辑上。通常每个模块所需的开发时间取决于以下三个因素:

1、所负责模块的商业逻辑的复杂程度。

2、开发人员的技术水平和对项目所在应用的熟悉程度(包括对框架和应用的熟悉程度)。

3、该模块技术实现上是否有技术难点;这里所谓的技术难点定义是:在现有系统中还未实现的、开发人员自身也未没接触过的技术。对于这样的难点,

开发者没有相关的代码可以参考,自己也没有经验,所以需要投入一些时间研究解决。

模块分配和开发时间估算的步骤:

1、在划分好模块后,首先自己先估算一下每个模块所需要的开发时间。

2、然后召集所有开发人员,讨论模块的分配和开发时间估算。将划分好的模块,让开发人员从中挑选他们感兴趣的模块。这样做可以提高开发人员的主动性和参与性。在分配模块的时候还需从以下几方面考虑,以确保开发的速度和质量:

A、相同类似的模块由同一人负责开发,比如用户管理的增删改由同一开发者负责。这样做的好处就是开发者对相关逻辑会更加熟悉,同时接口的定义也会比较明确,沟通的成本比较低,同时功能实现的缺陷也相应的会降低。

B、技术难度比较大的模块由技术水平比较高的人负责。

C、业务逻辑比较复杂的由对这块逻辑比较了解的人负责。

3、模块分配完后,开发人员评估自己负责开发的模块所需要的时间。在此过程中最好做到要和开发者比较详细的讨论每个模块的技术实现,以便使时间的估算更加准确。

4、对开发人员估算的时间进行确认。在确认过程中作为项目管理者应参考以上提到的三个因素,同时将自己估算的时间和开发人员估算的时间进行比较。这其中的差异当然会存在的。对于那些差异比较大的,将与技术人员探讨其中的缘由。对于时间周期比较长的任务,尽量将任务通过再细分的手段细化任务,争取每个任务的最长时间不超过3天;时间周期越长的任务,不确定性越高,风险也越高,越有可能成为项目的瓶颈,影响项目的进度。

2、Code Review

Code Review是保证项目中代码质量非常重要的一个环节,在这一环

中我们公司做的非常欠缺,把关不严格;这是导致每次测试后出现大量bug的主要原因,这一环需要纳入绩效考核中,实行责任追究制,实施重点监控。出现这样的薄弱环节,造成这样的原因,我想也是有很多因素造成的;比如开发人员对需求不是很明确,以自己比较主观的因素去完成任务的;还有对整个系统业务逻辑没有正确的清晰的认识的原因,以及对项目组成员培训不到位的原因等众多因素纠集在一起才产生的。

如何做好这方面的工作?首先编码要有“编码规范”文档,Code Review 要有“代码审

费用,质量等计划。项目管理者作为项目的负责人,对项目的成功与否负有主要的责任。所以需求变更的决策者应该由项目管理者承担。

4、需求变更确认后由专人将需求变更记录下来,通知给项目中所有成员。其中以下人员对需求的变更是紧密相关的,他们必须知晓并认可此需求变更。包括(客户方,需求分析人员,测试人员,相关开发人员)。需求变更记录格式如下:序号变更提出时间变更描述变更类型(是对原有需求的修改还是新增需求) 原因变更提出者

开发人员对进度的

影响(工作量)

5、确定变更的负责人。承担需求变更的具体工作,比如基线控制,对需求变更的记录,并通知相关人员。

6、相关人员接收到确认的需求变更后,做以下事情。需求分析人员修改需求说明书和User Case的相关内容。测试人员修改测试用例的相关内容。开发人员修改代码中的相关部分。

7、按照变更后的计划实施项目,并进行检查,跟踪,对变更后的实施反馈和可能出现的问题及时沟通和处理。

8、需求冻结。

项目越到后期,需求变更对项目的影响就越大,所以在一定时候要进入需求冻结阶段,不再接收新需求或需求的变更。

4、风险管理

风险管理是项目管理者最重要的工作之一。风险管理是一个持续的过程,贯穿于整个项目过程中,风险管理包括风险识别、风险评估、风险解决以及风险管理策略。

在项目的实施过程中需要不断地识别和应对风险,并加以有效的控制,风险管理的好与坏直接影响项目的实施效果,从某种意义上讲,项目实施对于项目管理者就是识别、分析、应对、控制风险的过程,使项目的约束性目标和质量目标朝有利的方向发展。

项目不同于日常任务,它有明确的起止时间和目标,要在明确的范围、时间和成本约束下,达到相应的质量标准,并取得用户的满意。影响项目成败的因素涉及方方面面,并且风险伴随着项目的始终,是客观存在的,作为一个项目管理者,应该具备良好的风险控制意识,善于识别风险并分析风险的影响,从中发现影响目标的风险点,并施加影响或采取应对措施,把风险的负面影响降到最低,并且风险控制应该贯穿项目始终。

风险引起的负面后果集中体现在进度延后、成本超支、质量不达标等方面,导致这些问题的因素主要包括目标以及需求不明确、范围蔓延以及需求变更、代码质量或返工风险、人员技能和资源的不足、缺乏良好的团队协作等。下面将详细描述一下这些问题以及出现这些问题时的应对方案:

1、目标以及需求不明确

为了市场竞争或内部管理决策的需要,业务部门提出的需求往往要求的时间比较紧迫,需求的提出大多停留在几张纸或口头的传达上,没有形成正式的业务需求文档,在没有明确的需求范围的情况下,有时为了迎合业务部门的口味匆匆开工,过程中用户不断地提出新的想法,技术人员开始疲于奔命和应付,

很难保证项目的进度和质量,也难以取得业务部门的认可。所以,在项目的前期一定要采取相应的手段或措施,与业务部门共同明确项目目标、需求范围,充分考虑现有的时间和资源约束,将需求排定优先级,

对于关键的需求优先实现,其他辅助性的根据过程中的具体情况进行滚动式计划,并取得业务部门的书面确认。在此过程中要注重挖掘用户的隐性需求,可以通过引导、系统原型等手段让用户在前期充分暴露自己的想法和需求。2、范围蔓延以及需求变更在有了明确的目标和需求范围的情况下,需求的变更还是不可避免的,业务部门在看到具体系统的真实雏形之后,源源不断地要求、新想法随之产生,如果不对此加以控制,新的需求的加入通常会影响已实现的需求,并且对项目进度和成本产生很大的影响。

项目管理者针对这种情况一定要采取严格的变更控制流程,不能碍于面子,否则最终的结果往往是出力不讨好。针对用户提出的新需求,按照正式流程提出变更申请,组织相关团队成员进行分析及评估,作为是否实施的依据,变更控制负责人根据分析结果判断是否批准,如果批准,那项目组可以安排实施,否则,正式拒绝用户的请求,当然实际情况下可以采取一些软措施缓解矛盾。

需求变更风险:需求已经打上了基线,但此后仍然有变更发生,对项目造成影响。如何减少此类风险的发生?

前期的需求讨论要详细、充分。需求文档中需求的范围要明确、功能描述要清楚。找出项目中需求的决策者(通常会是产品经理、相关职能主管、客户),所有的需求要经过他们的认可。客户在项目过程中的全程参与有助于降低此类风险。需求讨论、需求确认、User Case确认、测试阶段的客户验收等环节,都要要求客户参与。在发生需求变更时,严格按照需求变更流程执行。在分析设计阶段的中的确认和评审也是降低此类风险的重要手段。

3、代码质量或返工风险

质量风险主要指开发代码的质量。如何提高开发人员开发的质量?在制定项目计划时,对开发时间的评估要尽可能的合适。合理的开发时间对开发质量的影响也很大。有时开发人员为了赶进度在比较紧张的时间需要完成指定的任务,可能就存在很大的开发质量问题。开发要有一套严格可行的代码规范,编码时严格遵守,到现在为止,我们这个方面做的不是很规范,做的也很不足,大家编写的代码随意性比较大,代码编写者的主观意识性比较强。要建立一套大家认可并且规范可行的编码规范和考核规范,code review时严格考核。在编码前,开发人员要对框架熟练掌握;一份好的系统设计文档对指导开发非常重要。

返工是项目组最不愿意看到的,既浪费人力、物力和财力,又影响团队积极性。需求不明确或范围没有有效控制都可能造成返工,另外造成返工的原因是质量没有达到用户要求。往往有这样一种情况,每个团队成员按照项目计划报告进度都是100%完成,但一到最后系统交互测试或集成的时候就会发现一大堆问题,不得不花费很大精力回头排查、修改程序,造成这种情况的主要原因是过程中质量保证没有做到位,把大部分问题留在了后面。这就需要在项目实施过程中采取有效的措施来规避返工的风险,通常的做法有同行评审,比如概要设计完成之后,邀请其他项目组的技术专家进行技术评审以发现架构设计问题;管理评审,通过组织级的质量审计看产品以及实施过程是否满足质量要求;代码走查,在编码过程中加入至少一次的代码走查,排查不符合规范或性能要求的代码,走查通常能够发现50%-70%的错误;每日构建,这是一种非常有效的方法,可以避免把各部分的集成问题拖到最后,并且能够及时发现相应的错误,日构建一般在项目的中后期开始,每天自动从版本服务器上获取源代码进行自动编译和测试。

4、人员技能和资源的不足

项目实施过程中由于人员技能欠缺造成的进度延后和软件质量问题并不少见,一个熟练的技术人员完成同样一个任务需要3天,但一个生手可能就需

要7-10天。项目管

理者应该在前期就分析清楚项目所要采用的技术以及相应的人员技能要求,针对不同的角色,及时采取相应的技能培训,以保证项目的顺利实施。如果对于项目中某些部分专业性特别强或新技术,短期内又不能快速建立技能的情况,可以考虑将该块任务外包,借鉴合作商的力量降低实施风险,当然要进行外购人力成本与自建人力成本的效益分析。开发过程中遇到技术难题,导致开发时间延迟或者需求不得不发生变更。如何减少此类风险的发生?在项目开始前的技术评估阶段,明确技术难点,提前安排人员进行攻克。如果在可预期的时间内无法解决,如果可以,将向需求提出方要求变更需求或寻找可替代方案。这样的风险应该在项目的前期阶段就应该解决在萌芽状态来避免这样的风险在后期或中期出现。

项目所需人力资源无法按时到位,导致资源风险。如何减少此类风险的发生?这个就需要在项目计划制定的时候提前申请确认资源,并在项目过程中不断沟通协调。

5、缺乏良好的团队协作

软件项目实施属于知识型,要发挥团队成员的创造力,不同于制造业计件生产,各模块最终要集成在一起形成一个有机的整体,这就需要各小组之间的密切配合,界定清楚工作界面及接口关系,并在实施过程中持续地沟通交流和共享,首先团队要融为一体,产出的软件才能融为一体。这是一个团队的软实力,团队之间的协作好坏也将是个潜在的风险问题,在项目启动和团队组建的时候就应该加以规避这样的风险出现。项目风险管理的要点:

1、上述我们所说的风险管理都是指可以预期将要发生的风险,那些不可预期将要发生

的风险不属于风险管理的范畴。这也将是考验一个项目管理者的经验和知识对能否管理好风险至关重要的内容。

2、对不可预期的风险,项目管理者要有潜在的风险意识评估,做好一些可操作性的预案准备。

3、详细明确的项目计划、以及项目执行过程中每个要点的质量保证是降低项目风险的必要条件。

4、风险报告是项目团队以及领导了解项目风险的一个有效手段。

风险报告的格式:

序号风险简介对项目的影响解决方案或对策

5、团队管理

团队就是一组个体为实现共同的目标而相互依赖、一起工作的共同体。团队工作顾名思义就是团队成员为实现这个共同的目标而付出共同努力,项目团队工作是否有效直接关系到项目的成败。

团队管理是个渐进的过程。世界上只有完美的团队,没有完美的个人。好的高效的团队不是管理出来的,而是营造出来的。团队成员需要有大家可认同的团队文化,这需要大家共同的努力。

1、营造良好的工作环境和氛围。

2、建设优秀或鲜明的团队文化。

3、保持高效的沟通。

6、项目会议

组织会议是项目管理者日常工作中一项非常重要的工作任务,项目过程中很多重要的决定都是在会议中做出的,也有很多由于不成功的会议而对项目本身造成了不好的影响。

首先看看不成功的会议常常表现为哪些形式:

1、会议氛围不好,参与者发言不踊跃;

2、会议讨论常常偏离主题;

3、会议没有取得预期的结果;

4、会议时间常常一拖再拖。

这些不成功的会议最终的结果就是:既浪费了大家的宝贵时间又没有达到会议的目的,很多人都对这样的会议都有抵触情绪,对此也是深恶痛绝。以下是组织会议时应该注意的问题,也可看作组织会议的最佳实践。在列出最佳实践之前有三点我们必须要清楚:

1、会议是否会取得成功很大程度上取决于会议的组织者。只有组织得有力,会议才有可能取得成功,这是会议成功的充分条件。

2、会议的组织者和参与者的想法通常是不一致的,有时候甚至会大相径庭。所以不要希望会议的参与者和你一样,对会议有着如此的期待,对大多数参与者而言,在会议中他只是一个发表想法的人,他不用对会议的成功承担责任。

3、以下十一条最佳实践是形式上的约定,具体的实施可以根据实际情况来做。组织会议的十一条最佳实践:

1、只有需要开会时才开会。有时候两三个人单独小范围沟通会更加有效。

2、提前发出会议议程,以便会议参与者知道他们来做什么。

3、请对人很重要,不要把非必要的人召来开会,当然也不要漏掉那些关键人物。在确保必要人物都在的情况下一次会议参与者越少效果越好。

4、提前预约参与者的时间,以确保他们能按时到场。

5、会议的开场很重要。会议组织者要在开始前做好几件事情。通常我建议有几点要在开场时说:

A、再一次强调会议的目标,我们来做什么。

B、强调会议的主题与基调。比如:本次会议是一个需求确认会,而非需求讨论会,主要是讨论做还是不做以及告知大家我们要做什么,而不要把太多的精力放在讨论如何做上面。

C、说明一下会议的规则。如要发言,请举手;不要有小圈子讨论;不要打断别人的讲话,等别人说完你再说等等。

6、会议过程中时刻注意引导和控制会议,以确保会议按照目标进行。一次会议的氛围是否良好,讨论是否充分,好的引导至关重要。比如多提一些开放式的问题。

7、会议记录很重要,把一些结论和有价值的内容记录下来,这些是本次会议的重要成果之一。

8、会议要有结论。我们常在会议上听到有人说:"大家讨论了这么半天,结论呢?"。没有结论的会议是没有意义的。

9、会议后别忘发会议纪要,以及一些Action,什么人什么时候做什么。

10、会议后的action执行情况的反馈很重要。反馈是对会议参与者的尊重,同时也告知了会议的效果。否则会让大家感觉到这是一个可无可无的会议,大家以后参与的积极性也会降低。很多会议往往都不注意这一点。

11、按时结束的会议会受到所有人的欢迎。

7、版本控制

版本控制也是项目管理者的一个重要工作内容之一,一个项目或产品的完成不可能是一步到位的,在项目完成的后期可能会有多个不同的版本的发布(开发版本,测试版本,发布版本等)。需要做好版本的管理和控制。

8、项目总结

在项目完成后,总结整个完成项目的过程和经历,为下一次的项目启动提供参考经验,完善不足,避免在类似的项目中出现可能存在的相同的错误发生。

浅谈敏捷项目管理在软件开发中的应用

浅谈敏捷项目管理在软件开发中的应用 摘要:本文先介绍了使用传统项目管理技术管理软件开发项目的方法,然后介绍了使用敏捷项目管理的初步实践,通过两者比较,提出了使用敏捷项目管理进行软件开发的方法。 一、使用传统项目管理技术管理软件开发项目的方法 按照《人月神话》的说法,软件开发是个焦油坑,书店里关于软件开发管理的书籍林良满目,各个软件开发组织也在尝试和应用不同的软件开发管理办法,希望寻找到“软件开发的银弹”。 在软件开发管理中,引入项目管理的办法,已经得到广大软件开发管理人员的一致认同,但对于具体实施何种项目管理办法,各个软件开发组织都有不同的答案,更多的迷茫,因为引入的项目管理办法不能从根本上解决软件开发项目面临的进度拖后、费用超支等问题,软件开发的银弹到底在哪里? 以下是笔者对国内软件开发组织不同项目管理成熟度的归纳和总结,大概可以分如下几类;1)小作坊、混沌形的,这样的组织还处在接单求生存的阶段,管理者还根本没有项目的意识,以满足客户需求、定制开发和回款为第一要务;2)尝试按照项目管理的思路与方法管理软件开发项目,但发现推

行困难,不得要领,目前很多中小型的软件开发组织都处于这个阶段;3)大型的软件企业,已经通过CMM|ISO认证、有足够的资源做保障,实行规范的项目管理做法,如一些软件外包工厂。 本文主要讲述处于第二个层次的软件开发组织的项目管理问题。软件开发项目管理涉及非常多的内容,从软件开发本身的业务出发,有需求管理、变更控制、配置管理、测试管理、系统分析与设计等;从项目管理的知识领域角度,有范围管理、时间管理、沟通管理、人力资源管理等内容。 按照传统的经典项目管理方法,通过一定的项目管理模板与IT工具,总结多个项目的经验,笔者总结有如下经典步骤来完成项目管理的计划编制与进度控制过程: 计划编制的经典步骤: ①建立企业和项目资源库:这个是进行项目管理的基础工作。 ②设置项目日历、资源日历。 ③设置项目的主要里程碑点。 ④在WBS(工作包)下列出工作清单(Task,Activity)。工作分解结构(WBS)和作业是进行项目范围管理的途径。 ⑤对每个Task估计工期。 ⑥连接每个Task间的逻辑关系(SS,FS,FS,FF,延时)。

软件开发项目管理中的常见问题和解决方案(精)

软件项目管理常见问题及解决方案资料来源:互联网整理人:class4117 软件行业是一个极具挑战性和创造性的行业, 软件开发是一项复杂的系统工程, 牵涉到各方面的因素, 在实际工作中, 经常会出现各种各样的问题, 甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。 1 .项目管理在软件开发中的应用的成因 目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式, 虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定, 软件后期的维护、升级出现麻烦, 同时最终也会损害用户的利益。 2. 软件项目管理常见问题及解决方案 (1缺乏项目管理系统培训 在软件企业中, 以前几乎没有专门招收项目管理专业的人员来担任项目经理, 被任命的项目经理主要是因为他们能够在技术上独当一面, 而管理方面特别是项目管理方面的知识比较缺乏。 解决方案:项目经理接受系统的项目管理知识培训是非常必要的, 有了专业领 域的知识与实践, 再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。 (2项目计划意识问题 项目经理对总体计划、阶段计划的作用认识不足, 因此制定总体计划时比较随意, 不少事情没有仔细考虑; 阶段计划因工作忙等理由经常拖延, 造成计划与控制管理脱节,无法进行有效的进度控制管理。

解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识, 采用项目计划制定相关知识、技术、 工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 (3管理意识问题 部分项目经理不能从总体上把握整个项目, 而是埋头于具体的技术工作, 造成 项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前, 最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习, 并且在实际工作中不断提高自己的管理素质, 丰富项目管理经验, 提高项目管理意识。 (4沟通意识问题 在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足, 造成各做各事、 重复 劳动,甚至造成不必要的损失 ; 有些人没有每天定时收邮件的习惯,以至于无法 及时接收最新的信息。 解决方案:制定有效的沟通制度和沟通机制, 提高沟通意识 ; 采取多种沟通方式, 提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属 ; 对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位, 例如:除发送 邮件外还要电话提醒、回执等, 重要的内容还要通过举行各种会议进行传达。 (5风险管理意识问题

软件开发项目管理分析

软件开发项目管理分析 对于软件产品,软件开发的方法以及相关技术的提高,可以促进软件产品的质量以及使用效率。在提高软件产品质量以及功能的同时,不断地缩短软件开发的周期,降低软件开发成本,是软件市场的根本。使用现代化的信息技术,对软件开发工作进行项目的管理与创新,对于相关企业具有重要意义。 1软件开发的问题以及信息化的软件开发项目优势 1.1软件开发的现状及问题 大部分企业软件开发的实际情况,是在需求活动完成之前就进行实际的开发工作,大多数团队都未能做到按照规定执行瀑布开发工作。软件的开发与硬件的开发之间最大的区别是,随着开发程度的不断加深,软件开发常常会出现变更,这就要求软件要及时的做好更新与升级。目前大多数的软件开发团队并不具备有效的开发与管理工具,使得相关管理工作效率低下,很难做到及时的对软件进行更新与管理。并且对于相关需求从设计到编码,再到对软件的实际测试,缺乏一体化的管理以及监控机制。 1.2信息化的软件开发项目优势 信息化的软件开发项目优势的第一方面就是,由传统的手工向自动化进行转变。传统软件开发项目当中,对于工时、评审、缺陷等数据的记录,要进行人工书写,并且相关的审批工作都是采取纸质的形式完成。在这一过程需要花费大量的人力和物力。而信息化技术,可以使得数据信息的产生、评估、汇总等工作做到自动化,解放大量工作人员,提高软件开发工作效率;第二方面优势是可以有效的保证信息记录的及时性以及准确性。信息化手段可以做到对相关信息的及时性以及准确性进行保证。并且在实际的项目执行过程当中,信息系统会对操作记录、工时、软件缺陷等信息进行保存,确保在这一过程信息的实时性以及有效性;第三方面优势是使得信息具有可追溯性。传统的人工记录大多使用纸质对相关信息进行保存,纸质的信息会出现模糊丢失现象的发生,而利用信息化进行保存与管理可以为相关信息提供完整的追溯性。 2基于信息化的软件开发项目管理的实施方法 2.1专业工具的部署 实现软件信息化管理,首先要部署各个阶段需要的专业工具,具体如下:(1)需求开发活动,对软件管理信息化部署专业需求管理工具,将过去计划为主的方式变为以需求为主,驱动任务开展,建议全生命周期全维度管理模式,实现对软件的全过程跟踪管理,以需求作为信息化管理的主线,从需求到设计,再到编码与测试进行跟踪,自动识别变更影响域,收集各阶段需求信息;(2)设计活动,将线下设计工作逐渐转为线上设计,在设计工具的应用下,人们能够以需求框架作为参考,开展设计工作,按照要素输出情况进行文档设计,满足需求覆盖了与标准符合率;(3)编码活动,以往的电子或纸质配置流程方式逐渐被信息化手段取代,基于SVN服务器建立起专业的管理工具,开发库、受控库与产品库之间相辅相成,帮助工作人员完成编码工作与测试工作;(4)测试活动,专业的自动化测试工具可以对单元

稿:软件项目管理制度

**科技股份有限公司软件项目管理制度 目录

项目开发计划 编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度、所需经费预算、所需软、硬件条件等问题作出的安排记载下来,以便根据本计划开展和检查本项目的开发工作。编制内容要求如下: 1引言 1.1编写目的 说明编写这份项目开发计划的目的,并指出预期的读者。 1.2背景 说明: a.待开发的软件系统的名称; b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络; C.该软件系统同其他系统或其他机构的基本的相互来往关系。 1.3定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。 1.4参考资料 列出用得着的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.属于本项目的其他已发表的文件; C.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2项目概述 2.1 工作内容 简要地说明在本项目的开发中须进行的各项主要工作。 2.2主要参加人员 扼要说明参加本项目开发工作的主要人员的情况,包括他们的技术水平。 2.3产品 2.3.1程序 列出需移交给用户的程序的名称、所用的编程语言及存储程序的媒体形式,并通过引用有关文件,逐项说明其功能和能力。 2.3.2文件 列出需移交给用户的每种文件的名称及内容要点。 2.3.3服务 列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。 2.3.4非移交的产品 说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。 2.4验收标准 对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。 2.5完成项目的员迟用限

软件开发与项目管理课后练习(参考答案)

软件开发与项目管理参考答案 第一章(软件开发模型和开发方法) (一)知识回顾与思考 1、软件产品的特性是什么? ①软件是一种逻辑产品,具有无形性; ②软件产品的生产主要是研制;主要是脑力劳动; ③软件不存在磨损和老化问题,但存在退化问题; ④软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; ⑤软件具有“复杂性”,其开发和运行常受到计算机系统的限制。 2、软件生产有几个阶段?各有何特征? ①程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。 ②程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。 ③软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。 3、什么是软件危机?产生的原因是什么? 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。 原因:一是软件产品的固有特性(软件的不可预见性、软件的规模大且逻辑较复杂),二是软件专业人员自身的缺陷。 4、什么是软件工程?它的目标和容是什么? 软件工程:是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。 目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。 容:研究容包括开发技术和开发管理两个方面。开发技术主要研究:软件开发方法,开发过程,开发工具和环境。开发管理主要研究:软件管理学,软件经济学,软件心。 5、软件工程面临的问题是什么? ①软件重用性差 ②软件可维护性差 ③开发出的软件不能满足用户需要 6、什么是软件生命周期?它有哪几个活动? 软件生命周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 活动:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

软件开发项目管理

软件开发项目管理 ?启动阶段 这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的,首先要明确项目的总体战略目标,对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服务,以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的范围、所需资源、大约开支、各种风险,以及该项目不执行的其他替代选择等。这些代表了对整个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。 ?计划阶段 这个阶段的工作是为整个项目做计划。项目开始后,首先要确定项目的具体范围,明确定出项目到底要做什么,总结、归纳并定出产品的功能。然后进一步制定项目的计划,列出每项具体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。 ?执行阶段 这个阶段的工作是通过执行项目的计划来完成项目的任务。它包括落实一切所需资源,如:人员、设备、费用、技术、信息,由管理者领导全体项目参与者开展各项工作。同时跟踪各项具体工作和整个项目的进度,定期向全体项目人员及项目的发起人报告项目状态。 ?控制阶段 这个阶段的工作是确证项目工作的结果符合项目的计划。它通过对项目结果的衡量和审核,与项目计划所期望的结果进行比较,找出实际结果与计划的差别,并制定处理措施。这个阶段的工作还包括对项目进程中出现的任何更改要求进行审核和批准。同时调解项目进程中出现的各种问题,如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。 ?结束阶段 这个阶段的工作是确保项目的最终结果或提交物达到计划的要求,并对完成的结果作可接受的确认。还包括在项目完成之后的收尾工作,对整个项目的经历进行总结,修订项目文档,用户培训等。

软件项目管理试题与答案

16.2.1 填空题 1.在软项目管理中,控制包括,,和。 2.软件项目计划是由和共同经过阶段后制定的。 3.能协调软件开发,使得混乱减少到最小的方法是使用。 4.在软件的生产过程中,总是有大量各种信息要记录,因此,在产品的开发过程中起着重要的作用。 5.成本估算是在软件项目开发之前,估算项目开发所需的,和。6.软件工程管理不同于其他过程管理,它对保证高质量的产品更具有极为重要的意义。7.成本估算方法中,有自顶向下估算方法,自底向上估算方法和方法。 的制度突出了主程序员的领导,责任集中到少数人身上,有利于提高软件质量。 9.基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个。 10.在一个大系统的开发过程中,由于失误造成的后果要比程序错误造成的后果更为严重。 11.软件工程包含和两大部分内容。 12.在软件开发和维护过程中一个软件往往有许多版本,版本控制工具用来存储,更新,恢复和管理一个软件的。 13.参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段,步骤和工作单元进行分配,这种方法称为方法。 14.软件工程管理的具体内容包括对开发人员,组织机构,用户,等方面的管理。15.差别估算的缺点是不容易明确“差别”的界限,但它的优点是可以提高。16.在一个软件项目的开发过程中要自始至终得到的密切合作与支持。 17.风险分析是实际上就是贯穿在软件工程中的一系列风险管理步骤,其中包括,,,和。 18.软件开发项目生存期详细实际阶段应包括的文档。 19.软件项目计划的第一项活动是确定() 20.行业标准是由行业机构学术团体或国防机构制定的适合某个行业的标准。指(),指();指()。 21.工程网络图是一种()图,该图中用()表示事件,有向弧或箭头表示子任务的进行,箭头上的数字称为(),箭头下面的括号中的数字表示该任务的()。 22.软件配置管理。简称,它用于整个软件工程过程。其主要目标是(),(),()和()。是一组管理整个软件生存期各阶段中()的活动。 23.软件配置项()是软件工程中产生的(),它是配置管理的()。 24.国家标准由政府或国家级的机构制定或批准,适合于全国范围的标准。中华人民共和国国家集注监督局是中国的最高标准化机构,它所公布实施的标准简称为(),用()标识;是指(),是指(),是指(),是指()。 25.软件项目计划包括()与()两个任务。 26.软件工程过程中某一阶段的变更,均要引起()的变更,这种变更必须严格加以控制和管理,保持(),并把精确,清晰的信息传递到软件工程过程的()。 27.变更控制包括建立()和建立()。 28.软件配置管理,简称()。软件配置项简称()。 29.根据软件工程标准制定的机构与适用范围,它分为(),(),(),()和()五个等级。 30.工程网络只有一个开始点和一个终止点,开始点没有流入箭头称为()为零。终止点

软件项目管理常见问题及解决方案

软件项目管理常见问题及解决方案 摘要:Web技术的网上学习系统提供了实施研究性学习的环境与技术手段。基于研究性学习 模式理念,探讨在网上学习系统中如何实现研究性学习。给出研究性学习模式形式,以及网上研究性学习系统的设计方案。 关键词:Web;研究性学习;教学网站 软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的因素,在实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。 1.项目管理在软件开发中的应用的成因 目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的 维护、升级出现麻烦,同时最终也会损害用户的利益。 随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过 程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。 2.软件项目管理常见问题及解决方案 (1)缺乏项目管理系统培训 在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的 项目管理水平。 (2)项目计划意识问题 项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的 进度控制管理。 解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 (3)管理意识问题 部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富 项目管理经验,提高项目管理意识。

软件开发项目管理实施方案

项目管理实施方案 作为一个项目管理者,如何要成功的做好项目管理;首先必须先要明白的是在特定的领域中赋予这个角色所要实现的目标、承担的职责、以及项目管理者的具体工作内容是什么? 从我个人的浅见和角度以及我们所从事的IT领域来分析回答以上三个问题。 第一:目标 作为一个项目的管理者,必须要明确的知道自己的工作目标;我个人认为项目管理者的目标无非就是以下两点: 1、就是清晰明确地了解项目利害关系者的需求和期望,努力做到满足项目利害关系者的不同需求;项目利害关系者包括:项目团队成员和项目团队外成员(比如各部门的部门负责人和市场人员,客户等)。 2、就是保证开发项目按需按时保质的完成。 第二:职责 作为项目的管理者,首先要端正态度,要明确知道自己的工作职责,认识到这份工作职责的本质。项目管理者不是来管人的,而是来支持人的,是来协调资源的,是来营造一个适合团队成员比较认同的工作环境和氛围的,是来为一个共同的目标和大家一起战斗共同成长的。可以大概概括成以下几点: 1、建立有效的工作流程保证项目的顺利进行。 2、制定详细周密的项目计划。 3、跟踪,推动项目按计划进行。 4、积极解决项目过程中出现的问题和冲突。 5、调动开发团队的积极性,创造力,推动团队成员在项目过程中不断成长。 6、项目风险识别、风险评估、风险解决和风险管理策略以及做好突发风险的应急预案。 7、实现目标 第三:项目管理者的具体工作内容 最后一个是项目管理者的具体工作内容,作为项目管理者必须清晰的知道自己的工作范围和所要做的工作内容以及工作重心,分为以下六点: 1、项目前期阶段 对项目进行技术可行性分析、技术评估、成本评估以及风险评估。与需求提出方的代表进行需求讨论,明确项目的目标、价值;确定项目范围、功能及优先级。组建项目团队,特别要搞清楚项目的key person(对产品有决定权的人)。项目启动会议,相关的

软件开发项目管理

管理目标 1、所有关系人清晰明确地了解项目的需求和期望,努力做到满足项目所有关系人的不同需求;项目关系人包括:项目团队成员和项目团队外(内部/外部客户,内部/外部合作伙伴,经销商/客户等)。 2、项目管理三要素平衡(时间/成本/质量),即开发项目按需按时按质的完成。 3、目标:功能满足需求,设计支持变化,开发快速迭代,成果持续交付。 执行概述 1、建立有效的工作流程保证项目的顺利进行,初期使用传统RUP过程,引入部分敏捷方法, 团队磨合完成后逐步实现敏捷开发全流程管理。 2、明确项目目标,制定具有可行性的项目计划,有效明确的分解项目需求。 3、跟踪设计/开发/测试/回归/发布全流程,推动项目按预定计划执行。 4、解决项目过程中出现的问题和冲突,一般集中在需求不明/工作量或时长/开发难度/跨 部门协调等几个方面。 5、调动开发团队的积极性,创造力,推动团队成员在项目过程中的学习成长。 6、风险识别、风险控制以及风险的预案。 项目管理 1、需求阶段 对项目进行技术可行性分析、技术评估、成本评估以及风险评估。 与需求提出方的代表进行需求讨论,明确项目的目标、价值。 确定项目范围、功能及优先级。 组建项目团队,特别要搞清楚项目的关键人。 项目启动会议,相关的关系人都必须参加。 2、设计阶段 根据确认后的软件需求规格说明书,制定项目进度计划,工作任务分解(WBS);资源申请,项目涉及到的开发资源、测试资源、设计资源(包括人员和软硬件资源);数据库设计;系统设计;文档(包括系统用例、Demo、测试用例等);评审会议。 设计阶段结果交付一般为系统用例/系统原型/系统设计文档(概要设计和详细设计)/数据库设计文档等。 该阶段交付成果需要进行评审。 3、执行阶段(开发和测试) 准备开发环境、测试环境。 跟踪,推动项目按计划进行。 项目成员以日报/项目负责人以周报的形式通报各关系人当前项目的进展情况。 按里程碑对阶段成果进行评估,以确保该阶段完成的质量。 代码审核,包括CS审核、SQL审核、WEB审核等。 对需求变更进行控制管理。 测试阶段BUG响应及改进、收集反馈意见。 对项目风险进行管理。 4、发布阶段 包括制定项目发布计划,用户培训,发布上线。 5、试运行阶段 数据监控(日志、服务器状态),根据监控出现的问题,及时进行处理,改进性能问题,特定情况执行补丁升级。

软件公司研发项目管理制度()

软件公司研发项目管理制度 第一节总则 第一条为规范自有软件研发以及外包软件的管理工作,特制定本制度。本制度适用 于公司软件研发与管理。 第二条本制度中软件开发指新系统开发和现有系统维护或改造,此类工作均需要以项 目制管理。 第三条本制度中自行开发是指主要依赖公司自身的管理、业务和技术力量进行系统 设计、软件开发、集成和相关的技术支持工作,一般仅向外购置有关的硬件设备和支撑软件平台;合作开发是公司与专业IT公司(合作商)共同协作完成IT应用的项目实施和技术支持工作,一般形式是公司负责提供业务框架,合作商提供技术框架,双方组成开发团队进行项目实施,IT系统的日常支持由技术研发部承担;外包开发是指将IT应用项目的设计、开发、集成、培训等任务承包给某家专业公司(可以是专业的IT公司或咨询公司等),由该公司(承包商)负责应用项目的实施。? 第四条 ?软件开发遵循项目管理和软件工程的基本原则。项目管理涉及立项管理、项目计划和监控、配置管理、合作开发管理和结项管理。软件工程涉及需求管理、系统设计、系统实现、系统测试、用户接受测试、试运行、系统验收、系统上线和数据迁移。 第五条 除特别指定,本制度中项目组包括业务组(或需求提出组)、开发组(可能包括网络管理员和合作开发商)。 第二节立项管理 第六条 提出项目需求的部门参与公司层面立项,进行立项的技术可行性分析,编写《立项分析报告》,开展前期筹备工作。《立项分析报告》应明确项目的范围和边界。 第七条 需求提出部门将立项分析报告》交相关部门会签后,上交公司高层进行立项审批,以保证系统项目与公司整体策略相一致。 第八条 《立项分析报告》得到批准后,成立项目组(如果是外包开发,则成立外包商项目组; 如果是合作开发,则与外包商共同成立合作开发项目组,以下统称“项目组”),项目组应包括业务组(由公司技术研发部需求管理组和相关业务部门组成)和开发组(自行开发为技术研发部开发组、网络管理员;外包开发为技术研发部指定的开发组长、网络管理员和外包商成员;合作开发为技术研发部开发组指定人员、网络管理员和外包商成员)。公司技术研发部委派一名项目经理负责监督项目的进度,进行项目管理工作,确保开发能及时完成并能满足业务需要。项目组人员的选择应满足项目对业务及技术要求,项目组人员应有足够的业务和IT技术方面的专业知识来胜任项目各方面的工作。 第三节需求分析

【项目管理知识】软件项目管理的研究及在项目开发中的应用

软件项目管理的研究及在项目开发中的应用 针对软件项目开发的特点和软件开发包项目高失败率的善通过对软件项目管理方法的研究提出了软件项目开发过程的一种管理流程和相应的子流程,实现了对软件项目控制和管理。前言 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上, 软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定、持续地发展。 软件项目管理的特殊性表现在:①软件产品是无形的。软件项目管理者不能像其他项目管理者那样,能够从被开发的产品上看到进度、已经完工的部分 是否与设计相符等,他们只能从其他人所提交的文档中来掌握相关的情况。② 没有标准的软件过程。对软件过程的理解虽然已经取得了长足的进步,但是软 件管理者还是不能确切地预见某一软件过程何时有可能出现问题。③大型软件 项目常常是一次性的”。由于软件项目与一个国家、地区的经济政策相联系, 与用户的发展战略、经济实力、管理水平相适应,软件项目的开发过程中所采用的技术和管理方式与当时的计算机和通信技术有关,因此大型软件项目一般都不同于早先的项目,管理者纵使有在计划中降低不确定性的经验,也很难较准确地预见问题的出现,以前的经验教训也较难在新项目中发挥大的作用。 从目前国内外的软件企业来看,软件危机”的阴影仍然存在,软件行业的项目实施情况一直很不乐观。研究表明,软件项目失败的原因主要有两个: 是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明,缺乏有效的项目管理是导致软件项目失控的直接原因。

软件开发项目管理中的常见问题和解决方案

软件项目管理常见问题及解决方案 资料来源:互联网整理人:class4117 软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的因素,在实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。 1 .项目管理在软件开发中的应用的成因 目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。 2.软件项目管理常见问题及解决方案 (1)缺乏项目管理系统培训 在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。 解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。 (2)项目计划意识问题 项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 (3)管理意识问题 部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 (4)沟通意识问题 在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复

软件与项目管理

一、选择题 1、项目计划的制订是反复的过程,在实施的过程中,要求调整项目计划来协调成本、目标和进度,因此()。 A.在每个项目的阶段点上,都要求对项目计划进行变更 B.成本、目标和进度都要求体现在项目计划中 C.修改后的项目计划应该首先保证项目的进度符合要求 D.在大多数情况下,质量目标用来换取成本和进度 2、在软件开发过程中,通常会牵涉到机构、体制和管理方式的问题,这些问题的解决对于成功的软件项目管理很重要,有效地管理组织结构、质量政策、运行体制是()的责任。 A.项目经理B.职能经理C.高层管理者D.客户 3、下列不应该包含在项目计划中的是()。 A.范围的说明B.成本的分配和预算 C.实际的进度偏差D.需要达到的质量标准 4、()时,组织通常会外购产品或服务。 A.为了稳定现有人力资源B.需要保密 C.需要加强对产品质量的控制D.技术能力匮乏 5、小王负责一个管理信息系统项目,最近在与客户共同进行的质量审查中发现一个程序模块不符合客户的需求,进行追溯时,发现有相应的变更请求。最终小王被迫对这一模块进行再设计并重新编程。造成此项返工的原因可能是()。 A.未进行需求管理B.未进行范围确认 C.未进行变更管理D.质量管理过严 6、某正在进行中的项目,当前的BCWS=2200元、EV=2000元、ACWP=2500元,当前项目的SV和项目状态是()。 A.-300元;项目提前完成B.+200元;项目提前完成 C.+8000元;项目按时完成D.-200元;项目比原计划滞后 7、在关键路径上增加资源不一定会缩短项目的工期,这是因为()。 A.关键路径上的活动是不依赖于时间和资源的 B.关键活动所配置的资源数量是充足的 C.关键活动的历时是固定不变的 D.增加资源有可能导致产生额外的问题并且降低效率 8、某正在进行中的项目,当前的BCWS=2200元、EV=2000元、ACWP=2500元,该项目的CPI和成本绩效是()。 A.0.20;实际成本与计划的一致B.0.80;实际成本比计划成本要低 C.0.80;实际成本超出了计划成本D.1.25;实际成本超出了计划成本 9、编码阶段质量保证的措施不包括()。 A.程序员个性化的风格。B.严格遵守编程规范。 C.进行代码静态分析和代码审查。D.进行完善的单元测试。 10、关于项目团队成员的个人能力和对项目的影响,下列那些描述是正确的()。 A.对于按照工程化协作进行大的项目,个人能力对项目没有影响 B.项目无论大小,个人能力都会对项目的目标产生影响 C.从事项目对个人能力的提高没有影响 D.对于小项目,项目的最后成功与否,完全取决于个人能力 11、软件项目的工作量或者成本的估算,通常可以按照功能点或者单元数来进行估算,此时的估算是以()为依据的。

软件项目开发流程管控V2.0

一、目的 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) 机构内部领导模式为:民主式领导模式(项目经理与软件系统分析员、总体设计工程 师以及程序编码人员之间的关系是一种民主式方式,是同一个团队的不同成员,仅存在职能、职责的分工不同,没有高低贵贱之分,严禁摆资格和论权利等级。)。 项目组 项目组 项目组 项目经理 项目经理助理 项目总工程师 测试组 项目组 维护组

软件开发项目管理制度

软件开发项目管理制度 一、总则 为保障公司软件开发项目的工作能有效、有序的执行,保证项目的开发质量,维护公司及开发人员的利益特制订本制度。 二、组织 软件开发项目的实施以软件开发项目组的形式进行,项目组中设有项目责任人(即项目经理)、项目开发工程师、测试工程师、辅助人员等。一般情况下,一个项目组负责一个软件项目的开发工作。对于特大型的项目可以组织多个项目组分块进行实施。项目组人员各负其责,在项目经理的统一领导组织下共同完成项目实施工作。 三、责任 项目经理:全面负责项目的开发组织工作,包括需求分析、系统设计、 人员分工、进度安排等。项目经理负责组织完成项目系统分 析报告、系统总体设计报告、开发进度计划表、系统测试大 纲等技术文档编写工作。负责开发进行中的进度检查,联合 调试、技术资料文件收集等工作。 开发工程师:按照项目经理的分工安排完成软件开发项目中自己所承担 的开发工作。负责完成模块设计报告的编写工作。协助完成

软件的安装调试及售后服务工作。

测试工程师:按照项目经理的分工安排完成对开发软件的测试工作。负责 完成测试方案设计、测试报告的编写工作。负责完成软件使 用手册、培训教材等的编写工作。完成软件的安装调试及售 后服务工作。 辅助人员:按照项目经理的分工安排完成项目开发中的辅助工作,包括 文档录入、资料整理等。 四、流程 软件开发项目应按照以下流程进行 整个软件开发项目可分为四个阶段: A段:设计阶段。完成系统分析、总体设计、进度计划等工作。以提交系统分析报告、系统设计报告及开发计划进度表为完成标志。

B段:编程阶段。完成系统子模块设计、程序编写、组装测试等工作。以提交系统子模块设计报告、测试报告为完成标志。 C段:安装阶段。完成系统安装、用户培训、手册编写等工作。以提交用户手册培训教材、安装计划、培训计划为完成标志。 D段:验收阶段。完成系统的最后修改、进行工作总结。以提交项目验收报告、开发技术文档及源文件光盘、开发工作总结为完成标志。 完成A,B,C,D四个阶段后,标志一个软件开发项目工作的结束。 五、奖罚 软件开发人员的工资收入由二部分组成:基本工资、项目奖励。基本工资为开发人员的月固定工资,按月发放,基本工资的分配按公司有关规定执行。项目奖励为软件开发项目完成后的奖金,软件开发项目完成后第二个月随基本工资一起发放。 1.奖励: 对按期完成的软件项目,参与项目开发的所有人员均可得到项目奖励金,奖励金的分配根据每个开发人员参与项目的工作量大小由 公司主管领导与项目经理协调统一分配。 (1)项目奖励金的计算方法: 奖励金 = 软件项目开发费总额× 10% (2)项目奖励金的分配比例为: A阶段20%,B阶段40%,C阶段30%,D阶段10%(3)按期完成的定义 a.在软件开发项目规定的期间内完成; b.在项目业主认可的期间内完成。 2.处罚: (1)由于自身原因未能完成的软件开发项目不发放项目奖 励金; (2)由于自身原因连续三个月以上不参加项目开发工作的, 基本工资减半。 六、文档 一个软件开发项目完成后,应提交以下文档资料:

软件开发项目管理制度

软件开发项目管理制度 1 目的和适用范围 为规范公司自有软件研发的管理工作,特制定软件项目的立项、开发、测试、发布、备份及软件发布后问题跟踪与处理、设计更改及升级的管理制度,最大限度满足用户的需求。 本标准适用于聚龙股份有限公司(以下简称公司)软件开发项目的管理与控制。 2 涉及的相关部门 公司所有部门 3职责与管理控制 职责 参见《设计和开发控制程序》中相关条款。 管理控制 3.2.1 软件开发项目分类与立项管理分类 1. 软件开发项目分类 (1)软件产品项目:公司或部门提出的,可以作为公司独立产品或配套产品的软件开发项目; (2)内部管理软件项目:公司或部门提出的,仅限于公司内部管理应用的管理软件项目; (3)内部工具软件项目:公司或部门提出的,仅限于公司内部生产调试使用的各种工具软件项目。3.2.2 软件项目管理分类 软件项目管理分为正式立项管理与设计更改管理。 1. 正式立项管理 软件开发需求之前没有相同的正式软件产品,或者软件在功能和结构上与原有软件相比有较大改变,能够作为一个独立的应用软件,均可作为软件开发项目进行正式立项,并按3.3.2进行软件立项管理。 2. 设计更改管理 如果需求部门需求的软件与当前已发布的软件功能有差异需要更改或升级时,由项目组按照需求部门要求进行设计更改,并按3.3.3进行软件设计更改管理。 软件项目各阶段管理 软件项目开发管理过程划分为需求分析阶段、立项阶段、设计编码与测试阶段、软件发布与实施阶段、项目验收阶段。 3.3.1各阶段工作内容及形成表单

软件开发项目管理流程 软件设计更改管理 软件设计更改分类 软件设计更改可分为两个类型:软件升级需求和软件缺陷修改。

软件项目开发管理制度

软件项目开发管理制度 1 第一节总则 特制定本为规范自有软件研发以及外包软件的管理工作,第一条 分公司参制度。本制度适用于股份公司软件研发与管理,照执行。 本制度中软件开发指新系统开发和现有系

统重大改造。第二条 业务和第三条本制度中自行开发是指主要依赖公司自身的管理、 软件开发、集成和相关的技术支技术力量进行系统设计、持工作,一般仅向外购置有关的硬件设备和支撑软件平 公司(合作商)共同协作完台;合作开发是公司与专业IT 应用的项目实施和技术支持工作,一般形式是公司负成IT 双方组成开发团合作商提供技术框架,责提供业务框架,系统的日常支持由信息中心和合作商队进行项目实施,IT 共同承担,信息中心负责内部(一级)支持,合作商负责外应用项目的设计、开部(二级)支持;外包开发是指将IT (可以是专业发、集成、培训等任务承包给某家专业公司公司或咨询公司等),由该公司(承包商)负责应用的IT

项目的实施。 项目管理第四条软件开发遵循项目管理和 软件工程的基本原则。 涉及立项管理、项目计划和监控、配置管理、合作开发管理和结项管理。软件工程涉及需求管理、系统设计、系统 2 实现、系统测试、用户接受测试、试运行、系统验收、系 统上线和数据迁移。 除特别指定,本制度中项目组包括业务组(或需求提出第五条 。组(可能包括网络管理员和合作开发商)组)、IT

项管理第二节立 提出开发需求的信息技术部门参与公司层面立项,第六条进行立 开展前期筹《立项分析报告》项的技术可行性分析,编写 备工作。《立项分析报告》应明确项目的范围和边界。 上交公司总裁应用系统主要使用部门将第七条《立项分析报告》 室进行立项审批,以保证系统项目与公司整体策略相一

相关文档
最新文档