日志文章

2008年05月22日 16:02:26

技术员角度看项目计划

首先,什么是计划,汉语词典的解释是“工作或行动以前预先拟定具体内容和步骤”。个人理解,所谓计划就是:确定目标,设计达成目标的过程。就项目计划而言,通常立项的时候,项目大致的范围、预算、期间等主要目标已基本确定,因此,项目计划的重心在于设计达成目标的过程。计划也是设计,就像建筑工程师设计待建造房子的图纸,软件工程师设计待开发软件的功能、行为和结构一样,管理工程师设计待做事情的完成过程。虽然职位描述上没有管理工程师一说,但就如各专业领域的技术工程师一样,管理者就是从事管理工作的工程师,不同之处在于,技术工程师设计对象主要是物,管理工程师计划对象主要是人。技术工程师最主要的技能要求和任务是设计及指导设计的实现,管理工程师最主要的技能要求和任务是计划及指导计划的实施。

软件工程师设计软件时,从软件功能、外观(用户界面)、内部构造、通信机制等多方面描述软件蓝图,这是因为软件很复杂,要分开成各个方面分别设计,所有这些方面合起来构成软件的完整设计。一件复杂的事情,例如软件开发项目,管理工程师也必须从多个方面设计事情的工作过程,例如分成主开发计划,范围管理计划,质量管理计划,沟通管理计划等,就项目管理而言,应分成哪些方面,PMI的PMBok是很好的指南。

为什么要计划,这就好比为什么要设计一样。设计,其实就是在实际构造产品之前,预先细致思考一下产品外部和内部的详细样子。因为预先想过一遍,因而实际构造时就更容易了,否则构造时必须边想边做,必然难度更大。因为有了设计书,对构造人员的技能要求降低了,因而可以降低构造成本。设计更重要的作用在于,在设计过程中,相关各方都参与进来,充分表达自己的看法和要求,设计人员平衡各方的要求,结合技术上的要求,设计出各方满意的产品。如果没有设计阶段,各个关系方或者直接干预构造过程,这进一步增加了构造过程的混乱。更糟的可能是,关系方不参与讨论,直到产品出来后才表达意见,拒绝接受产品。计划也一样,实际行动之前,预先设想一遍行动的全过程,这样可以降低行动的难度,减少行动的盲目性。更重要的是,计划过程中可以拉拢相关各方,充分表达意见,项目经理综合平衡各方情况,设计出各方满意的行动方案,这极大增加了成功的可能性。

怎么作计划呢?不管什么计划,其要点是:
1)确立目标,即计划中的事情要达到什么目标。目标要恰当,不要太大,也不要太细;尽可能可衡量,不要空洞。
2)选择方法,做什么事情都有很多种方法,在工程界,每个领域都有很多现成方法,必须结合组织和项目的实际情况,选择合适的方法。如软件开发,有瀑布方法,XP方法等很多,在瀑布方法中,每一阶段中又有多种方法,每一阶段要求哪些成果,也有很多选择。项目计划必须选择方法以及定制选中的方法的各步骤,包括各步骤的方法和成果要求。
3)做什么,在选定的方法中,规定了很多工作步骤和内容,必须结合实际情况,划分出合适的任务。
4)谁做,每一项工作任务谁负责,谁执行?在大项目中,负责人和执行人经常不同。
5)什么时候做,先做什么,后做什么;什么时候必须完成哪些工作。

如质量计划,首先要确定质量目标是什么,其次,为了确保达到质量目标,选择什么质量管理方法,谁负责哪些质量问题,谁执行哪些质量工作,再次,确定项目各阶段要执行哪些质量工作。

计划的难点是什么。众所周知,设计工作很难,例如软件设计,经验不足的开发人员常常不知从哪下手,经验稍多一些的开发人员,写出的设计往往不得要领,思路混乱。为什么会这样呢?因为设计要求多方面的技能和经验,如软件设计,要求编程技术、数据库技术、OO技术、UML等具体技术,还要熟悉常见架构技术,如分层结构,MVC结构,管道结构等,要写出好的设计,还要有好的写作技能。这些技能,需要长时间的学习。设计的过程,应该是个选择的过程,即从自己掌握的知识中,选择最恰当的办法解决面对的问题。拥有的知识和经验越多,选择的余地就越大,设计的时候就越驾轻就熟。反之,知识和经验太少,面对的每一个问题都要花大量时间调查和学习,这样的设计,就是“巧妇难为无米之炊”了。

计划也一样,必须掌握大量的知识和经验,才能做出好的计划。要做出好的软件开发项目计划,首先要熟悉常见软件开发方法,如瀑布方法,演化模型,快速原型法,RUP方法,XP方法等。如果没有深入研究过其中一种方法,没有若干年的实际经验,我想很难在实践中应用这些方法。其次,要掌握基本的管理学概念和原理,计划的对象是人,如果不明白常见的人的组织、管理、激励、领导等技巧,以及人性特点,很难做出有效的计划。其三,专业计划所要求的专业知识,如质量计划要求掌握常见的质量管理方法和技术。

类别: 项目管理 |  评论(0) |  浏览(1615) |  收藏
发表评论
看不清楚,换一张