旧系统现代化改造:挑战与策略
1. 处理旧系统时利用接口
在处理旧系统时,首先要评估潜在用户。这包括确定长期维护系统的人员、他们熟悉的技术、系统的主要使用者以及他们对系统运行的期望。
不过,这并不意味着不能对系统进行更改或引入新的概念。特别是对于那些有几十年历史的系统,其接口可能与一些不再合理的流程和关联绑定在一起。例如,80 字符的行宽源于穿孔卡片,双字符的 Linux 命令源于电传打字机,桌面应用程序上的保存图标是软盘的样子。有时,更改接口以去除不再相关的要求是有益的。设想如果系统是全新的,定义最小可行产品(MVP)的要求是制定攻击计划时的一个很好的思维实验。
然而,即使更改的结果总体上是积极的,更改接口也并非没有代价。让人们重新适应会增加摩擦并提高失败的几率,即使新接口更好且更符合产品的整体愿景。
工程师往往高估了秩序和整洁的价值。对于计算机系统来说,真正重要的是它在实际应用中的有效性。Linux 能够在操作系统领域占据主导地位,并非因为它是从头精心设计的,而是它整合了许多不同系统的想法和实现,并专注于在一个关键地方——内核——增加价值。
虽然奖励软件工程师独特性、创新能力的激励机制仍然存在,但技术在基于常见事物构建时更有可能取得成功。这两种力量在任何软件项目中都存在张力,而旧系统尤其脆弱。
2. 避免完全重写
我们知道,对现有解决方案进行迭代比完全重写更有可能改进软件。完全重写的危险已有诸多记载。有观点认为,完全重写是软件公司可能犯的最严重的战略错误。
Fred Brooks 在 1975 年提出了“第二系统综合征”,用来解释完全重写往往会产生臃肿、低效且经常无法正常运
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



