软件开发小思考

前不久QC部门发布了一个自己开发的银行xxxx系统,还获得集团进步奖,让人啼笑皆非!这套软件在别人拥有自主版权的系统上对资源进行改头换面,虽然“拿来主义”不是坏事,但是居然将无辜的系统占为己有再冠冕堂皇地给之取名,再参与集团评比,实在是卑鄙。这种严重损坏软件从业人员利益的卑劣行为叫人切齿,还好,QC部门也只是自娱自乐罢了,因为R&D部门没有几个真正使用它的。
细细数来公司正在开发软件的部门真是够多,从正统的TSD到工程为主的DCSC, WCSC,再到前面提到的QC,每个部门都有相当一支队伍在做软件开发,是公司的研发实力很强吗?非也!那是为何?重复的软件劳动太多了!
TSD作为专门从事软件开发的部门,是公司软件产品的源头。从技术层面讲,这里永远不缺乏软件“高手”。事实上,每个加入该队伍的员工正是抱着一种技术无止境的心态从事开发。然而,缺乏业务知识的软件开发人员却比比皆是。这里不缺乏C++高手,COM专家,但是软件服务于业务,一味地追求技术导致开发出的软件背离实际需求,不容易维护和扩充,最终无法快速适应客户千变万化的需求,竞争对手乘机而入,市场随之而去了。
TSD是软件源头,如果源头水质不好哪来清如许的渠?DCSC,WCSC还有QC是自来水加工厂,经过工厂加工出来的水基本上比较合客户的口味了。然而这个代价是非常大的。DCSC,WCSC,QC分别按照自己的标准以自己的工艺加工产品,最后交到客户手中的产品质量参差不齐,同时,当TSD宣布软件源头发现了一个很大的bug时,其他三个部门将着手同样的事情修改软件,大规模的重复劳动带来了软件质量和生产力水平的下降,最终直接导致市场的缺失。
这就要求TSD开发的源头产品有个相当优良的架构设计,做到易扩展,易维护,核心模块稳定。易扩展性和易维护性是一个重要考虑。因为这些正是“自来水加工”部门正在做的工作,也是目前他们正在面临的问题,即每一个小小的需求都要动用核心模块代码。这也是客户最关心的工作,因为他们的需求和业务变化多端,如何做到最快的适应这个变化也就是懂得如何去赢得市场了。所以,笼统的说,架构设计基本上就是核心加业务,在这个核心上定制随需应变的业务。
公司产品越多,客户越多,就越发现目前软件产品的局限性,发现有一个完美的架构设计是多么重要。基本上目前TSD应着手解决的问题就是如何给其他三个部门提供一个美好奔腾的“心”,至于业务,不懂没关系,让他们自行加工生产吧。

你可能感兴趣的:(软件开发小思考)