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

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



