软件工程发展趋势

注册

 

发新话题 回复该主题

怎样做好软件项目管理 [复制链接]

1#

讲软件项目管理的书绝对可以称得上汗牛充栋了,正所谓“懂得很多道理,依然过不好一生”。拿了PMP证书很多年的项目经理,项目照样管不好。

其实项目管理关键的点就那么几条,抓住了关键就像庖丁解牛,很多问题就会迎刃而解。

1、糟糕的软件项目管理

要管好软件项目,首先得知道,管不好的项目是什么样的:

项目延期,不能按计划上线

项目质量差,bug太多,系统上线后无法顺利运行

项目需求失控,总是不停的改需求,总有做不完的新需求

没有人能说得清项目的具体范围、交付时间、质量要求

项目组人员持续膨胀,人越来越多,还是不够用

项目组人员变动频繁,不断有人离职

项目经理说服不了客户,协同不了内部资源

没有文档和正常的沟通,不知道同伴做了什么

版本管理混乱,代码冲突,源码丢失

老问题一再出现,多次掉到同一个坑里

没有版本更新的流程,随时上线代码,系统随时会挂掉

......

是不是似曾相识的场景?这可能是很多软件公司都会出现的现象,无论是内部研发项目,还是交付客户的项目都会出现上述的部分或全面问题。

如果能完全避免这些问题,项目管理基本上就比较顺利了。

2、软件项目管理的方法

针对前面所述项目中经常出现的问题,分析如下:

#

问题

解决办法

知识领域

1

项目延期,不能按计划上线

制定详细的项目计划,计划需要和客户沟通、项目组沟通,达成一致

计划管理

2

项目质量差,bug太多,系统上线后无法顺利运行

项目组配置正式测试人员;

依照设计做测试方案和测试case;

测试不通过,不允许上线;

质量管理

测试管理

3

项目需求失控,总是不停的改需求,总有做不完的新需求

基于投标方案和合同范围制定需求框架,在框架内调研和确认需求;

记录需求变更,及时正式通知客户(变更可能增加费用)

需求管理

4

没有人能说得清项目的具体范围、交付时间、质量要求

项目经理要研究投标方案、项目合同,确定项目范围、时间、质量要求

整体管理

5

项目组人员持续膨胀,人越来越多,还是不够用

项目组构建初期,明确人员组成和各自职责分工。

需求管理

团队管理

6

项目组人员变动频繁,不断有人离职

制定合理的项目计划

建立项目组良好的团队氛围

计划管理

团队管理

7

项目经理说服不了客户,协同不了内部资源

反复坦诚的沟通不能解决问题时候,要向上级主管求助

沟通管理

8

没有文档和正常的沟通,不知道同伴做了什么

制定文档规格,按模板编写文档,按质量要求评审;

项目组每日例会,加强协同

文档和源码管理

沟通管理

9

版本管理混乱,代码冲突,源码丢失

采用代码管理工具如github管理源码;

每周定期做代码review

文档和源码管理

团队管理

10

老问题一再出现,多次掉到同一个坑里

典型问题,项目组内部学习交流;

每周技术经验分享

团队管理

11

没有版本更新的流程,随时上线代码,系统随时会挂掉

建立上线流程,需求来源明确、改动范围清楚、测试结果通过3个条件满足才能审核上线

团队管理

梳理流程总结经验,提出解决问题的原则和方法,就形成了软件项目管理的基本方法论(很明显,上述问题就是项目管理领域的主要管理职能缺失造成的)。软件项目管理的方法论通常涵盖下面的内容/p>

计划管理:计划必须是真实可行的,必须和项目组、客户沟通确认。计划的执行进展必须每周更新,问题和风险要提出来及时解决。

质量管理:质量管理是贯穿项目始终的,有必要的流程和模板,通过评审、文档来落实。

测试管理:要有专门的测试团队、测试计划、测试方案和测试case,使用工具跟踪测试case的执行至通过,上线前要完成测试报告。根据测试报告判断是否具备发布或者上线条件(不是按客户指令或者按领导意图)。

需求管理:先通过合同和投标方案圈定需求的大框架,在此基础上进行需求调研,形成需求规格跟用户确认。需求变动一定要有记录并且得到客户认可(后期费用审定时候这些记录决定了你能不能要到需求变更的钱)。

文档和源码管理:文档不是为了应付客户或者满足验收要求才编写,文档是内外部沟通的主要媒介之一,是和源码一样重要的软件资产。源码必须有工具管理,每天提交,做定期的review。

团队管理:项目启动组成项目团队,明确团队构成和职责;项目执行过程中不断培养和发展团队能力,减少出错和重复犯错的机会;良好的团队氛围能激励大家互相支持,按时完成任务。

沟通管理:信息透明,沟通渠道通畅,做到得客户认可,同事信任,很大程度上取决于项目经理的能力和合理沟通机制的建立。

整体管理:项目管理要有整体的流程和规范要求,比如项目立项条件、启动的条件、正式上线的条件、验收通过的标准、交给运维提供的资料等。

软件项目管理的制度、流程和原则,早已成熟和应用多年了,并不需要增加新的内容。

最重要的一点,把最基本的要求认真执行、长期执行、执行到位,就能很好的控制项目风险。

3、项目经理的责任和选择

项目经理是项目执行的第一责任人(对最终结果负责),是软件项目成败的关键,因此对项目经理的要求也比较高,并非一个有经验的程序员就能承担。

先说项目经理的职责。

组建项目团队,为项目团队设定工作目标。

制定项目工作计划、编制预算并做好任务分解,确保计划的执行。

监控项目计划执行过程,确保进度、质量、成本符合规划。

解决项目执行过程中的重大技术、问题。

解决项目执行过程中的资源冲突,协调客户、供应商和公司内部资源。

积极探索有效的项目管理方式,丰富公司项目管理的经验和能力。

要承担这样的职责,项目经理需要的技能覆盖计划、组织、管理、控制、激励、领导多个层面,差不多就是小型CEO的角色。而且项目规模越大,对项目经理的能力要求越高,所以一些“大项目”,项目经理可能是公司总监、副总甚至总经理亲自担任。

宰相必起于州部,猛将必发于卒伍,项目经理都是从基层逐步成长起来的。从项目经理人员选择和培养的角度,具备下面基本素质的年轻员工,可以作为培养候选人:

技术能力:优秀的程序员,至少有3年以上的开发经验,熟悉公司所使用的开发技术、框架,具备一定的行业知识。

性格和态度:自我驱动型人格,性格稳定成熟,态度积极向上,愿意主动承担责任,主动沟通;在压力下保持理性。

项目经验:全程参与过2个以上项目,对项目管理流程有切身的体会。

文档能力:熟练的编写文档、汇报材料。

这些年轻人通过在项目中的不断磨练、不断成长,最终会有一部分人成为优秀的项目经理。

4、项目文化

建立项目管理制定、流程的同时,不忘建立项目管理文化。制度与文化,一为刚性一为柔性,两者相辅相成,构成了项目管理艺术的全部。

项目文化是什么?

目标-结果导向。任何项目的成败,以最终结果是否实现当初目标来考察。

良好的过程管理是项目成功的基础,

分享 转发
TOP
发新话题 回复该主题