系统演化

October 6, 2013 · One minute read

机缘巧合,手上这个项目开发已经有将近五年了。如果算上之前自动化测试和技术支持的时间,我接触这个项目都快八年了。八年的时间将近我的开发生涯四分之一的时间,我想一般开发人员应该都没有这种机会能够在一个项目上花费这么多年的时间。它伴随着我从一个新手,一直到现在。这个项目一开始的起点就很高,踩着web 2.0的步伐,走REST服务,跨repository的设计,以及相当精深的XML背景。它一跃成为公司的战略部署之一,为全球用户提供将近六千万页的帮助文档。

当然,系统还是不断的进行着演化。项目负责人经常会问我,为什么我们要这个功能,那个功能。我说就应该是这样。

“那么,为什么我们一开始不这样做呢?”

这个问题很有趣,因为它假设如果一个想法是好的,那么一开始就应该想到,并且应该马上就采用。而且这个问题还有一个推论,既然过去没有采用这种方法,那么现在也不应该。

当然首先,这个想法我的确没有第一时间想到,这是有原因的。任何架构决策都必须考虑当时的需求、现存的系统和环境,以及最重要的,最决策人的经验和能力。即使我想到了,也不会立刻使用,毕竟任何技术的运用也依靠该技术本身的成熟度,以及实施团队的能力。从现在看来,当初并不具备采用该技术的条件。那么既然如此,是否表示现在也不应该采用呢?这个很难讲,因为项目有很多隐含需求,甚至是一些不上台面的需求。作为技术人员,我没有理由和投资方去讨论那些不涉及技术的方面,尤其是双方都心知肚明的潜规则。所以大多数时候,只能先斩后奏,尽我所能。

这里好多东西都不能说明,姑且保留到将来有机会再看吧。