当前位置:文档之家› 软件开发项目管理

软件开发项目管理

软件开发项目管理•启动阶段这个阶段的工作目的是决定一个项目是否需要启动。

为了达到这个目的,首先要明确项目的总体战略目标,对项目的需要建立认同。

即确定到底需要做什么、开发什么产品或提供什么服务,以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的范围、所需资源、大约开支、各种风险,以及该项目不执行的其他替代选择等。

这些代表了对整个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。

项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。

•计划阶段这个阶段的工作是为整个项目做计划。

项目开始后,首先要确定项目的具体范围,明确定出项目到底要做什么,总结、归纳并定出产品的功能。

然后进一步制定项目的计划,列出每项具体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。

•执行阶段这个阶段的工作是通过执行项目的计划来完成项目的任务。

它包括落实一切所需资源,如:人员、设备、费用、技术、信息,由管理者领导全体项目参与者开展各项工作。

同时跟踪各项具体工作和整个项目的进度,定期向全体项目人员及项目的发起人报告项目状态。

•控制阶段这个阶段的工作是确证项目工作的结果符合项目的计划。

它通过对项目结果的衡量和审核,与项目计划所期望的结果进行比较,找出实际结果与计划的差别,并制定处理措施。

这个阶段的工作还包括对项目进程中出现的任何更改要求进行审核和批准。

同时调解项目进程中出现的各种问题,如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。

•结束阶段这个阶段的工作是确保项目的最终结果或提交物达到计划的要求,并对完成的结果作可接受的确认。

还包括在项目完成之后的收尾工作,对整个项目的经历进行总结,修订项目文档,用户培训等。

项目管理实施方案作为一个项目管理者,如何要成功的做好项目管理;首先必须先要明白的是在特定的领域中赋予这个角色所要实现的目标、承担的职责、以及项目管理者的具体工作内容是什么?第一:目标作为一个项目的管理者,必须要明确的知道自己的工作目标;我个人认为项目管理者的目标无非就是以下两点: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 ReviewCode Review是保证项目中代码质量非常重要的一个环节,在这一环中我们公司做的非常欠缺,把关不严格;这是导致每次测试后出现大量bug的主要原因,这一环需要纳入绩效考核中,实行责任追究制,实施重点监控。

出现这样的薄弱环节,造成这样的原因,我想也是有很多因素造成的;比如开发人员对需求不是很明确,以自己比较主观的因素去完成任务的;还有对整个系统业务逻辑没有正确的清晰的认识的原因,以及对项目组成员培训不到位的原因等众多因素纠集在一起才产生的。

如何做好这方面的工作?首先编码要有“编码规范”文档,Code Review 要有“代码审费用,质量等计划。

项目管理者作为项目的负责人,对项目的成功与否负有主要的责任。

所以需求变更的决策者应该由项目管理者承担。

4、需求变更确认后由专人将需求变更记录下来,通知给项目中所有成员。

其中以下人员对需求的变更是紧密相关的,他们必须知晓并认可此需求变更。

包括(客户方,需求分析人员,测试人员,相关开发人员)。

需求变更记录格式如下:序号变更提出时间变更描述变更类型(是对原有需求的修改还是新增需求) 原因变更提出者开发人员对进度的影响(工作量)5、确定变更的负责人。

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

6、相关人员接收到确认的需求变更后,做以下事情。

需求分析人员修改需求说明书和User Case的相关内容。

测试人员修改测试用例的相关内容。

开发人员修改代码中的相关部分。

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

8、需求冻结。

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

4、风险管理风险管理是项目管理者最重要的工作之一。

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

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

项目不同于日常任务,它有明确的起止时间和目标,要在明确的范围、时间和成本约束下,达到相应的质量标准,并取得用户的满意。

影响项目成败的因素涉及方方面面,并且风险伴随着项目的始终,是客观存在的,作为一个项目管理者,应该具备良好的风险控制意识,善于识别风险并分析风险的影响,从中发现影响目标的风险点,并施加影响或采取应对措施,把风险的负面影响降到最低,并且风险控制应该贯穿项目始终。

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

下面将详细描述一下这些问题以及出现这些问题时的应对方案:1、目标以及需求不明确为了市场竞争或内部管理决策的需要,业务部门提出的需求往往要求的时间比较紧迫,需求的提出大多停留在几张纸或口头的传达上,没有形成正式的业务需求文档,在没有明确的需求范围的情况下,有时为了迎合业务部门的口味匆匆开工,过程中用户不断地提出新的想法,技术人员开始疲于奔命和应付,很难保证项目的进度和质量,也难以取得业务部门的认可。

相关主题