作者:管延斌
下午的时候研发部门的W工过来找了我一下,告诉我他们正在想办法去掉模块对数据的某一限制。下面说一下我的一些想法。
一、如果不再有那种限制,那我们之前建立的一套处理方案就不再有意义。这套方案部门正准备报奖。(W工下午来找我就是想看看我们的这套方案,分院有人向他们反映10多天也没有完成数据准备,而我的项目50多T的数据不到两天时间搞定)。
我的感受是,即使我们是做技术应用的,也不应该被动等着软件和工具的完善。应用人员不光要向研发人员提出需求,也应该想办法解决问题。可能系统完善后你的方案就不再有必要了,但是越完善的软件可能对我们来说越像一个黑盒,你没有机会了解其内部的机制和原理,恰恰是在工具不完善的时候,你的大脑才会被迫运转。我也是因为之前模块有限制才想出了一套流程,还动手编了几个awk程序。我想到那套方案之前有的项目几百G的数据,一周也没完成数据准备,大家都没想过怎么去提高效率。最终结果不重要,重要的是每一种解决方案中所包含的思路、技巧,和动手能力。
二、关于软件和人工
目前技术人员对于软件,似乎是希望软件越智能越好,限制越少越好,人工干预越少越好,但这就涉及一个软件的效率、稳定性和便捷性之间的对立统一。程序里需要给的判别越多,稳定性和效率肯定就会降低,我一直主张效率和稳定性第一位,能在数据准备阶段完成的工作就不要扔给数据运算的阶段。有的工作人工做可能就是几秒钟或者一些简单的作业和程序,放到功能模块的程序里可能复杂性就大大上升了。即使是W工今天说到的想完善的那个功能,如果模块没有那个限制,数据可以放宽要求进去,必然就要涉及到对数据子集分界的识别、数据的排序,可能还有IO方面的一些问题(软件方面我不是很懂),可能改起程序来比那些人工的工作复杂的多,运行效率还可能下降。
总之,软件,不是越傻瓜式越好。