3 ZK 公司软件开发项目现状分析
3.1 ZK 公司的公司经营特点
ZK 公司作为一间中小型 IT 企业,公司内部管理除了有着显着的技术烙印外,还要依据中小民营企业的实际情况,在软件开发项目实施过程中适应公司的现状 :
第一,企业规模小,且整体投资少,投入与回收的周期时间相对短。规模小是中小企业的显要特点,在管理方面和上规模软件相比较,经营决策权必然会高度集中,自主经营,企业的动力基本是体现在企业主的主观能动性上。由于企业规模小,经营者可以对市场作出灵敏的反应,也得益于所有权与经营治理权高度统一,中小企业一般都能快速根据经营者的决策来调整企业的运作,能够快速适应市场。
第二,企业人员较少,内部组织结构简单,缺乏科学的管理理念和体制。中小软件企业员工人数较少,组织结构简单,基本上都是以技术性人员为主,工作流程容易僵化,缺乏内部动力。虽然中小软件企业的人员学历素质可能都不会太差,但是由于没有规模效应以及人员不多,内部分工不够明显,公司内部管理以人管人为主,管理理念难以有效实施,内部制度不完善。
第三,企业整体连续创新能力不足,获得资金、信息、技术和其他服务的质量差。
中小软件企业的项目规模不大,利润有限,市场上的制约多,难以得到例如政策、银行、大公司的支持,各方面事情都只能靠企业本身或经营者的智慧,市场竞争比较激烈。
ZK 公司的上述经营特点,也决定了公司内部管理上灵活、制度缺失、过程简单等特点,必然增加公司承接的软件开发项目的风险以及风险的不确定性。
3.2 ZK 公司的软件开发项目管理特点
ZK 公司大部分的管理工作是针对软件开发项目的,所以公司的管理偏重于对实施过程中的软件开发项目管理。而软件开发项目管理的特点和一般的传统工程项目管理显然有很多不一样的地方。
在对软件开发项目管理的研究数据中发现,70%的软件开发项目是由于管理不善而失败的,广泛都不是技术的缘故形成。所以,在软件开发项目研究中,管理是影响软件开发项目成败的主要原因,技术虽然也有重要的作用但影响只是局部的。
ZK 公司和其他的 IT 软件企业一样,软件开发项目都是以项目管理方式进行,以项目经理负责制为主,一般都对项目进行成本核算,在项目组实施包括计划、协调、组织、控制等一系列的管理活动,从而保证项目按照最初设定的进度顺利完成,同时还要保证项目成本符合预算、成果的质量符合要求。
软件本身由于特有的复杂性以及成果考核难以计量,从而使得软件开发项目的管理比起其他传统工程项目的管理有很多的不同。突出的特点有两点:首先,软件开发项目主要产品是软件,是人类智慧和劳动的产物,知识类的产品难以计量,生产难以标准化。其次,软件系统尤其是大型软件系统涉及知识面非常广,系统集成的复杂程度难以衡量。
实质上,软件开发项目的成果没有其他传统工程项目的成果(如一幢建筑,汽车等)那样易于看到和理解;软件开发项目的核心是软件,而软件的开发过程都是思维过程,没有物质制造的过程,不能眼见手摸;软件开发项目的主要投入资源就是人员;软件开发项目的成果比传统工程项目有更多的形态体现,不可预见;软件开发项目的主要产出物只是可以运行的程序代码和电子文档;每一个软件开发项目的过程都不可能完全一样的。
基于上述软件开发项目管理的特殊性,项目的风险评估方式和方法也不同于一般的传统项目。ZK 公司管理层除了要对公司的各方面风险进行识别外,还要区分和针对软件开发项目管理的特殊性对相关风险因素进行殷别。
3.3 ZK 公司承接的软件开发项目实施状况
ZK 公司目前软件开发团队大约有二十五人,学历主要以本科、大专为主。工作经验五年以上人员占 60%,一年或以下工作经验占 20%。ZK 公司公司目超过一半的收入来源于软件开发业务。公司过往已经完成的软件开发项目大约有 60%能在计划内完成并通过项目验收,40%的项目会出现各种的状况导致需要改造、延期交付等情况。虽然公司实施的软件开发项目的成功率比 2011 年 CHAOS 报告统计的 37%要高,但这和公司承接的都是中小型项目有关。
ZK 公司在 2012、2013 两年内正式启动的软件开发项目有 14 个,其中 1 个为公司内部项目(提高公司开发效率的软件架构研发项目),承接了 13 个项目。这些软件开发项目大多数都是服务于政府部门或事业单位的具体业务,个别项目的业务属于甲方的核心业务,但其他多数都是辅助性业务。这些项目都属于中小型的软件开发项目,以个别富有经验的技术骨干带几个程序员组成的小型技术开发团队(3 到 25 人),项目开发时间一般在一个季度到一年之内,一个或多个项目同时进行。
为规范和同步协调各个项目组的软件开发过程,ZK 公司的软件开发项目当前仍是采用简单而传统的瀑布型软件生命周期开发模型,这样可以相对有效地控制各个软件产品的交付质量。同时,为提高软件开发效率和减少日后软件维护难度,公司正在逐步形成一些内部规范,同时在自行研发一个软件开发架构,以期望能在不同的软件开发项目中相互分享和共用一些组件。另外,技术部经理也开始接触和了解新的软件开发流程模型,如敏捷流程(Scrum),以期望可以提高软件开发项目的开发效率。
3.4 ZK 公司在软件开发项目暴露的风险问题
由于 ZK 公司的公司规模不算大,前期对于组建团队的意思薄弱,对于员工日常管理自由度较大,也造成小部分员工的工作态度不正确。同时,缺少企业文化氛围及持续的专业技能培训,导致员工的主观能动性较低,遇到困难时会有退缩现象,大大降低工作效率。而项目开发过程中却经常需要加班,延误项目进度及影响项目的质量。
这些都是管理层可以感觉到的潜在风险。
而对于 ZK 公司过往实施的具体软件开发项目中,开发过程或多或少都存在各种问题。如 2012 年实施数字城管软件开发项目,由于开发周期短,同时公司未有对城管业务了解的经验可以借鉴,还应用了手机、地图等对开发团队来说属于新的技术范畴,项目实施时状况迭出,疲于加班,工期也不能很好地保障。2013 年初实施的某局综合执法软件开发项目,由于用户方需求不明确,变动频繁,使得原计划 3 个月的项目延期近半年,对双方都有压力。2013 年初同期实施的电子监察综合平台的软件开发项目,由于平台涉及部门比较多,部门之间的协调以及信息的共享提供不理想,使得平台的可用性不高,用户参与积极性不高,测试一再拖延,项目延期至 2013 年底仍未能验收。
简单分析以往项目的情况,各个项目在不同时期内都有这样或那样的风险,如需求不确定、工期可能拖延、质量不够高、相关技术掌握有难度、用户参与度不高、环境因数变化等,对项目的整体实施有很大的影响。当公司管理层未能很有效的掌握到某个项目的风险状况;或者知道某个项目有问题,但却难以准确定位主要问题在哪里;也存在多个项目都有问题时,不知道哪个项目的问题相对严重。
3.5 ZK 公司开展项目风险排查的努力
在近两年,公司针对过往的已经实施的项目进行过总结,从多角度多方位对项目风险进行研究和分析,公司管理层对项目风险的概念有了进一步的认知。
项目组参与业务需求分析时没有理解、深挖客户需求,往往会造成项目延误及影响项目验收,不但降低客户对项目的满意度,另一方面由于项目验收延期导致企业的现金流受阻,造成企业发展滞后。
员工对项目计划不够重视,工作时往往只是形式主义,没有严格按照计划开展项目。由于对于项目计划执行缺乏严谨性,往往会出现多个项目同时进行,而最终影响项目的质量及延期。
管理制度的缺失导致员工工作态度有问题,管理制度相对宽松,对于项目延期或验收不通过没有对员工薪金作扣罚或降职处理,导致技术人员不太重视项目进度及质量,往往只会觉得这是公司的问题与我无关。
公司缺少专业的绩效考核制度,让员工缺少安全感,往往在工作中缺少激情,没有目标性地工作。由于项目开发工作相对其他工作时间较长,在缺少目标性的情况下,员工会带有情绪及抱怨工作,甚至提出离职。人员的流失,特别是优秀的员工的流失无形对企业带来损失。
员工缺少企业文化培训及专业技能培训,管理层经常以忙为由,很少对员工进行相关培训,特别是新员工。只是任由他们自行摸索及遇到问题才提出,这不仅影响项目进度及质量,同时增加了企业的人力成本。
针对项目风险的排查情况,公司也开始研究项目风险的应对,如对公司管理流程作了一些调整:项目洽谈前期,ZK 公司首先设立专项小组,对所接项目先做前期项目评估,包括费用预算及成本预算,然后再由策划部门及技术部负责人编写项目可行性报告及报价,再由公司领导审核确认后才向用户提交方案;项目确认后对合同条款及内容的审核环节,相对严谨;项目实施前由技术部召集项目组进行项目讨论会,并对相关重要信息进行提醒确认;项目实施过程由合同管理部定期提醒项目经理项目初验时间,督促项目实施进度。并且提醒市场部人员回款时间及客户满意度跟踪;系统搭建完成后由专门测试组对系统功能进行测试,降低系统出错的风险。
这些简单的管理流程调整,在随后实施的软件开发项目中已经能够初见成效,公司领导对各项目的状况全程都有一定的了解。然而,对各个项目实施过程中具体的风险未能有一个简单、有效的评估,只能依靠项目经理的经验判断进行口头汇报,显然未能有效对潜在的风险进行评估。
基于 ZK 公司的上述现状,公司管理层更加希望能在项目实施期间能够对相关风险进行评估,认为对公司每一个软件开发项目开展风险评估是必要和急迫的,并开始了解和学习软件开发项目风险评估的理论和方法,尝试建立一个公司内部遵从的风险评估模型。