论坛首页 Java企业应用论坛

遗留系统:IT攻城狮永远的痛

浏览 7606 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-12-05   最后修改:2014-01-31
我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代。在这个时代里,我们进行软件开发已经不再是一个一个的小作坊,我们在进行着集团化的大规模开发。我们开发的软件不再是为某个车间、某个工序设计的辅助工具,它从某个单位走向整个集团,走向整个行业,甚至整个社会,发挥着越来越重要的作为。一套软件所起到的作用与影响有多大,已经远远超越了所有人的想象,成为一个地区、一个社会,乃至整个国家不可或缺的组成部分。慢慢地,人们已经难以想象没有某某软件或系统的生活和工作会是怎样。这就是软件工业时代的重要时代特征。

然而,在这个令人振奋的软件工业时代,处于时代中心的各大软件企业却令人沮丧。软件规模越来越庞大,软件结构越来越复杂的同时,伴随的却是软件质量越来越低下,软件维护变得越来越困难,以至于每个小小的变更都变得需要伤筋动骨。研发人员为此举足无措,测试人员成为唯一的救星,每个小小的变更都需要付出巨大代价进行测试。软件企业在这样一种恶性循环中苦苦支撑。毫无疑问,这也成为这个令人振奋的时代的一景。

过去,一套软件的生命周期不过2~3年时间,随着软件需求的变化,我们总是选择将软件推倒了重新开发,但是现在这样的情况在发生着改变。随着软件规模的扩大,软件数据的积累,软件影响力的提升,我们,以及我们的客户,都真切感受到,要推倒一套软件重新开发,将变得越来越困难而不切实际。这样的结果就是,我们的软件将不停地修改、维护、再修改、再维护……直到永远。这是一件多么痛苦的事情啊!

一套软件,当它第一次被开发出来的时候,一切都十分清晰:清晰的业务需求、清晰的设计思路、清晰的程序代码,经历了几次需求变更与维护,一切就变得了不那么清晰。业务需求文档变得模糊不清,设计思路已经跟不上变更的脚步,程序代码则随着业务逻辑的复杂而臃肿不堪。程序员开始读不懂代码,软件开发工作变得不再是一种乐趣。

随着时间的推移,软件经过数年、数十次的变更与维护,情况变得越来越糟。最初的程序员已经不愿再看到自己的代码而选择离去。他的继任者变得更无所是从,由于看不懂程序,代码的每一次修改如同在走钢丝。测试人员变成了唯一的希望,开发人员的每一次修改都意味着测试人员需要把所有程序测试一遍。继任者们开始质问最初的设计者们的程序设计。如果此时恰巧又有什么新技术出现,就会更显得原有系统的破旧与不堪。

相信这就是软件工业时代的所有企业都不得不面对的尴尬境地。难倒真的是我们最初的设计错了吗?是的,我们都这样质问过我们自己,因此我们开始尝试在软件设计之初投入更多的精力。我们开始投入更多的时间作需求调研,考虑更多可能的需求变化,做更多的接口,实现更加灵活但复杂的设计。然后呢,我们解决了我们的问题了吗?显然是没有。需求并没有像我们想象的那样发生变更:我们之前认为可能发生的变更并没有发生,使我们为之做出的设计变成了摆设;我们之前没有考虑到的变更发生了,让我们猝不及防,软件质量开始下降,我们被打回了原形。难倒真的是无药可解了吗?在我看来,如果我们没有看明白软件开发的规律与特点,那么我们永远找不到那份向往已久的解药。现在是时候了,让我们真正静下心来分析分析软件开发的规律与特点吧。(续)

相关文档
遗留系统:IT攻城狮永远的痛
需求变更是罪恶之源吗?
系统重构是个什么玩意儿
我们应当改变我们的设计习惯
小步快跑是这样玩的(上)
小步快跑是这样玩的(下)
代码复用应该这样做(1)
代码复用应该这样做(2)
代码复用应该这样做(3)
做好代码复用不简单(1)

特别说明:希望网友们在转载本文时,应当注明作者或出处,以示对作者的尊重,谢谢!
   发表时间:2013-12-07  
禅宗六祖惠能于黄梅得法后,至广州法性寺,值印宗法师讲《涅槃经》,时有风吹幡动,一僧曰风动,一僧曰幡动,议论不已,惠能进曰:不是风动,不是幡动,仁者心动。 佛曰:命由己造,相由心生,世间万物皆是化相,心不动,万物皆不动,心不变,万物皆不变。
1 请登录后投票
   发表时间:2013-12-09  
jackra 写道
禅宗六祖惠能于黄梅得法后,至广州法性寺,值印宗法师讲《涅槃经》,时有风吹幡动,一僧曰风动,一僧曰幡动,议论不已,惠能进曰:不是风动,不是幡动,仁者心动。 佛曰:命由己造,相由心生,世间万物皆是化相,心不动,万物皆不动,心不变,万物皆不变。

不知所云
0 请登录后投票
   发表时间:2013-12-09  
fangang 写道
jackra 写道
禅宗六祖惠能于黄梅得法后,至广州法性寺,值印宗法师讲《涅槃经》,时有风吹幡动,一僧曰风动,一僧曰幡动,议论不已,惠能进曰:不是风动,不是幡动,仁者心动。 佛曰:命由己造,相由心生,世间万物皆是化相,心不动,万物皆不动,心不变,万物皆不变。

不知所云


LZ说的问题,是个经营与管理的问题,根本就不是攻城狮能解决的问题。
0 请登录后投票
   发表时间:2013-12-09  
这就是现实, 过去会一直影响现在,
0 请登录后投票
   发表时间:2013-12-09  
我现在提出来是,你感到痛了吗?你是否期望得到解决呢?既然如此,我们是不是应当坐下来探讨一下?
0 请登录后投票
   发表时间:2013-12-09  
fangang 写道
我现在提出来是,你感到痛了吗?你是否期望得到解决呢?既然如此,我们是不是应当坐下来探讨一下?

做投资人的话可以探讨下。
如果是打工者,还是不要探讨了。
0 请登录后投票
   发表时间:2013-12-10   最后修改:2013-12-10
软件是对真实世界的模拟。

显然地,真实世界在变,软件也要跟着变。

0 请登录后投票
   发表时间:2013-12-10  
测试手段有很多,不一定需要人,可以自动化测试,如:fit
方法总比困难多,这个时候需要把脚步放慢,开始重构、整洁代码等
0 请登录后投票
   发表时间:2013-12-12  
个人认为:软件的使用(或更新)使得业务处理时间缩短,时间缩短导致业务模型进化,模型进化反过来要求软件进一步更新,循环便开始了……

解决方式:
1、软件做成一个可供二次开发的平台,先根据业务模型定义自己的元素(如:DML),然后用这些用户能够看懂的元素来实现他的业务逻辑,最后用户自己能够开发新的功能。

2、用人工智能让软件能自我学习、进化。(太科幻)

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics