昨日出外开会后回到公司,检查了同事负责的给另外一个部门提供测试服务器的工作任务。
按照要求,我们需要提供一台安装有操作系统linux以及中间件服务器tomcat+oracle的测试机器,此工作原计划在周一10月13日下班提供,由于技术原因实现承诺,周二、三的期间由于有其他工作安排工作挂起,周四10月16日已经向同事承诺再投入一天在周四下班前完成。
很不幸,昨日10月17日下午检查工作结果是工作还没有完成,再一次无法兑现对其他同事的承诺。询问了负责该项工作的同事,告知其实周一就已经安装了CentOS Linux,也已经安装了java虚拟机和Tomcat,但是按照Oracle的安装文档,无法在该机器上安装,他给我的具体技术简要解释如下:
- Oracle 9i Release 2的linux版本安装包,没有内置java vm,需要自己安装java vm,现在安装了jvm版本是1.3.1;
- 机器的CPU是AMD,java vm安装花了不少时间;
- 安装的Centos Linux版本是周一就完成的;
针对他的简要解释,我的询问和分析如下:
- 安装的java vm的版本有没有问题,在Windows平台上安装Oracle 9i R2,对应的Java VM是1.4.2版本,和1.3.1的VM能不能正常运行呢?
- 按同事的描述将有很多的版本的组合,分别是CPU型号、Linux发行商(桌面、服务器版本或者Linux内核版本)、Java VM版本、Tomcat版本以及Oracle版本!我们不是要同事去寻找各种可行的组合,不是在进行高分子化学实验,各种组合的测试工作应该留给Oracle厂商的测试部门去进行。
- 根据我们常识,我们知道Linux发行商不同、内核不同,有很大的不一样,为什么要挑选安装一个较少人使用的CentOS Linux呢?为什么不用SUSE、RedHat、Ubuntu还是国产的Red Flag,偏好CentOS呢!
- 查看了同事安装Oracle所参考的安装文档,只是广义地讲如何在Linux上安装。需要找到官方的资料,了解Oracle已经在那些版本的Linux上进行了测试。
从其中我们可以看到,同事的工作方法存在问题,加上没有进行及时的Review,导致承诺无法兑现!他在刚开始就是纯粹从“探索”角度去进行工作,而不是从安装目标上去进行工作,除了Oracle外的开源软件,其实都要考虑版本间的相互依赖配合的关系,如果不从官方资料上去获得信息,那么这个工作将是一个非常冒险的工作。好比给你一批零件厂商的出厂的不同批次的零件,就能组装成一部车吗?
我要求同事重新从目标出发,调整方法,在周末将问题解决掉。看着同事有点想放弃的样子,我告诉了他,找对方法才有出路,因为我们不能告诉同事说Oracle是无法运行在Linux上面的,那以后还有谁玩java,再说我们也不能一次再次地推迟自己的承诺。