UML软件工程组织

国内应用软件项目管理的若干问题
原载《计算机世界》

 

  随着企业IT建设的深入和国际交往的增多,应用开发的项目管理日益受到重视。国内面向企业客户的应用软件开发项目管理的问题和差距何在?更多的可能是实践问题而非理论问题,以下结合笔者在集团用户、外资企业和国内民营企业的项目经验和思考,作些初步的探讨。

项目管理意识

  不能真正区分项目实施和项目管理的工作任务,是目前存在的普遍问题。可概括为“没事做”和“没人做”并存的现象,这往往由开发骨干兼任项目经理所致。一方面,如果设立专职的项目经理,专做项目管理而不做任何分析、设计、编码、测试等具体的技术实施工作,就会感觉“没事做”,或是在打杂。另一方面,由于主要或全部精力均忙于具体技术工作,各种项目管理任务(如:项目分析/评估、项目计划的制定/检查/调整、上下左右的沟通、专业资源调配、项目组织调整、项目财务控制、风险分析/对策等)不可避免地疏于顾及,项目管理的事情“没人做”,导致项目控制的问题“积劳成疾”,后悔莫及。
  在中、小型项目中,管理任务可能不饱和,有条件的项目经理可以兼任项目技术主管或业务咨询,关键在于要有将项目管理工作区分出来的意识和责任感。

项目成本基础

  项目管理的精髓是必须在规格(Specification)、成本(Cost、Resource)和进度(Schedule)之间取得平衡。而目前国内的系统集成企业,普遍没有建立专业工程师的成本结构及运用控制体制。因而无法确立和实现项目成本的指标、考核和控制,导致公司与项目经理之间的责任不清。直白地说,项目经理可以不计成本地申请资源,“韩信点兵,多多益善”,而公司处于两难,答应则可能投入太大,拒绝则必须承担项目失败的责任。上级经理成了项目经理。
  不建立专业资源成本结构,就无从实现项目的成本管理,就不会有真正的项目管理。

项目管理制度

  规范化而且切实可行的项目管理制度,必须因企业、因项目而异。一般而言,应是项目管理原理、企业/行业特点和项目规模/性质、企业开发文化/素质等各种因素综合的产物。产生的过程应是,由具一定的理论素养、丰富的规范化项目实施经验和总结能力的资深项目管理专家,结合企业的具体情况,有针对性地制定,并经培训、试行、调整予以落实贯彻。
  国内目前的普遍情况,或者是企业无项目管理制度,仅凭个人经验实施项目管理;或者是书生制度,照搬教条,纸上谈兵,束之高阁。其结果是,不仅实际的项目管理无所依循,而且也使项目监管层难以落实项目的间接监控和支持。

专业服务组织

  国际上的企业级应用软件的开发组织,基本上分为产品研发和专业服务两类。国内由于市场成熟度低等原因,多以直接面向客户需求的项目型开发为主,应属专业服务型的技术组织结构。
  目前国内的差距主要在于,一是公司策略上将项目实施部门定位为配合系统产品销售的成本中心,而未能作为一个独立核算的业务单元或业务方向;二是基本采取层次性的业务管理性组织结构,而缺乏业务管理和专业管理(诸如运营经理、资源调配、资源开发、行政助理、项目会计、项目质量监控等)的分工合作的矩阵结构;三是缺乏纵向专业深度的设计和结构。
  专业服务组织结构的差距,使专业服务部门市场定位模糊,发展方向迷茫。平时不利于专业队伍建设,不能持续有效地发展和提高技术队伍的专业素养;售前活动中,不利于程序化地组织售前支持及控制售前风险;项目实施中,不利于合理及时的项目资源的调配,不能将运营(Operation)监管和项目监管有机结合,以确保项目监控状态。

项目计划

  项目计划是项目经理实施项目管理控制的基础。目前的差距主要有:一是项目计划的制定不够严谨,随意性大,可操作性差,因而实施中无法遵循,如项目计划过于粗略,落实Breakdown(“粒度”)不足;没有做到任务、进度、资源三落实。二是缺乏贯穿项目全程的详细项目计划,甚至采取每周制定下周工作计划的逐周项目计划方式,其实质是“项目失控合法化”。三是项目进度的检查(与进度计划比对)和控制不足,不能维护项目计划的严肃性。
  项目计划的Breakdown或曰“粒度”,是一个需要小心把握平衡的问题。越细则控制力度越大(笔者曾见过细到0.25小时/人的),但项目管理的成本越高;反之亦然。以国内目前的状况,个人看法,3个月以下的项目,应细到人天,至少2~3人天;半年以上的项目,至少应到人周。
  如果项目经理对于项目专业领域不够熟悉,则项目计划主要应由项目技术主管和Teamleader(团队领导者)具体起草,因为他们最熟悉工作内容和具体资源的适应性,项目经理做沟通、调整、平衡、确认,并负最后之责。

项目风险意识

  项目风险意识就是失败意识。每当我们启动一个项目的时候,我们往往憧憬项目投产之日的成功,但是否想过精疲力竭后失败的沮丧?做项目不比卖产品,产品卖出就是成功,项目投产才算成功;产品是静态的,项目是动态的;产品质量有问题可以包换、保修,项目一旦失败,时间不能倒流,客户损失的可能就是市场竞争优势和机遇。风险意识,就是对这种结局的可能性的警惕。如此,我们就会小心谨慎地处理许多项目业务需求、技术方案和组织管理的问题。
  目前市场竞争的激烈和市场的成熟度不足,可能导致应用开发项目的恶性竞争风险。客户希望物美价廉而加需求、压价格、压进度;厂商惟恐出局而拍胸脯、打包票。忽视必要的科学的可行性分析和评估,签订不可能完成的服务合同,项目尚未启动,已经注定了其中的高风险。事实上,这种风险是双方的,厂商可能是经济和信誉上的损失,客户也可能是经济和业务发展上的损失。

业务参与意识

  客户购买IT系统的目的是为了更好地发展自己的业务。应用软件将通用计算机变成了专用的业务系统,因此应用软件中渗透着业务制度、策略,成为应用软件甚至是IT系统的灵魂。因此,国际上成功的案例是业务部门贯穿始终地参与,作为确保项目成功的底线(Bottom Line)之一。
  遗憾的是,我们经常会看见技术人员“独立”地开发“创新”性的系统,究其原因,往往有:认为应用开发是IT的事情;认为业务人员的认识囿于手工或现行方式; 业务人员工作太忙,无暇参与项目;嫌业务人员要求太多、太口罗嗦,以致频繁变更需求。尽管这些原因不无道理,但归根结底,应用项目是来自于业务部门的需求,最终供业务部门使用。业务参与不足,既可能产生业务偏差的隐患,也可能因业务人员不理解、不认可而夭折。
  成熟的项目经理,应确保项目实施中业务参与的全面性、深度和权威性。

 



版权所有:UML软件工程组织