这个系列的目的在于解释分析中国软件这些年来的停滞不前,在于通过一个典型的案例阐述现在流行的种种谬误。然而在这之前,我要先亮出自己的观点来。因为若在以后我就将以批驳、批判为主,而不是以阐述立论为主。
首先我认为软件开发行业内部,对于软件开发的认识还不到位。我们还认识不到,知识经济的代表————软件开发行业的同传统行业的不同。传统行业的价值产生,来自有形资产的最有效应用;而软件这种知识经济的代表,价值更多的来着无形资产,例如技术诀窍、关系和组织文化。我们往往非议,我们发展了这么多年,还没有出现一个世界规模的软件公司,而根本不关心为什么我们还没有开发出世界范围内被称道的软件。现有伟大的软件还是先有伟大的软件开发公司,就跟现有鸡还是先有蛋这个问题一样。但是就如同最终人们得到先有蛋才会有鸡,我认为只有产生了伟大的软件产品之后才能诞生伟大的公司。而要产生伟大的软件,就必须先有伟大的程序员。而伟大的程序员要开发出伟大的作品,必须先有伟大的想法。我们太关注于结果,而不关心我们的基础。
好大喜功是我们这个浮躁的行业最最普遍存在的情景。动不动我们就说,什么什么方法不适合大团队;什么什么技术不能应用在企业级别的应用。这些人又有几个是在超过20人的团体中开发着24*365的不间断的企业核心应用呢?动不动就有几个老人出来,语重心长的说:不能一辈子搞技术,要早转向管理和市场。这些人根本就不爱软件开发,他们是这个行业的失败者。也有一些人动不动就说:业务才是重要的,技术仅仅是陪衬。岂不知没有了技术,什么业务、管理、沟通、项目管理都是扯淡。没有了技术这个基础,我们的目标就不能实现,客户的利益就不能达成。我们这个行业,缺少的是素质过硬,基本功扎实的根基。我们太多的关注于花,跟太少的关注于根。
而对于软件企业来说,根本问题在于企业所有者和经营者的素质不过关。制度上和战略上,我们的企业能力都严重不足,这些问题只能是管理者才有可能解决。也只有他们才能建立起一个良好的企业文化和技术积累的机制。而我们有太多的舆论关注于底层员工,而看不到高层的躬身自省。貌似一切的问题都是执行层面,都是基层员工的问题。
而对于企业应用软件这个狭窄的方向来说,主要矛盾和矛盾的主要方面是客户对于信息系统,对于计算的认识不足。虽然开发者对于业务的理解,对于行业的认识,对于领域的把握也都有不足,但是这些问题是次要方面的。我们的主要任务应该是推广对于信息系统的正确认识,对于计算的认识。只有在客户理解信息系统的基本原理,对于计算有充分理解的基础上,才能制定符合企业自身环境的信息系统方案,才能表达出合理的需要,才能带领我们去理解业务和需求。
总结下来,我们这个行业的最基本问题就是基础太差,并且大部分人认识不到基础的重要性。而对于在这个行业中生活的个人来说,基本功又是自己职业发展的基础,而技术层面的基本技能又是基本功里面的基础。我这些年太多的谈论所谓管理,所谓组织,所谓交流,所谓构架框架,这些大词热词,而很少去提高基本的文档写作能力,基本的代码写作能力和测试能力,基本的源代码管理理解和使用。