老板(或者客户,或者其他人)有一揽子的想法要在股票大盘分析软件开发团队实现。工作有条不紊地展开,更多的功能加入进来,更多的团队成员也加入了进来。新加入的功能也按照之前的架构方式开发着;新加入的团队成员也对清晰的架构表示欣喜,也一丝不苟地遵循着。用不了多久——也许是三个月,或者更短,我们会发现代码库变成下面的样子。
我们也许很快会意识到这其中有什么问题,但很难意识到这到底意味着什么。常见的动作往往围绕着重构——将纵向相关的抽取出来,形成一个新的项目;横向相关的抽取出来,形成一个名叫common或者base的项目。
致远服软认为:http://www.soft8.com.cn/无论我们做什么类型的重构,一些变化都在悄悄产生(也许只是快慢的不同)。构建过程不可避免地变长。从刚开始的一两分钟变成好几分钟,到十几分钟。通过重构构建脚本,去掉那些不需要的部分,构建时间会降到几分钟,我们满意了,于是继续。
更多的功能、更多的成员加入了。人力资源全模块成熟产品支持二次开发构建时间又变长了。随着加载代码的增多,IDE也慢了下来,交流也多了起来——不是所有人能够了解所有代码了。某些时候,一个很有道德的程序员尝试重构一部分重复逻辑,发现牵涉的股票大盘分析软件开发代码太多了,好多都是他看不懂的业务,于是他放弃了。更多的人这么做了,代码库越来越臃肿,最终没有一个人能够搞清楚系统具体是怎么工作的了。
系统在混乱的状态下继续缓慢地混乱——这个过程远比本文写作的时间要长很多,之间会有反复。但据我观察,在不超过一年的时间内,无论采用何种股票大盘分析软件开发技术框架,应用何种架构,这个过程似乎是不可抗拒的宿命。
常见的解决方案
我们并非只能坐以待毙。身边优秀的同事们在问题发现之前采取了各种解决方案。常见的解决方案如下。
升级工作环境
没有什么比一台与时俱进的电脑更能激励开发人员了。最多每隔三年,升级一次开发人员的电脑——升级到当时最好的配置能够大幅度提升生产效率,激励开发人员。反过来,利用过时的电脑,在慢速的机器上进行开发,带来的不仅仅是客观上的开发效率降低,更大程度上带来的是开发人员心理上的懈怠。
升级的工作环境不仅仅是电脑,还包括工作的空间。良好的、促进沟通的空间(以及工作方式)能够促进问题的发现从而减少问题的产生。隔断不适合开发。