最近,手里的项目出了个事故,而且这个事故居然两个月内重复了3次,结果虽然一样,但是犯错的过程却每次都不一样。
笔者公司严格执行“内,外网”制度,凡是最后要提供给客户的软件都必须从内网拷出,拷贝的流程极为严格。一般是项目经理提交 “软件出厂申请单” ,说明要拷贝的模块名称和License起止日期,以及要安装的机器MAC地址。期间经过实施部、开发部、质量部、商务部的审核,公司总裁签字之后,运维部才会拷贝出来,拷贝出来之后实施工程师还要当场验证一把,确认无误,才会带到客户现场进行安装部署,可就是这样严密的流程,竟然2个月内出了3次事故!由于最后一道审核人是公司老板,老板脾气又大,出点事情就把大家抓过来痛骂一顿,搞得人人噤若寒蝉,各个紧张兮兮的,不可能不重视啊,可是偏偏还就老出事,真是邪乎了!
于是,我组织各部门认真反思总结了一下发生在该项目的问题,尤其是项目管理上的漏洞,追究责任是次要的,关键是要引以为鉴,后续项目不要再出现类似的事情了!
第一次事故大概在5月上旬,项目组给客户安装系统试运行,到了现场发现系统用户不能登录。项目经理当时就有些慌张,因为以前未发现,想到老板最恨已经出厂刻盘的软件系统再重新刻盘,心里就有些紧张。接到报告后,我安慰他,不要着急,想想原因。经查明是由于在此之前的系统版本都是启动jboss和license两个服务,而该项目版本为jboss和license的集成版本,只需要启动jboss服务即可。测试人员修改了服务器启动规则,却没有及时通知实施人员,实施人员不知情,启动了jboss和license两个服务,导致个别license文件冲突,系统用户不能登录。应该说这一次的事故主要是由于以下几点造成的:
1)项目参与人员没有做到知识共享,信息传递不充分;
2)实施人员只在测试环境对系统进行验证,没有充分验证系统的有效性;
3) 实施人员在出盘这项工作中比较依赖测试部,对自己的本职工作不清晰,没有从业务及实际环境对系统进行验证工作;
过了不到1个月,因为修改了一些Bug,第二次给客户安装系统时,项目经理和实施人员在现场的系统调试过程中,发现系统中的用到的第三方软件的一个功能出错,又打电话报告申请重新刻盘。这一回,又是各部门一通忙活,认定为给该系统安装的第三方软件版本不对,经查明,主要原因在于测试提供给刻盘的第三方软件版本与该项目所需要的软件版本不符造成的。这次我认为跟部门领导对于员工的责任心意识教育不够有关,明明公司三令五申,不能擅自更换软件版本,非要那么随意,想换就换!除此之外,没有将第三方软件纳入配置管理也是1大问题,版本无人管啊,也是容易乱!
近日,该项目终于要验收了,虽说出了点事情,但总的说来,这个项目控制得还是不错的,进度,成本和质量都还可以。出了两次事故,我们也反复强调注意事项,同时弥补管理上的各种漏洞,要求各个部门经理作为第一责任人。
大家都想这回怎么着也该没事了。谁知上周我正开会呢,开发部经理神色慌张得来找我:“刘老师,XXX项目现场又出事了,说是License错误!”天!不过这次大家倒都挺镇静的,处理突发事故也有经验了噢,不到半小时,就找到原因,商务人员对License生成软件操作不熟悉,生成的License文件不对,而不到客户的机器上安装是查不出这个错误的。前几次都是运维部生成的License ,自从老板要求实现“三权分立”的思想,就把生成License的工作交给了商务部。如何保证商务人员也能正确生成Licen
se文件,还得在流程上增加一条啊!
总的来说,无论多么完善的制度和流程都有改进的空间。