时隔两年,当我再次坐到电脑面前重新拾起这个话题时,我已经失去了往日的自信和从容。
“IT”往往被圈内人戏称为“挨踢”,意思是我们常被人踢。老板踢,市场人员踢,客户踢,还有老婆踢。老板怪我们的开发进度慢;市场人员气我们的东西没有竞争力;客户嫌我们的程序BUG多;老婆怨我们没时间陪她。由此可见,干我们这一行是多么地不容易。
下面,我主要谈谈软件开发过程中关于项目管理的几个核心问题。总结成一句话就是:三项调查,二个评审,严控变更。
同我们平常做其它事一样。开发一个项目之前,我们得首先考虑项目的目的、开发时间和大致所需成本。 任何项目都必须有明确的目的。这个项目的任务是什么?它能为客户提供什么样的产品或服务?它的卖点是什么?与同类型软件相比,它有什么样的优点?它是否具有充分的扩展性……
要想真正得到这些问题的答案,作为项目经理或者称为项目负责人吧,他在项目立项阶段,就得充分调查市场,调查客户需求,调查自身现有资源,统称三项调查。只能在充分调查的基础上,才能做到量体裁衣,开发出适合市场需求的有竞争力的有一定生命力的产品。
调查市场。对一个软件项目经理来说,他的职责主要在于调查同行业同类产品,分析现有技术,以便构建尽量合量而又有充分扩展性的软件结构。同时,项目经理还有义务协助技术委员会(或者是上级主管)向公司决策层提交项目市场前景分析报告。
调查客户需求是最关键也是最重要的环节。任何一个软件项目都是针对一定的使用对象而开发的。作为项目经理,你得充分了解客户的现有资源、工作方式、工作流程以及使用习惯。现有资源又包括客户的物理设备、人员素质和经济实力。值得提出来的是,很多项目经理往往容易忽视客户的使用习惯,以致于开发出来的产品,虽然功能齐全,界面友好,但却无法取得用户的认同。
调查自身资源。主要是调查项目组成员的技术实力,工作状态,还有其它相关人员的支持度。一个项目的成功,不仅仅需要一个优秀的项目经理,还需要项目发起人、项目组成员和其它相关人员的共同努力,才能实现项目的预期目标。
一个项目有它的开发周期,由项目而产生的产品或服务同样也有它生命周期。软件开发周期模型通常有四种:瀑布型、螺旋型、渐进型、原型模型。这些概念,绝大多数开发人员都懂。但在实际开发过程中,随心所欲的情况还是比较普通。作为项目经理,大有必要根据前面所提到的三项调查来慎重选择适合自己的开发模式。阿呆的自身经验证明,随心所欲开发出来的东西总是漏洞百出。
阶段总结和评审。很多公司都搞阶段总结和评审。但大多数都被动的阶段总结和流行形式的阶段评审。
何谓被动的阶段总结。一般公司的作为是要求开发人员在规定的时间内(例如一个星期或半个月等)作一次工作总结。偶认为这样做非常没有必要,尽管有人认为这样可以了解开发人员的进度等。但这样做的弊端是很容易引起开发人员的反感和抵制,也无法真正地体现一个项目的实际进展情况。事实也证明了这种措施是非常短命的行政命令。主动的阶段总结是由开发人员自行决定总结时间。当然这个时间必须在原定的项目整体完成周期内(甚至可以由项目经理确定总结的条件)。当开发人员认为他手头的工作已经取得阶段性的成果或者有突然性的进展时,由本人主动写出总结报告提交上一级主管评审。
阶段评审。一般来说至少有两次全体评审。第一次评审是由项目经理完成信息系统计划,信息系统分析、信息系统设计之后,提交出软件模型。再交由技术委员会评审。软件模型必须主体的功能界面。技术委员会的成员包括公司内的主要领导、骨干技术人员、客户人员,还要尽可能地邀请典型客户。典型客户在其中扮演着重要的角色,只有他们才是最有发言权的评审委员。待项目‘杀青’之后,再由技术委员会对其进行终审。
一个项目在实施过程中,总会遇到很多需要变更的地方。要想有计划地管理好变更,就必须具备健全的变更控制系统。国内外很多成功的企业都组建了自己的变更控制委员会。由变更委员会来负责项目变更的审批。也由它来决定一个项目是否应该终结。变更委员会通常由项目的直接主管和各项目负责人组成。与技术委员会相比,它更注意成员的专业背景。 |