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

原创 2013年12月05日 06:33:59

我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代。在这个时代里,我们进行软件开发已经不再是一个一个的小作坊,我们在进行着集团化的大规模开发。我们开发的软件不再是为某个车间、某个工序设计的辅助工具,它从某个单位走向整个集团,走向整个行业,甚至整个社会,发挥着越来越重要的作为。一套软件所起到的作用与影响有多大,已经远远超越了所有人的想象,成为一个地区、一个社会,乃至整个国家不可或缺的组成部分。慢慢地,人们已经难以想象没有某某软件或系统的生活和工作会是怎样。这就是软件工业时代的重要时代特征。

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

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

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

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

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


相关文章:

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

需求变更是罪恶之源吗?

系统重构是个什么玩意儿

我们应当改变我们的设计习惯

小步快跑是这样玩的(上)

小步快跑是这样玩的(下)

代码复用应该这样做(1)

代码复用应该这样做(2)

代码复用应该这样做(3)

做好代码复用不简单

特别说明:希望网友们在转载本文时,应当注明作者或出处,以示对作者的尊重,谢谢!

IT公司是动物园——程序猿、攻城狮、射鸡师、产品锦鲤、西衣鸥!

IT公司是动物园——程序猿、攻城狮、射鸡师、产品锦鲤、西衣鸥!
  • xinxin19881112
  • xinxin19881112
  • 2016年04月15日 00:14
  • 4612

JAVA攻城狮学习路线

JAVA攻城狮学习路线指导
  • Code_Road
  • Code_Road
  • 2017年02月24日 16:18
  • 356

Android攻城狮—全套必备神级工具(开发,插件,效率)

Android Studio 推荐理由:官方推出,高效,功能强大。 android studio Genymotion 推荐理由:世界上最快的模拟器。需要注意的是在真机上出...
  • wangwangli6
  • wangwangli6
  • 2017年04月27日 10:23
  • 621

Android优秀资源整理合集(论菜鸟到高级攻城狮)

时间一长,发现在平时逛论坛,订阅号或者其他人推荐的优秀干货,浏览器随机的收藏已经太乱了。抽空整理下,顺便真心推荐大家看看。至少对于我来说,从菜鸟到现在的进步全靠它们!! Android基础相关 1.A...
  • u011176685
  • u011176685
  • 2016年05月17日 11:24
  • 1179

UC-Android逆向工程师面试第2题分析

一、简介 这个题目是别人面试UC优视集团Android逆向工程师一职位的面试题,相比较前面的面试题1,增加了一些难度。 二、题目分析 1.使用JEB程序对UC-crackme-2.a...
  • QQ1084283172
  • QQ1084283172
  • 2016年08月05日 23:47
  • 1685

一个例子看懂递归

一、为什么要搞定递归 在计算机科学与技术中,递归思想是简单而且复杂的。它可以将复杂的数学问题用简单的代码实现,但是要理解它却是需要复杂的思考。大多数算法中都巧妙的使用了,或者可以使用递归来完成,比如排...
  • zhuxiaok
  • zhuxiaok
  • 2016年03月08日 22:00
  • 425

中年危机:攻城狮不可承受之重

总有报道称,各个职业的风险系数里,程序员和快递员都是数一数二的高。前段时间又出了中兴员工自杀事件,再次为程序员这个职业添上了“吃青春饭”、“死亡率高”的标签。到底是什么导致了程序员的中年危机?这一切是...
  • WuGeek
  • WuGeek
  • 2018年01月07日 15:28
  • 20

关于web前端攻城狮的职业规划(小白看了都惊呆了...)

关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了,坚持去认真走就好。但是,任何规划和目标的实现都依赖于知识的积累,而知识的积累来源于学习及学...
  • u014326381
  • u014326381
  • 2015年08月19日 21:38
  • 6361

一切软件系统都是遗留系统

作者:戴夫·安德森(DaveAnderson) 即使系统十分前沿,采用了最新的技术开发而成,但对接手它的下一个人而言,它也会是遗留系统。必须应对这种情况!在今天,软件很快便会过时,这己经成为软件的天...
  • hejiamian
  • hejiamian
  • 2015年08月29日 15:33
  • 445

基于OpenCV之视频读取,处理和显示框架的搭建(一)

1.cv::waitKey
  • qianhen123
  • qianhen123
  • 2014年07月21日 16:54
  • 1450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:遗留系统:IT攻城狮永远的痛
举报原因:
原因补充:

(最多只允许输入30个字)