`
lane_cn
  • 浏览: 53691 次
社区版块
存档分类
最新评论

痛苦的系统,艰难的维护

阅读更多
一个7×24的帐务系统,一个每天都要开门营业的营业厅,运行了好几年了,小改小闹几乎天天不断,大的升级隔半年到一年就要有一次。外界还有新的系统要接在上面,不断的开拓新的接口,功能不断扩充……

系统最近一次大的升级,就在今年的3月。当时开发公司来了几十个人,平时人烟稀少的机房里面挤满了人。升级前一天的晚上,项目经理召集广大人民群众,发表升级前的最后一次讲话:“大家忙了n个月,就是为了这一天。再给我顶住,到明天这一切结束的时候,胜利将属于我们!”我站在边上,对我的同事说:“到明天,当新的系统开始运行的时候,一切只能说刚刚开始。”

就像我以前见过的很多系统一样,这个系统开发的最初阶段先搞数据库的设计,数据库的设计就像下面这个图,一个一个的数据表,一对一的,一对多的,多对多的关系:



数据库设计的时候,需要用各种业务流程对数据库的设计进行验证,这两个设计是同时进行的。当数据库差不多设计完的时候,业务流程也应该明白的差不多了。业务A执行的时候增删查改这些数据表,业务B执行的时候增删查改那些数据表,系统的设计就这样渐渐形成了。



就这样,n个业务流程在数据库表的丛林中穿行,像迷宫一样,所过之处数据发生变化。一番抽丝剥茧,详细设计完成。然后大家分配工作,照着设计书写代码。忽然有人发现设计的问题,重要人物召开会议了解情况,商量对策。对策通常是数据库要加上几个表,几个字段,某几个流程再拐几个弯。大家改改代码,继续埋头工作。

然后测试,然后补充各种文档,这时候时间越来越紧张,也许已经延期了好几次。终于,可以部署到现场运行调试了。按照开发商的说法,一切都结束了。

对于开发商来说,一切都结束了,但是对于用户来说,一切才刚刚开始。维护一个这样的系统,是一件痛苦的事情。

系统有Bug,总是改不完;
设计有缺陷,业务不完整,大家都很困惑,难道什么东西都要提出书面需求才能去做吗;
新需求不好做,业务流程的迷宫太复杂,无法避免对现有需求造成影响;
功能扩充了,数据增加了,业务扩展了,效率也下降了,买CPU吧,加上去试试。

系统就这样维护,没办法,这就是工作。

和一个开发人员谈过这个系统为什么要做成现在这个样子,他的说法是:这样做的理由有两个:

1、这样的设计层次少,业务实现很直接,效率高。(这个原因没人相信,包括他自己)
2、一开始就是做成了这样,后来的项目时间紧,任务重,直接拿着前人创造的成果改一改,就可以交差了。(这是个很合理的理由)

也许大家都在期待一个改变的机会。

分享到:
评论

相关推荐

    艰难的老系统改造.doc

    【标题】:“艰难的老系统改造”涉及的主要知识点 在“艰难的老系统改造”这个文档中,主要讲述了对一套过时的DCS(分布式控制系统)进行升级改造成新系统的全过程。以下是一些关键知识点: 1. **DCS系统**:DCS是...

    第章软件维护2022优秀文档.ppt

    相反,非结构化维护在缺乏文档或文档质量低下时进行,需要对程序代码进行艰难的评估,可能导致更多的错误和高昂的成本。 为了改善维护工作的效率和效果,可以采取以下策略: 1. 在合同中明确软件维护的范围、内容、...

    课时7 维护1

    4. 维护工作的不吸引力:由于上述问题,软件维护往往被视为一项艰难而不受欢迎的任务。 7.3 软件维护过程 这个过程包括建立专门的维护组织,收集和分析维护报告,跟踪维护事件,记录维护历史,以及评估维护活动的...

    考勤管理系统毕业设计论文

    效率低下,保密性差,且随着时间推移,大量的纸质文档累积导致查询、更新和维护工作变得异常艰难,难以适应现代企业快节奏的运营需求。 #### 四、计算机化管理的优势 借助计算机进行员工信息管理,可以克服传统...

    答辩ppt256个性化影片推荐系统.pptx

    个性化影片推荐系统的开发是非常复杂和艰难的过程,需要我们具备很强的技术基础和实践能力。但是,通过不断的学习和实践,我们可以逐渐掌握这些技术,并对系统的开发和维护进行长期的跟踪和监控。

    java的师资管理系统答辩PPT.ppt

    院校对教师的管理都采用的是人工登记,但是伴随着教师数量的增长,需要录入的信息不断增多,用这种方式对数量庞大的教师进行管理无疑是越来越艰难的工作,对教师信息进行添加、查找、更新和维护都是非常不方便的,...

    基于Java的温室远程控制系统的研究.pdf

    然而,国产温室控制系统普遍居于较低端水平,外国引进的计算机智能控制系统昂贵的引进费用、繁琐而又艰难的维护、较低的经济效益成为国内温室智能化发展进程的一大阻碍。 因此,开发低价位、实用型的农业智能计算机...

    干货了解高级系统架构设计.ppt

    绑死表示复用系统组件变得艰难;胶着则是指系统设计使得修改变得复杂,导致开发者采取不合理的短期解决方案,加速系统的衰败。 好的设计应遵循以下原则: 1. 最少的复杂度:设计应简单易懂,便于理解和维护。 2. ...

    恶劣环境下机械系统的预测和维护

    文章中提到,在恶劣环境下运行的机械系统,例如风力涡轮机、采矿和土木工程机械等,它们的操作条件艰难,不易频繁检查和人力维护。大多数现有的机械状态监测方法是在理想实验室条件下开发的,而现实世界中的高动态...

    煤矿井下低压供电系统及短路保护措施研究

    由于机电设备种类繁多,规格型号各异,接头类型复杂,再加上井下环境的恶劣影响,使得低压供电系统的管理维护变得复杂而艰难。系统复杂度的提高,也直接增加了短路故障的风险。 二、煤矿井下低压供电系统常见的短路...

    企业备份系统建设最佳实践分析.docx

    - **误区解析**:忽视操作系统备份会导致在发生系统故障时,重建环境变得异常艰难。通过专业的系统备份工具,可以在短时间内恢复至备份状态,显著提升运维效率。 4. **想用CDP代替备份** - **误区解析**:持续数据...

    软件开发中的11个系统思维定律

    类似的,当软件架构面临调整时,开发人员如果只是简单地堆砌代码来应对新需求,而不是从根本上进行优化和重构,最终只会导致系统变得更加臃肿和难以维护。 #### 3. 福兮祸之所伏 短期内看似有利的解决方案往往会在...

    管理信息系统管理信息系统

    - **维护困难**:随着时间的推移,积累的大量文件使得信息的查找和更新变得异常艰难。 因此,开发一个学生管理系统对于提高管理效率、保证信息安全等方面具有重要意义。 ### 3. 学生管理系统的功能 一个典型的...

    在大型遗留系统基础上运作重构项目

    在现代软件开发过程中,经常会遇到大型遗留系统的维护问题。这类系统通常具备以下特点:代码量庞大、架构复杂、缺乏良好的文档支持以及历史积累的技术债务。ThoughtWorks中国公司曾参与了一个名为eMAN的咨询项目,该...

    C语言嵌入式系统编程修炼(软件架构篇)

    ”如果结构混乱,则后续的调试、测试、维护及升级工作都会变得异常艰难。因此,对于一个优秀的程序员而言,编写出像艺术品一样的程序,是一种高尚的职业追求。 #### 模块化设计与管理 模块化是软件架构中的一个...

    人工智能光伏巡检定位系统开发研究概述.pdf

    通过“MAPGIS地理信息系统”,可以建立用户信息数据库,便于追踪设备运行状态,提供维护依据。目前,虽然无人机已在光伏电站运维中得到应用,但整体自动化水平仍有待提高,尤其是结合大数据、人工智能和GPS等先进...

    基于单片机的火灾报警系统设计_毕业设计 (1).doc

    特别是,在各种生产、办公及居住场所中大量使用的塑料制品和易燃产品使得一旦发生火灾,外部救援工作变得异常艰难。 为了能够及时有效地发现并控制火灾,减少火灾造成的人员伤亡和财产损失,开发一种基于单片机技术...

    也谈系统设计的一些原则

    还要考虑非功能性需求,比如软件的性能(Performance)、可扩展性(Scalability),系统的稳定性(Reliability)、部署(Deployment)和更新(Upgrade),可维护性(Maintainability),版本的管理,系统的安全(Security),界面...

Global site tag (gtag.js) - Google Analytics