遗留系统:IT攻城狮永远的痛
我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代。在这个时代里,我们进行软件开发已经不再是一个一个的小作坊,我们在进行着集团化的大规模开发。我们开发的软件不再是为某个车间、某个工序设计的辅助工具,它从某个单位走向整个集团,走向整个行业,甚至整个社会,发挥着越来越重要的作为。一套软件所起到的作用与影响有多大,已经远远超越了所有人的想象,成为一个地区、一个社会,乃至整个国家不可或缺的组成部分。慢慢地,人们已经难以想象没有某某软件或系统的生活和工作会是怎样。这就是软件工业时代的重要时代特征。
然而,在这个令人振奋的软件工业时代,处于时代中心的各大软件企业却令人沮丧。软件规模越来越庞大,软件结构越来越复杂的同时,伴随的却是软件质量越来越低下,软件维护变得越来越困难,以至于每个小小的变更都变得需要伤筋动骨。研发人员为此举足无措,测试人员成为唯一的救星,每个小小的变更都需要付出巨大代价进行测试。软件企业在这样一种恶性循环中苦苦支撑。毫无疑问,这也成为这个令人振奋的时代的一景。
过去,一套软件的生命周期不过2~3年时间,随着软件需求的变化,我们总是选择将软件推倒了重新开发,但是现在这样的情况在发生着改变。随着软件规模的扩大,软件数据的积累,软件影响力的提升,我们,以及我们的客户,都真切感受到,要推倒一套软件重新开发,将变得越来越困难而不切实际。这样的结果就是,我们的软件将不停地修改、维护、再修改、再维护……直到永远。这是一件多么痛苦的事情啊!
一套软件,当它第一次被开发出来的时候,一切都十分清晰:清晰的业务需求、清晰的设计思路、清晰的程序代码,经历了几次需求变更与维护,一切就变得了不那么清晰。业务需求文档变得模糊不清,设计思路已经跟不上变更的脚步,程序代码则随着业务逻辑的复杂而臃肿不堪。程序员开始读不懂代码,软件开发工作变得不再是一种乐趣。
随着时间的推移,软件经过数年、数十次的变更与维护,情况变得越来越糟。最初的程序员已经不愿再看到自己的代码而选择离去。他的继任者变得更无所是从,由于看不懂程序,代码的每一次修改如同在走钢丝。测试人员变成了唯一的希望,开发人员的每一次修改都意味着测试人员需要把所有程序测试一遍。继任者们开始质问最初的设计者们的程序设计。如果此时恰巧又有什么新技术出现,就会更显得原有系统的破旧与不堪。
相信这就是软件工业时代的所有企业都不得不面对的尴尬境地。难倒真的是我们最初的设计错了吗?是的,我们都这样质问过我们自己,因此我们开始尝试在软件设计之初投入更多的精力。我们开始投入更多的时间作需求调研,考虑更多可能的需求变化,做更多的接口,实现更加灵活但复杂的设计。然后呢,我们解决了我们的问题了吗?显然是没有。需求并没有像我们想象的那样发生变更:我们之前认为可能发生的变更并没有发生,使我们为之做出的设计变成了摆设;我们之前没有考虑到的变更发生了,让我们猝不及防,软件质量开始下降,我们被打回了原形。难倒真的是无药可解了吗?在我看来,如果我们没有看明白软件开发的规律与特点,那么我们永远找不到那份向往已久的解药。现在是时候了,让我们真正静下心来分析分析软件开发的规律与特点吧。(续)
相关文章:
遗留系统:IT攻城狮永远的痛
需求变更是罪恶之源吗?
系统重构是个什么玩意儿
我们应当改变我们的设计习惯
小步快跑是这样玩的(上)
小步快跑是这样玩的(下)
代码复用应该这样做(1)
代码复用应该这样做(2)
代码复用应该这样做(3)
做好代码复用不简单
特别说明:希望网友们在转载本文时,应当注明作者或出处,以示对作者的尊重,谢谢!
遗留系统:IT攻城狮永远的痛相关推荐
- 欢迎关注公众号:Android系统攻城狮 原创持续更新中!!!
公众号:Android系统攻城狮 简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案.音视频.编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列[原创干 ...
- JAVA 攻城狮 第三十三天
今天是第三十三天 学了差不多有一个月的JAVA了 其实在大一上学期的时候多多少少就开始学java了 只是没有现在这样系统的学 然后我觉得JAVA学习我会暂时的放一放 我觉得学过的知识要利用起来会用才是 ...
- 微信小游戏的前端攻城狮玩法
转自自己在开源中国上的博客:https://my.oschina.net/u/7247... 前言 公司群里经常有人会发一些微信小游戏,每次下面都会跟好多晒分截图.比如这个<看你有多色>的 ...
- 挨踢部落故事汇(6):女攻城狮职位晋升记
热爱生活,更热爱代码.每天都是一个新的开始!相信自己肯定行. 难以想象一个跳入IT坑已经十余年的女攻城狮是如何潜心修炼的,然而文英就是一个活生生的例子,江湖人生代码神手的她,在工作上任劳任怨,不求回报 ...
- 【挨踢人物传】tao61:做一个许三多式的IT攻城狮(第2期)
告诉你一个群体,一个在光怪陆离的IT圈混迹的群体.他们自称程序猿(媛).攻城狮.挨踢民工,一面乐观的自嘲,一面努力的工作.提起他们,你也许想到了张江男,想到了眼镜.T恤.牛仔裤.运动鞋.双 ...
- 活动报名 | 前端攻城狮该怎样跳脱“围城”的焦虑
活动报名 | 前端攻城狮该怎样跳脱"围城"的焦虑 原创: 京小云 京东云开发者社区 4天前 作为WEB2.0的产物,前端工程师这一相对较新的职业俨然变成了一颗?一样的存在--丰富 ...
- 女儿提前晒 iPhone X,攻城狮老爸被苹果解雇;Linux Kernel 4.14-rc7 发布
(点击上方蓝字,快速关注我们) 参考:开源中国.solidot.cnBeta.腾讯科技等 0.女儿提前晒 iPhone X,攻城狮老爸被苹果解雇 防火防盗防女儿,美国女孩 Brooke Amelia ...
- 攻城狮的苦逼选车经历
2019独角兽企业重金招聘Python工程师标准>>> 攻城狮的苦逼选车经历 转载请注明出处:http://netkiller.github.io/ 我因为玩摄影的关系接触到气车,之 ...
- 15个前端攻城狮必备的学习网站 | 你知道几个?(附视频介绍)
前端开发所需掌握知识点概要 HTML&CSS: 对Web标准的理解(结构.表现.行为).浏览器内核.渲染原理.依赖管理.兼容性.CSS语法.层次关系,常用属性.布局.选择器.权重.盒模型.Ha ...
最新文章
- [20160513]Restrict Session与静态监听.txt
- editplus 批量删除 重复行
- 如何根据sessionID获取session解决方案
- linux上安装samba
- pycharm 常用设置
- 4 拼接_3个孩子,64㎡小户型内“镶嵌”4室一厅,餐桌还能随意拼接
- 显示器提示超频的解决办法
- [学习报告]《LeetCode零基础指南》第三讲循环-gyro
- 考研政治---马克思主义基本原理概论---认识论
- Java 快速排序,递归排序算法
- 绿城离职员工万言书全文,不看你后悔!当今很少有此类文言文!
- 影像组学工作站 | 医学影像组学高分SCI教你躺平,零基础,零代码完整复现!
- 洛谷入门篇的相关题解
- matlab 数理统计,概率论和数理统计(matlab应用)1
- 带搜索框的百度地图html
- python地铁查询系统_基于Python的苏州实时公交/地铁接口调用代码实例
- 计算二叉树的深度和叶子结点数(递归算法实现)
- 大咖面对面 | 喵奏@国家建筑师:用方块构成元宇宙共识
- 关于程序化交易系统的详细定义
- 基于微信在线教育视频学习小程序毕业设计毕设作品(6)开题答辩PPT
热门文章
- 【成电860考研】经验贴汇总(公共课+专业课+复试)-扒遍所有网站:信软群、王道、知乎、csdn等,截止21年7月整理出的所有帖子-共15篇
- 一起挑战pythontip的题目(13)
- java 163 授权码_JavaMail使用163,sina邮箱,发送失败
- LoadRunner 自动登录163邮箱
- 在centos7中使用telnet
- 基于BP神经网络算法的实现静态图片和视频人脸识别、性别识别
- 解决idea上传文件到svn频繁报错 “Error:Node remians in conflict”、“remains in conflict”
- zookeeper原理:分布式协同技术
- JavaScript百炼成仙 1.20 函数七重关之二 (作用域)
- 支付宝客户端架构解析:iOS 容器化框架初探